@@ -68,6 +68,7 @@ type Model struct {
68type sessionAgent struct {
68type sessionAgent struct {
69 largeModel Model
69 largeModel Model
70 smallModel Model
70 smallModel Model
71+ systemPromptPrefix string
71 systemPrompt string
72 systemPrompt string
72 tools []fantasy.AgentTool
73 tools []fantasy.AgentTool
73 sessions session.Service
74 sessions session.Service
@@ -82,6 +83,7 @@ type sessionAgent struct {
82type SessionAgentOptions struct {
83type SessionAgentOptions struct {
83 LargeModel Model
84 LargeModel Model
84 SmallModel Model
85 SmallModel Model
86+ SystemPromptPrefix string
85 SystemPrompt string
87 SystemPrompt string
86 DisableAutoSummarize bool
88 DisableAutoSummarize bool
87 IsYolo bool
89 IsYolo bool
@@ -96,6 +98,7 @@ func NewSessionAgent(
96 return &sessionAgent{
98 return &sessionAgent{
97 largeModel: opts.LargeModel,
99 largeModel: opts.LargeModel,
98 smallModel: opts.SmallModel,
100 smallModel: opts.SmallModel,
101+ systemPromptPrefix: opts.SystemPromptPrefix,
99 systemPrompt: opts.SystemPrompt,
102 systemPrompt: opts.SystemPrompt,
100 sessions: opts.Sessions,
103 sessions: opts.Sessions,
101 messages: opts.Messages,
104 messages: opts.Messages,
@@ -225,6 +228,10 @@ func (a *sessionAgent) Run(ctx context.Context, call SessionAgentCall) (*fantasy
231+ if a.systemPromptPrefix != "" {
232+ prepared.Messages = append([]fantasy.Message{fantasy.NewSystemMessage(a.systemPromptPrefix)}, prepared.Messages...)
228 var assistantMsg message.Message
235 var assistantMsg message.Message
229 assistantMsg, err = a.messages.Create(callContext, call.SessionID, message.CreateMessageParams{
236 assistantMsg, err = a.messages.Create(callContext, call.SessionID, message.CreateMessageParams{
230 Role: message.Assistant,
237 Role: message.Assistant,