@@ -68,6 +68,7 @@ type Model struct {
6868type sessionAgent struct {
6969 largeModel Model
7070 smallModel Model
71+ systemPromptPrefix string
7172 systemPrompt string
7273 tools []fantasy.AgentTool
7374 sessions session.Service
@@ -82,6 +83,7 @@ type sessionAgent struct {
8283type SessionAgentOptions struct {
8384 LargeModel Model
8485 SmallModel Model
86+ SystemPromptPrefix string
8587 SystemPrompt string
8688 DisableAutoSummarize bool
8789 IsYolo bool
@@ -96,6 +98,7 @@ func NewSessionAgent(
9698 return &sessionAgent{
9799 largeModel: opts.LargeModel,
98100 smallModel: opts.SmallModel,
101+ systemPromptPrefix: opts.SystemPromptPrefix,
99102 systemPrompt: opts.SystemPrompt,
100103 sessions: opts.Sessions,
101104 messages: opts.Messages,
@@ -225,6 +228,10 @@ func (a *sessionAgent) Run(ctx context.Context, call SessionAgentCall) (*fantasy
225228 }
226229 }
227230
231+ if a.systemPromptPrefix != "" {
232+ prepared.Messages = append([]fantasy.Message{fantasy.NewSystemMessage(a.systemPromptPrefix)}, prepared.Messages...)
233+ }
234+
228235 var assistantMsg message.Message
229236 assistantMsg, err = a.messages.Create(callContext, call.SessionID, message.CreateMessageParams{
230237 Role: message.Assistant,