From 3baf3c017108844fb0d16b60c09cfd6612e00c33 Mon Sep 17 00:00:00 2001 From: kurihada Date: Tue, 16 Dec 2025 14:16:52 +0800 Subject: [PATCH] =?UTF-8?q?fix(core):=20=E5=9C=A8=20Agent.resolveSystemPro?= =?UTF-8?q?mpt=20=E4=B8=AD=E9=9B=86=E6=88=90=E5=8A=A8=E6=80=81=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E6=B8=B2=E6=9F=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/core/agent.ts | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/packages/core/src/core/agent.ts b/packages/core/src/core/agent.ts index 76e89b8..248aca1 100644 --- a/packages/core/src/core/agent.ts +++ b/packages/core/src/core/agent.ts @@ -17,7 +17,13 @@ import { type CompressionConfig, } from '../context/index.js'; import type { AgentInfo, ImageData } from '../agent/types.js'; -import { agentRegistry, AgentExecutor, checkBashPermission } from '../agent/index.js'; +import { + agentRegistry, + AgentExecutor, + checkBashPermission, + renderTemplate, + createPlanContext, +} from '../agent/index.js'; import { loadVisionConfig } from '../utils/config.js'; import { getProviderRegistry, resolveApiKey } from '../provider/index.js'; import { getHookManager } from '../hooks/index.js'; @@ -790,10 +796,23 @@ export class Agent { /** * 解析系统提示词 * - * 直接使用 Agent 的 prompt 字段作为系统提示词 + * 如果 Agent 启用了 promptTemplate,则动态渲染模板变量 */ private resolveSystemPrompt(agent: AgentInfo): string { - return agent.prompt || ''; + if (!agent.prompt) { + return ''; + } + + // 如果启用了模板渲染,动态解析变量 + if (agent.promptTemplate) { + const context = createPlanContext({ + workdir: process.cwd(), + isSubagent: agent.mode === 'subagent', + }); + return renderTemplate(agent.prompt, context); + } + + return agent.prompt; } /**