
Open-Science ACP 代理协议完整指南plan/execute/tool-call 循环如何让科研任务可复现【免费下载链接】open-scienceAIPOCH Open-Science is an open-source, local-first, model-agnostic AI research workbench for macOS, Windows, and Linux, with scientific agents, Python/R notebooks, data connectors, and reproducible provenance.项目地址: https://gitcode.com/GitHub_Trending/open/open-scienceOpen-ScienceAIPPOH是一款开源、本地优先、模型无关的 AI 科研工作台它通过 ACP 代理协议Agent Client Protocol把计划plan→ 执行execute→ 工具调用tool-call串成一个可审批、可追溯的循环。本文带你快速看懂这个循环的三层结构Agent 如何先产出待审批的研究计划、如何在批准后逐轮执行、以及如何通过 MCP 工具服务器完成读文献、跑笔记本等真实操作。无需阅读源码也能建立完整的心智模型。为什么科研 Agent 需要计划-执行循环普通聊天式 AI 拿到问题就立刻动手但在科研场景里一个任务往往要跨多个阶段清洗数据、写分析代码、生成图表、输出报告。Open-Science 的做法是先让 Agent 停下来交一份计划用户批准后才开始执行。这样做带来三个直接好处可审批你在任何一步之前都能看懂 Agent 打算做什么可干预计划卡片上的任何文字反馈都会作为普通消息返回Agent 会据此修订计划而不是擅自开工可复现每次执行都与计划产物artifact绑定来源信息完整留痕。循环第一步 plan生成一份待审批的研究计划计划机制的核心是一份结构化的Session Plan 文档由四个字段组成定义在 contract.ts字段含义task_summary多阶段目标的一句话摘要phases有序的工作阶段每阶段包含若干独立工作轨道delegation和步骤desired_outputs期望的最终交付物如PDF 报告、清洗后的 CSVfeasibility可行性评估含置信度高/中/低和理由Agent 并不会随意生成计划。系统在 guidance.ts 中通过系统提示词明确约束只有真正多阶段、值得用户过目的任务才生成计划简单的查询或单步计算直接做即可。计划通过名为generate_plan的工具由open-science-planMCP 服务器提供见 plan-mcp-server.ts提交。关键设计在于工具调用不会立刻返回。Agent 调用generate_plan后会挂起在工具调用内部等待你的审批——此时 Provider 的回合被暂停界面进入waiting-plan-approval状态。计划的状态机有六种生命周期见 contract.tsawaiting_approval → approved → in_progress → completed ↓ ↓ rejected blocked只有approval: approved的计划才算生效。即使反馈文字听起来像同意只要审批没有落定Agent 也绝不调用状态更新工具。这条规则由 formatPlanProtectedContext 生成的受保护上下文反复注入防止模型自作主张。循环第二步 execute按轮次推进并汇报步骤状态计划批准后执行进入prompt turn提示回合流程由 prompt-turn-workflow.ts 编排。每一轮会先做准入检查——确认当前会话没有未决的计划审批、工具可用性正常——再分发给具体的 Provider 适配器Claude、Codex、OpenCode 等各有独立的 turn-adapter位于 src/main/acp/ 目录。执行期间Agent 被要求在工作开始和完成/受阻/跳过两个时刻调用update_step_status工具并精确使用步骤标题。于是你在界面里看到的进度不是模型的口述而是与计划文档严格对账的结构化状态每个步骤的状态、备注、整体计数阶段数/轨道数/步骤数/已完成数都来自计划投影而不是自由文本。如果执行中目标发生变化改需求、换输出系统要求生成一份替换版计划并重新等待审批而批准范围内的例行进展汇报则不需要再审批。这个何时该问、何时别烦你的边界同样写在系统提示词里。循环第三步 tool-callMCP 工具服务器与权限闸门计划里承诺的工作最终要落到真实操作上这靠一组MCPModel Context Protocol工具服务器完成。以科研任务为例Agent 可能调用文献库工具搜索、读取摘要、导出引用literature/mcp-server.ts笔记本工具在受控环境中执行 Python/R 单元格notebook/mcp-server.ts技能导入工具加载可复用的分析方法skills/mcp-server.ts计划工具generate_plan与update_step_status。每次工具调用都不畅通无阻。ACP 运行时的权限体系permission-policy.ts、permission-broker.ts会把敏感操作拦截下来弹出审批卡片由你决定允许一次还是始终允许。换句话说计划审批解决做不做这件事权限审批解决这一步能不能碰这个资源两道闸门相互独立。工具调用产生的产物图表、报告、数据文件会作为带校验和的 artifact 写入会话并保留完整来源链路你可以在溯源视图中回看这个数字是哪一次工具调用产出的见 shared/artifact-provenance.ts。想深入源码三条路径看懂循环全貌想看什么去哪里ACP 运行时总控会话、事件、计划投递runtime.ts每一轮执行如何编排计划准入、技能、产物prompt-turn-workflow.ts计划文档结构与状态机contract.ts计划的生成、审批、反馈落库plan-service.tsACP 与渲染进程共享的类型契约acp.ts给 Agent 的计划行为规则提示词guidance.ts如果你使用 VS Code 打开仓库从 runtime.ts 跳到sessionPlanWorkflow的组装处composeAcpRuntimePlanWorkflow再顺藤摸到 runtime-plan-composition.ts基本就能把 plan/execute/tool-call 三层串起来。相关的产品需求与设计文档可参考 docs/PRD.md 和 docs/design.md。小结一张图记住这个循环planAgent 评估任务是否值得规划 → 调用generate_plan提交四字段计划 → 挂起等待你的审批execute批准后逐轮执行每个步骤开始/结束时调用update_step_status更新结构化进度tool-call通过 MCP 工具服务器操作文献、笔记本、技能敏感操作经权限审批产物带溯源留档。对新手来说这套 ACP 代理协议的价值不在于技术细节多炫而在于它把 AI 科研工作变成了先立计划、再干活、留证据的工程流程——这正是科研场景最需要的确定性。【免费下载链接】open-scienceAIPOCH Open-Science is an open-source, local-first, model-agnostic AI research workbench for macOS, Windows, and Linux, with scientific agents, Python/R notebooks, data connectors, and reproducible provenance.项目地址: https://gitcode.com/GitHub_Trending/open/open-science创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考