From 9cef68a360871a602f5e0279ea075e5b99cae518 Mon Sep 17 00:00:00 2001 From: xixingde <137176592+xixingde@users.noreply.github.com> Date: Thu, 9 Apr 2026 14:06:48 +0800 Subject: [PATCH] refactor(strictPlan): update agent references from Explore to QuickExplore --- src/costrict/agents/planApply.ts | 13 +------------ src/costrict/agents/strictPlan.ts | 13 ++++--------- src/costrict/{agents => backup}/reviewAndFix.ts | 0 src/tools/AgentTool/builtInAgents.ts | 2 -- 4 files changed, 5 insertions(+), 23 deletions(-) rename src/costrict/{agents => backup}/reviewAndFix.ts (100%) diff --git a/src/costrict/agents/planApply.ts b/src/costrict/agents/planApply.ts index 8b2bb4365..20ec60dbd 100644 --- a/src/costrict/agents/planApply.ts +++ b/src/costrict/agents/planApply.ts @@ -91,19 +91,8 @@ SubCodingAgent 完成后,审查其代码提交: - **标记todos完成**:使用 \`todowrite\` 工具将当前任务标记为完成 - **重要顺序说明**:**必须先更新task.md,最后标记todos**。 -### 阶段 3:代码审查 -- 当task.md中任务全部执行完成后,必须进行一次**最终代码审查**,必须启动\`ReviewAndFix\`Agent进行审查。 -- 审查的主要内容是:逐项检查task.md中的任务与提交的代码,是否存在遗漏和实现偏差。 -- 创建\`ReviewAndFix\`Agent的目标描述中,必须包含 - -### 阶段 4:完成收尾 +### 阶段 3:完成收尾 - 完成所有任务后,检查所有任务是否都已在task.md中正确标记为完成 -- 验证所有变更都已使用\`checkpoint\`工具提交 -- 最终确认,使用\`question\`工具,向用户说明:已完成修改,是否有问题需要进一步修改? - - 提供选项(只提供一个选项): - * "确认任务完成" - 如果用户对修改结果满意,结束CodingAgent任务 - - 如果用户通过"自定义输入"提供新的反馈,则在task.md中创建一个新的fix任务,分发给SubCodingAgent进行修改 - - 直到用户选择"确认任务完成",才退出CodingAgent任务 diff --git a/src/costrict/agents/strictPlan.ts b/src/costrict/agents/strictPlan.ts index 65b747c41..17428fe95 100644 --- a/src/costrict/agents/strictPlan.ts +++ b/src/costrict/agents/strictPlan.ts @@ -6,7 +6,7 @@ function getStrictPlanSystemPrompt(): string { return `你是一个专门为软件项目创建结构化需求提案的 PlanAgent。 你的核心职责是:遵循"**理解用户需求→探索项目→需求澄清→创建提案→实施提案**"的严格工作流。 **最重要的前提**:你在任何阶段都不允许直接写代码,必须通过'Agent工具'启动\`PlanApply\`agent实施提案。 -**项目深度探索**:你**必须**先使用'Agent工具'启动\`Explore\` Agent进行深度的项目探索,从而快速了解项目结构、实现细节、技术架构等信息,为需求澄清和提案制定提供准确的项目现状基础。 +**项目深度探索**:你**必须**先使用'Agent工具'启动\`QuickExplore\` Agent进行深度的项目探索,从而快速了解项目结构、实现细节、技术架构等信息,为需求澄清和提案制定提供准确的项目现状基础。 **需求澄清**:结合项目深度探索的结果,使用\`AskUserQuestion\`工具对用户进行提问式需求澄清,在需求未充分澄清前,禁止草率生成提案或任务清单。 **关于输入形式**:用户的需求可能是简短的一句话描述,也可能是通过 \`@文件\` 引用的详细需求文档。无论哪种形式,你都需要仔细阅读并理解需求内容。 @@ -22,14 +22,14 @@ function getStrictPlanSystemPrompt(): string { 1. **完成未完成需求**: 根据当前工程plan的任务状态,使用\`AskUserQuestion\`工具对用户进行提问是否继续未成任务或开始新任务。如果用户选择继续完成,则直接进行**实施提案**,否则按流程进行。 (1)提问选项需带上具体任务的英文名 2. **需求理解**:理解用户输入的原始需求,识别关键目标、约束条件、预期结果。 -3. **探索项目**:根据用户提出的需求,使用Agent工具启动Explore SubAgent,针对**当前项目**开展定向深度探索,核心目标是获取与需求实现强相关的关键信息,为方案设计和编码提供直接参考。 +3. **探索项目**:根据用户提出的需求,使用Agent工具启动QuickExplore SubAgent,针对**当前项目**开展定向深度探索,核心目标是获取与需求实现强相关的关键信息,为方案设计和编码提供直接参考。 - **探索优先级**:若用户已明确提供相关文件路径(通过@文件引用或需求描述),则**必须优先深度分析这些文件**(完整逻辑、实现模式、依赖关系),并从该文件出发追溯其调用链、依赖模块、相关配置,而非从零开始全项目搜索。 - **核心探索目标**: (1) 需求相关的现有实现逻辑、模块依赖关系、调用链路(定位修改位置) (2) 可复用的工具类/函数/已有实现机制、同类功能的代码组织模式和实现方案(学习实现方式) (3) 必须遵守的技术约束、架构规范、历史踩坑记录(识别风险和边界) - **SubAgent产出要求**:SubAgent必须提供可操作的技术决策依据,包括实现位置定位、可复用机制、技术约束、编码参考等有利于后续方案设计和编码的详细信息,而非泛泛的项目概况描述; - - **并行Agent调用**:在单条消息中多次调用\`task\`工具,并行启动 1~3 个Explore SubAgent,高效完成项目探索工作; + - **并行Agent调用**:在单条消息中多次调用\`task\`工具,并行启动 1~3 个QuickExplore SubAgent,高效完成项目探索工作; - 质量优先原则:最多启用 3 个智能体,且优先使用完成任务所需的最少数量(通常仅需 1 个); - 单SubAgent适用场景:任务范围明确,仅涉及已知文件、用户已提供具体文件路径,或仅需执行小型定向修改; - 多SubAgent适用场景:任务范围模糊、涉及项目多个模块,或需要先梳理现有代码模式再开展方案规划; @@ -63,11 +63,6 @@ function getStrictPlanSystemPrompt(): string { - \`PlanApply\` agent执行完成后,检查task.md中对应的子任务是否已标记为已完成,若未完成,需重新提交。 - 所有任务执行完成后,必须再读取一次task.md,确保所有子任务均已标记为完成,且无遗漏。如有未标记完成的子任务,必须重新提交,直到全部完成。 -#### 执行测试原则 -- 使用\`AskUserQuestion\`向用户确认是否进入测试阶段,提供两个选项(稍后测试/立即测试),用户选择"立即测试"后再开始下面的实施操作。 -- 用户选择"立即测试"后,进入实施阶段,调用\`Agent工具启动\`启动\`TestDrivenDevelopment\` agent执行。 -- \`TestDrivenDevelopment\` agent执行完成后,即可结束任务。 - ### 提案约束和最佳实践 # Plan 提案创建指南 @@ -165,7 +160,7 @@ c. 查看\`TaskCheck\`返回的总结报告,了解修复情况 export const STRICT_PLAN_AGENT: BuiltInAgentDefinition = { agentType: 'StrictPlan', whenToUse: - '根据用户的需求创建具体可实施的计划。Use this when you need to create structured, actionable implementation plans based on user requirements. This agent follows a strict workflow: understand requirements → explore project → clarify requirements → create proposal → implement proposal.', + '根据用户的需求创建具体可实施的计划。Use this when you need to create structured, actionable implementation plans based on user requirements. This agent follows a strict workflow: understand requirements → QuickExplore project → clarify requirements → create proposal → implement proposal.', disallowedTools: [ EXIT_PLAN_MODE_TOOL_NAME, ], diff --git a/src/costrict/agents/reviewAndFix.ts b/src/costrict/backup/reviewAndFix.ts similarity index 100% rename from src/costrict/agents/reviewAndFix.ts rename to src/costrict/backup/reviewAndFix.ts diff --git a/src/tools/AgentTool/builtInAgents.ts b/src/tools/AgentTool/builtInAgents.ts index 65ab20ed8..37f589255 100644 --- a/src/tools/AgentTool/builtInAgents.ts +++ b/src/tools/AgentTool/builtInAgents.ts @@ -3,7 +3,6 @@ import { getIsNonInteractiveSession } from '../../bootstrap/state.js' import { getFeatureValue_CACHED_MAY_BE_STALE } from '../../services/analytics/growthbook.js' import { isEnvTruthy } from '../../utils/envUtils.js' import { PLAN_APPLY_AGENT } from '../../costrict/agents/planApply.js' -import { REVIEW_AND_FIX_AGENT } from '../../costrict/agents/reviewAndFix.js' import { STRICT_PLAN_AGENT } from '../../costrict/agents/strictPlan.js' import { SUB_CODING_AGENT } from '../../costrict/agents/subCoding.js' import { TASK_CHECK_AGENT } from '../../costrict/agents/taskCheck.js' @@ -54,7 +53,6 @@ export function getBuiltInAgents(): AgentDefinition[] { PLAN_AGENT, STRICT_PLAN_AGENT, PLAN_APPLY_AGENT, - REVIEW_AND_FIX_AGENT, SUB_CODING_AGENT, TASK_CHECK_AGENT, QUICK_EXPLORE_AGENT,