From 0d1754614a4d847ebd73c7220973cd2e04b2717b Mon Sep 17 00:00:00 2001 From: yhangf Date: Fri, 10 Apr 2026 09:32:21 +0800 Subject: [PATCH] =?UTF-8?q?refactor(agents):=20=E6=94=B9=E5=9B=9E2?= =?UTF-8?q?=E5=B1=82=E6=9E=B6=E6=9E=84=EF=BC=8CStrictSpec=20=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E8=B0=83=20SubCoding?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - StrictSpec 精简为~60行,stage 4 直接调 SubCoding(绕过 SpecPlan 中间层) - 移除 SpecPlan 注册(3层嵌套对外部用户不可用,ALL_AGENT_DISALLOWED_TOOLS 限制) - SubCoding 自带探索/实施能力,无需上层准备 proposal/task.md - 支持 teammates 并行调用 SubCoding,自动降级串行 Co-Authored-By: Claude Sonnet 4.6 --- src/costrict/agents/strictSpec.ts | 19 +++++++++++++++---- src/tools/AgentTool/builtInAgents.ts | 4 +--- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/costrict/agents/strictSpec.ts b/src/costrict/agents/strictSpec.ts index c581834cc..8ef37ea42 100644 --- a/src/costrict/agents/strictSpec.ts +++ b/src/costrict/agents/strictSpec.ts @@ -24,9 +24,19 @@ function getStrictSpecSystemPrompt(): string { - 用 \`Agent\` 工具启动 \`TaskPlan\`(subagent_type: "TaskPlan") - prompt参数输入:用户原始输入{user_input} -4. **方案执行阶段** (SpecPlan模式) - - 用 \`Agent\` 工具启动 \`SpecPlan\`(subagent_type: "SpecPlan") - - prompt参数输入:用户原始输入{user_input} +4. **方案执行阶段** + - 读取 \`.cospec/spec//plan.md\`,对每个未完成任务调用 \`SubCoding\`(subagent_type: "SubCoding") + - 任务间无依赖时,在**同一条消息**中并行启动多个 \`SubCoding\`(提供 \`name\` 和 \`team_name\` 参数) + - 若 Agent 工具返回 "Agent Teams is not yet available",自动回退为逐个串行调用 + - 每个 SubCoding 完成后,将对应任务在 plan.md 中标记为 \`- [x]\` + + SubCoding prompt 模板: + \`\`\` + 任务名称: + 任务描述: + 需求文档: .cospec/spec//spec.md + 设计文档: .cospec/spec//tech.md + \`\`\` ## 核心执行规则 @@ -40,7 +50,8 @@ function getStrictSpecSystemPrompt(): string { ### 异常处理 - 若某阶段执行失败,需暂停后续流程,向用户报告失败原因,等待用户指令后再继续 -- 禁止跳过任何阶段强行推进` +- 禁止跳过任何阶段强行推进 +- SubCoding 失败后最多重试 2 次,超限后使用 \`AskUserQuestion\` 向用户报告` } export const STRICT_SPEC_AGENT: BuiltInAgentDefinition = { diff --git a/src/tools/AgentTool/builtInAgents.ts b/src/tools/AgentTool/builtInAgents.ts index 1b79fc863..df6c88299 100644 --- a/src/tools/AgentTool/builtInAgents.ts +++ b/src/tools/AgentTool/builtInAgents.ts @@ -5,7 +5,6 @@ import { isEnvTruthy } from '../../utils/envUtils.js' import { DESIGN_AGENT } from '../../costrict/agents/designAgent.js' import { QUICK_EXPLORE_AGENT } from '../../costrict/agents/quickExplore.js' import { REQUIREMENT_AGENT } from '../../costrict/agents/requirement.js' -import { SPEC_PLAN_AGENT } from '../../costrict/agents/specPlan.js' import { STRICT_PLAN_AGENT } from '../../costrict/agents/strictPlan.js' import { STRICT_SPEC_AGENT } from '../../costrict/agents/strictSpec.js' import { SUB_CODING_AGENT } from '../../costrict/agents/subCoding.js' @@ -64,12 +63,11 @@ export function getBuiltInAgents(): AgentDefinition[] { GENERAL_PURPOSE_AGENT, STATUSLINE_SETUP_AGENT, PLAN_AGENT, - // StrictSpec workflow: 4-stage pipeline (Requirement → DesignAgent → TaskPlan → SpecPlan) + // StrictSpec workflow: 4-stage pipeline (Requirement → DesignAgent → TaskPlan → SubCoding) STRICT_SPEC_AGENT, REQUIREMENT_AGENT, DESIGN_AGENT, TASK_PLAN_AGENT, - SPEC_PLAN_AGENT, // StrictPlan workflow: lightweight plan → implement pipeline STRICT_PLAN_AGENT, SUB_CODING_AGENT,