AI - 在命令行中尝试一下ACP(Agent Client Protocol)通信

1. 简单介绍

ACP(Agent Client Protocol)是用于标准化AI Agent与代码编辑器或IDE等客户端之间通信的开放协议。有了ACP协议之后,Code Editor与Agents就解耦了。

基于ACP的SDK目前有TypeScript-SDK,rust-SDK, Python-SDK, Kotlin-SDK, Java-SDK

这边将尝试在命令行中去体验一下TypeScript的ACP案例

2.具体说明

2.1 准备工作

  1. 下载项目

    git clone https://github.com/agentclientprotocol/typescript-sdk.git

  2. 首先需要确保电脑上已经安装了NodeJs和npm

  3. 接着使用npm -install命令安装node modules

2.2 运行项目

2.2.1 Initialization
  1. 导航到SDK sample目录, typescript-sdk-main\src\examples

  2. 运行如下命令,

    npx tsx src/examples/agent.ts

  1. Client到Agents的连接初始化,下面的图片来自ACP的官方网站,

在命令行中输入如下json进行ACP连接的建立,Client和Agents进行了关于protocol version, capacity以及身份认证方法的协商,

复制代码
{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"protocolVersion":1}}
  1. Agent返回了如下的信息,

可以看出Agent不支持loadsession方法,也不支持session/close方法。

2.2.2 New session

Client和Agent需要建立一个session,然后在session中进行通信,

  1. 在命令行中输入如下的内容去创建一个新的session,

    {"jsonrpc":"2.0","id":1,"method":"session/new","params":{"cwd":"...\typescript-sdk-main\src\examples","mcpServers":[{"name":"my-mcp-server-20a6993d","command":"...\MSAIFest2025DataAnalysis\MSAIFest2025DataAnalysis.exe","args":["--stdio"],"env":[]}]}}

方法使用的是session/new,

  1. 最后建立了一个新session,同时agent端返回内容如下,
2.2.3 Prompt turn

建立好session之后,从Client可以开始向Agent端发送信息了,

  1. 在控制台输入如下内容,

    {"jsonrpc":"2.0","id":2,"method":"session/prompt","params":{"sessionId":"6b22c40d0a1966da2a01e5ecfcb9e833","prompt":[{"type":"text","text":"Can you please tell me who are you?"}]}}

方法使用的是session/prompt,同时sessionId需要替换成步骤2.2.2中建立的sessionId,

  1. Agent端返回如下信息给Client, 使用的方法是session/update,
  1. 如果Agent需要user approval操作,则还会有如下回复,方法是session/request_permission,
2.2.4 Close session

在Initialize connection阶段,Client和Agent进行了协商,从Agent返回的信息可以看出不支持session/load和session/close,

  1. 这时候如果输入如下信息,

    {"jsonrpc":"2.0","id":3,"method":"session/close","params":{"sessionId":"b5bfc8f09c6857cd425ae0f80377d472"}}

  2. 则Agent端返回结果如下所示,返回了error message "Method not found",

2.2.5 其他

这个案例中,session/load也是不支持的,

3.总结

本文简单尝试了一下在命令行中进行ACP Client和Agent通信的过程。熟悉了Client/Agent之间的传递的协议,方法,参数等,就可以开始基于ACP SDK来制作UI或者IDE extension/plugin了。ACP的内容还有很多,更加深入的内容,还需继续跟着社区老师学习一下。

本文如果哪里有错误,麻烦告之,谢谢谢谢!

相关推荐
可涵不会debug2 天前
LangChain 进阶之路:LangGraph 图工作流、有状态智能体完整入门教程
microsoft
AlbertZein2 天前
Step-5-Preview 上手实测:3D 游戏、金融分析、网页设计一次跑完
人工智能·aigc
lpfasd1232 天前
2026年第38周GitHub趋势周报
python·科技·github
AIGCmagic社区2 天前
文档智能专题:小模型后训练怎么选样本?PaddleOCR-VL-1.6按三类弱点挖掘
人工智能·aigc·文档智能
AIGCmagic社区2 天前
文档智能专题:HunyuanOCR-1.5用DFlash把整页解码压到1.4秒
人工智能·aigc·文档智能
u1301302 天前
GitHub 热榜项目:日榜(2026-09-21)
人工智能·github
小虎AI生活2 天前
腾讯开源了一个项目,让 AI 直接用你已经登录好的浏览器
aigc·ai编程
张洛闻Eren2 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
plainGeekDev2 天前
Harness 实战:用 Android 登录模块搭一套可靠的 Agent 开发环境
aigc·ai编程·claude
MicrosoftReactor2 天前
技术速递|GitHub Copilot App 入门指南:使用 Diff、终端和浏览器
ai·copilot·agent