已开启
[Feature]: 支持标准 Agent Client Protocol(ACP) #102
wang_cheng_zhao创建于 9月17日
9月17日 添加了label:feature
openJiuwen-bot
9月17日 评论:
9月17日 评论:
欢迎来到 openJiuwen 社区
Hey @wang_cheng_zhao , 感谢你对社区的贡献.
机器人使用手册
有关指令的使用,可以点击 此处 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。


9月17日 修改了issue 的描述
🚀 背景描述
ScienceDiscovery 今天的主入口是本机
serve+ 浏览器 UI(默认http://127.0.0.1:4310)。Agent 跑在产品自己的控制面里:Web 发任务、API 编排 Run、沙箱执行代码、MCP 接外部工具。用户如果已经在 Zed、VS Code、JetBrains 等编辑器里工作,无法把 ScienceDiscovery 当作一只标准编码 Agent 接进去,只能离开编辑器、打开浏览器。Agent Client Protocol(ACP) 是编辑器(Client)与编码 Agent 之间的开放协议,由 Zed 于 2025 年发布,现为 Apache 2.0 开源标准。它用 JSON-RPC 2.0(通常走 stdio)约定初始化、会话、提示轮次、流式更新、权限与取消,目标类似 LSP:任意兼容 Client 可以驱动任意兼容 Agent,而不为每个编辑器写一份私有集成。当前稳定线协议是 ACP v1(
initialize时协商protocolVersion);v2 文档于 2026-07 以 Draft 发布,尚未作为本需求的默认目标。ACP 与产品已有的 MCP 不在同一层、也不互相替代:
本仓库源码中没有 ACP 实现(无
agent-client-protocol、无 stdio JSON-RPC Agent 入口)。已有相关需求也不是这件事:serve做与网页对等的 HTTP CLI 客户端,不定义编辑器↔Agent 协议;用户可观察结果:在兼容 ACP 的编辑器里选中 ScienceDiscovery,即可对当前工作区提问、看流式输出与工具调用、按 ACP 权限模型批准敏感操作,并走产品已有的沙箱、科研 Connector 与 Skill,而不必再开浏览器。
设计思路
默认角色:ScienceDiscovery 作为 ACP Agent(编辑器是 Client)。这与「让科研 Agent 进标准编辑器」一致。是否再做 ACP Client(用本产品 UI 去驱动 Claude Code / Gemini CLI 等其他 Agent)列为未拍板项,不阻塞第一期。
建议第一期对齐 ACP v1 基线方法(官方文档:https://agentclientprotocol.com/protocol/v1/overview):
:4310控制面。initialize(版本与能力协商)→ 可选authenticate→session/new(或有能力时session/load)→session/prompt/session/update/session/cancel。session/request_permission、可选fs/*/terminal/*与产品既有权限卡、Bubblewrap/Seatbelt 沙箱对齐。默认安全姿态不得比网页端更松;ACP 不得变成绕过沙箱的新通道。initialize里如实声明实际支持的agentCapabilities(如loadSession、prompt 图片、MCP 透传)。科研特有能力(文献 Connector、Artifact、Memory Graph)若 v1 schema 没有对应字段,走 ACP 的_meta/_自定义方法,并在正文写清;不要为此另发明一套私有 JSON-RPC。不考虑或仅作备选:
未拍板(实现前需确认):
serve时是否仍拉齐完整 Gateway/Runner;涉及到的对外API
与其他模块的相关性描述
serve、#23 HTTP CLI 并列,不互相替代;测试设计与测试计划
协议符合性
产品约束
互操作 / 用户旅程
其他信息
规范与仓库(公开 HTTPS):
产品当前入口仍是
./ScienceDiscovery serve+ 浏览器;本 Issue 要补的是编辑器可拉起的 ACP Agent 进程,而不是再做一个私有聊天协议。