[{"data":1,"prerenderedAt":479},["ShallowReactive",2],{"header-counts":3,"footer-counts":6,"wiki-acp":9},{"tools":4,"reviews":5},70,12,{"tools":4,"reviews":5,"playbooks":7,"news":8},15,13,{"id":10,"title":11,"body":12,"category":456,"description":73,"extension":457,"meta":458,"navigation":459,"path":460,"published":461,"relatedModels":462,"relatedTools":465,"seo":469,"slug":470,"stem":471,"summary":472,"tags":473,"updated":461,"__hash__":478},"wiki\u002Fwiki\u002Facp.md","ACP (Agent Client Protocol)",{"type":13,"value":14,"toc":446},"minimark",[15,20,29,32,38,41,44,54,57,60,63,74,77,101,104,166,169,173,176,249,255,259,266,371,378,381,407,410,442],[16,17,19],"h2",{"id":18},"什么是-acp","什么是 ACP",[21,22,23,24,28],"p",{},"ACP（Agent Client Protocol）是 Zed Industries 提出的开放协议（Apache 2.0），用来标准化",[25,26,27],"strong",{},"代码编辑器与 AI 编码 agent 之间的通信","。它用 JSON-RPC 2.0 跑在 stdin\u002Fstdout 双向流上：编辑器把 agent 当子进程拉起，双方交换换行分隔的 JSON 消息。",[21,30,31],{},"核心价值是「一次实现，处处可用」——任何支持 ACP 的 agent 都能在任何支持 ACP 的编辑器里跑，不需要为每个编辑器单独做集成。",[33,34,35],"blockquote",{},[21,36,37],{},"最贴切的类比是 LSP（Language Server Protocol）。LSP 让一个语言服务器能在所有编辑器里提供补全\u002F跳转；ACP 让一个 AI agent 能在所有编辑器里提供对话\u002F工具调用\u002F文件编辑。ACP 就是「AI agent 版的 LSP」。",[16,39,40],{"id":40},"解决什么问题",[21,42,43],{},"在 ACP 之前，agent 和编辑器是 N×M 的适配地狱：",[45,46,47,51],"ul",{},[48,49,50],"li",{},"Claude Code 要单独适配 Zed、Neovim、JetBrains……",[48,52,53],{},"每个编辑器要单独对接 Claude Code、Codex、Gemini CLI……",[21,55,56],{},"Block 的 goose 团队把这形容为「三个应用问题」：开发者得同时开编辑器、agent 窗口、浏览器。ACP 把 agent 收进编辑器，砍掉一个窗口。每加一个 agent 或一个编辑器，只要实现一次 ACP，就和生态里所有另一侧打通。",[16,58,59],{"id":59},"工作原理",[21,61,62],{},"ACP 用 JSON-RPC 2.0 over stdio，生命周期大致是：",[64,65,70],"pre",{"className":66,"code":68,"language":69},[67],"language-text","1. initialize        协商协议版本与能力（文件系统\u002F终端\u002FMCP）\n2. session\u002Fnew       新建会话（传入 CWD、MCP server 配置）\n3. session\u002Fprompt    客户端发用户消息（ContentBlock[]：文本\u002F图片\u002F音频）\n4. session\u002Fupdate    agent 流式回传（消息块、工具调用、计划）\n5. 回调客户端         fs\u002Fread_text_file、fs\u002Fwrite_text_file、\n                     terminal\u002Fcreate、session\u002Frequest_permission\n","text",[71,72,68],"code",{"__ignoreMap":73},"",[21,75,76],{},"几个关键点：",[45,78,79,85,91],{},[48,80,81,84],{},[25,82,83],{},"传输层","：stdin\u002Fstdout，UTF-8，JSON-RPC 2.0，协议版本是 uint16，只有破坏性变更才递增",[48,86,87,90],{},[25,88,89],{},"双向","：agent 不只是被动应答，还能回调客户端读写文件、开终端、申请权限（human-in-the-loop）",[48,92,93,96,97,100],{},[25,94,95],{},"流式","：",[71,98,99],{},"session\u002Fupdate"," 把消息块、工具调用、执行计划实时推给编辑器",[16,102,103],{"id":103},"谁在用",[105,106,107,120],"table",{},[108,109,110],"thead",{},[111,112,113,117],"tr",{},[114,115,116],"th",{},"角色",[114,118,119],{},"代表",[121,122,123,137,158],"tbody",{},[111,124,125,129],{},[126,127,128],"td",{},"编辑器（客户端）",[126,130,131,136],{},[132,133,135],"a",{"href":134},"\u002Fcoding\u002Fide\u002Fzed.html","Zed","、Neovim、Emacs、JetBrains（2025-10 官方合作）、Obsidian",[111,138,139,142],{},[126,140,141],{},"agent（服务端）",[126,143,144,148,149,153,154],{},[132,145,147],{"href":146},"\u002Fcoding\u002Fcli\u002Fgemini-cli.html","Gemini CLI","（参考实现）、",[132,150,152],{"href":151},"\u002Fcoding\u002Fcli\u002Fclaude-code.html","Claude Code","（经 Zed 桥接）、",[132,155,157],{"href":156},"\u002Fcoding\u002Fcli\u002Fcodex.html","Codex",[111,159,160,163],{},[126,161,162],{},"TUI",[126,164,165],{},"Toad（支持 18+ agent）",[21,167,168],{},"由 Zed 和 JetBrains 背书，Google 的 Gemini CLI 是参考实现。VS Code 截至 2026 年 3 月无原生支持（微软把 agent mode 押在 MCP 上），仅有社区扩展 vscode-acp。",[16,170,172],{"id":171},"acp-vs-mcp","ACP vs MCP",[21,174,175],{},"新人最容易混淆这两个协议，但它们解决完全不同的问题：",[105,177,178,194],{},[108,179,180],{},[111,181,182,185,188],{},[114,183,184],{},"维度",[114,186,187],{},"ACP",[114,189,190],{},[132,191,193],{"href":192},"\u002Fwiki\u002Fmcp.html","MCP",[121,195,196,207,217,228,239],{},[111,197,198,201,204],{},[126,199,200],{},"连接对象",[126,202,203],{},"编辑器 ↔ agent",[126,205,206],{},"agent ↔ 工具\u002F数据",[111,208,209,212,214],{},[126,210,211],{},"提出者",[126,213,135],{},[126,215,216],{},"Anthropic",[111,218,219,222,225],{},[126,220,221],{},"类比",[126,223,224],{},"AI agent 版 LSP",[126,226,227],{},"AI 的 USB-C",[111,229,230,233,236],{},[126,231,232],{},"解决",[126,234,235],{},"agent 怎么进编辑器",[126,237,238],{},"agent 怎么调工具",[111,240,241,244,247],{},[126,242,243],{},"关系",[126,245,246],{},"互补",[126,248,246],{},[21,250,251,254],{},[25,252,253],{},"二者协同","：ACP 会话启动时，编辑器把 MCP server 端点传给 agent，于是 agent 一边通过 ACP 跟编辑器交互，一边通过 MCP 调用工具。ACP 不是要取代 MCP。",[16,256,258],{"id":257},"怎么用zed-接入自定义-agent","怎么用（Zed 接入自定义 agent）",[21,260,261,262,265],{},"在 ",[71,263,264],{},"~\u002F.config\u002Fzed\u002Fsettings.json"," 里加 agent server：",[64,267,271],{"className":268,"code":269,"language":270,"meta":73,"style":73},"language-json shiki shiki-themes github-light github-dark","{\n  \"agent_servers\": {\n    \"My ACP Agent\": {\n      \"type\": \"custom\",\n      \"command\": \"my-agent\",\n      \"args\": [\"acp\"],\n      \"env\": {}\n    }\n  }\n}\n","json",[71,272,273,282,292,300,316,329,344,353,359,365],{"__ignoreMap":73},[274,275,278],"span",{"class":276,"line":277},"line",1,[274,279,281],{"class":280},"sVt8B","{\n",[274,283,285,289],{"class":276,"line":284},2,[274,286,288],{"class":287},"sj4cs","  \"agent_servers\"",[274,290,291],{"class":280},": {\n",[274,293,295,298],{"class":276,"line":294},3,[274,296,297],{"class":287},"    \"My ACP Agent\"",[274,299,291],{"class":280},[274,301,303,306,309,313],{"class":276,"line":302},4,[274,304,305],{"class":287},"      \"type\"",[274,307,308],{"class":280},": ",[274,310,312],{"class":311},"sZZnC","\"custom\"",[274,314,315],{"class":280},",\n",[274,317,319,322,324,327],{"class":276,"line":318},5,[274,320,321],{"class":287},"      \"command\"",[274,323,308],{"class":280},[274,325,326],{"class":311},"\"my-agent\"",[274,328,315],{"class":280},[274,330,332,335,338,341],{"class":276,"line":331},6,[274,333,334],{"class":287},"      \"args\"",[274,336,337],{"class":280},": [",[274,339,340],{"class":311},"\"acp\"",[274,342,343],{"class":280},"],\n",[274,345,347,350],{"class":276,"line":346},7,[274,348,349],{"class":287},"      \"env\"",[274,351,352],{"class":280},": {}\n",[274,354,356],{"class":276,"line":355},8,[274,357,358],{"class":280},"    }\n",[274,360,362],{"class":276,"line":361},9,[274,363,364],{"class":280},"  }\n",[274,366,368],{"class":276,"line":367},10,[274,369,370],{"class":280},"}\n",[21,372,373,374,377],{},"然后在 Zed 的 Agent 面板选择它即可。Python 侧可以 ",[71,375,376],{},"pip install agent-client-protocol","（需 3.10+），提供异步基类和 stdio JSON-RPC transport。",[16,379,380],{"id":380},"常见踩坑",[45,382,383,389,395,401],{},[48,384,385,388],{},[25,386,387],{},"以为 ACP 取代 MCP","：不是。一个管「编辑器↔agent」，一个管「agent↔工具」，生产里通常两个一起用。",[48,390,391,394],{},[25,392,393],{},"指望 VS Code 原生支持","：截至 2026 年 3 月还没有，VS Code 走的是 MCP 路线。需要在 VS Code 里用得靠社区扩展。",[48,396,397,400],{},[25,398,399],{},"Claude Code 是桥接不是原生","：Anthropic 没原生采用 ACP，是 Zed 做了桥接适配器包了一层。功能基本可用但要知道这层关系。",[48,402,403,406],{},[25,404,405],{},"协议还在迭代","：2026 年 3 月到 v0.11.0，版本仍在演进，跟进 breaking change。",[16,408,409],{"id":409},"延伸阅读",[45,411,412,418,426,434],{},[48,413,414,415,417],{},"工具协议：",[132,416,193],{"href":192},"——agent ↔ 工具的标准",[48,419,420,421,425],{},"agent 协作：",[132,422,424],{"href":423},"\u002Fwiki\u002Fa2a.html","A2A","——agent ↔ agent 的标准",[48,427,428,429,433],{},"项目约定：",[132,430,432],{"href":431},"\u002Fwiki\u002Fagents-md.html","AGENTS.md","——给 agent 的项目说明",[48,435,436,437,439,440],{},"编辑器：",[132,438,135],{"href":134}," \u002F 工具：",[132,441,147],{"href":146},[443,444,445],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":73,"searchDepth":294,"depth":294,"links":447},[448,449,450,451,452,453,454,455],{"id":18,"depth":284,"text":19},{"id":40,"depth":284,"text":40},{"id":59,"depth":284,"text":59},{"id":103,"depth":284,"text":103},{"id":171,"depth":284,"text":172},{"id":257,"depth":284,"text":258},{"id":380,"depth":284,"text":380},{"id":409,"depth":284,"text":409},"protocol","md",{},true,"\u002Fwiki\u002Facp","2026-06-28",[463,464],"claude-opus-4-5","gemini-3-pro",[466,467,468],"coding\u002Fide\u002Fzed","coding\u002Fcli\u002Fgemini-cli","coding\u002Fcli\u002Fclaude-code",{"title":11,"description":73},"acp","wiki\u002Facp","Zed 提出的开放协议，标准化代码编辑器与 AI 编码 agent 之间的通信。用 JSON-RPC 2.0 跑在 stdio 上，让任何 ACP agent 能在任何 ACP 编辑器里用——相当于 AI agent 版的 LSP。",[187,474,475,476,135,477],"协议","Agent","编辑器","JSON-RPC","uys7lUP3ybVaGncgHS4id4y83Dwzfx3tfLJJG-N94TM",1782663749249]