diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index 5cd76124..e4a3162a 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -705,6 +705,32 @@ export namespace Session { parts: userParts, }, ]), + // When dealing with huge blocks of context sometimes the llm will lose sight of + // parts of system prompt, you can usually get around this by just adding an additional + // reference after large context block that references instructions from system prompt + // and llm will "remember" it needs to do X or Y + ...MessageV2.toModelMessage([ + { + info: { + id: Identifier.ascending("message"), + role: "user", + sessionID: input.sessionID, + time: { + created: Date.now(), + }, + }, + parts: [ + { + type: "text", + id: Identifier.ascending("part"), + messageID: userMsg.id, + sessionID: input.sessionID, + text: "Output only a title for this conversation. No responses to content.", + synthetic: true, + }, + ], + }, + ]), ], model: small.language, })