diff --git a/src/agents/types.ts b/src/agents/types.ts index 7484d0e..5586039 100644 --- a/src/agents/types.ts +++ b/src/agents/types.ts @@ -21,6 +21,8 @@ export type OverridableAgentName = export type AgentName = BuiltinAgentName -export type AgentOverrideConfig = Partial +export type AgentOverrideConfig = Partial & { + prompt_append?: string +} export type AgentOverrides = Partial> diff --git a/src/agents/utils.ts b/src/agents/utils.ts index 568f269..1f24238 100644 --- a/src/agents/utils.ts +++ b/src/agents/utils.ts @@ -66,7 +66,14 @@ function mergeAgentConfig( base: AgentConfig, override: AgentOverrideConfig ): AgentConfig { - return deepMerge(base, override as Partial) + const { prompt_append, ...rest } = override + const merged = deepMerge(base, rest as Partial) + + if (prompt_append && merged.prompt) { + merged.prompt = merged.prompt + "\n" + prompt_append + } + + return merged } export function createBuiltinAgents( diff --git a/src/config/schema.ts b/src/config/schema.ts index 125e88d..a50bcff 100644 --- a/src/config/schema.ts +++ b/src/config/schema.ts @@ -70,6 +70,7 @@ export const AgentOverrideConfigSchema = z.object({ temperature: z.number().min(0).max(2).optional(), top_p: z.number().min(0).max(1).optional(), prompt: z.string().optional(), + prompt_append: z.string().optional(), tools: z.record(z.string(), z.boolean()).optional(), disable: z.boolean().optional(), description: z.string().optional(),