跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

ACP 程序控制模式

用 JSON-RPC stdio 驱动 Gemini CLI,管理会话并排查协议问题。

ACP(Agent Client Protocol)让 IDE 或开发工具作为客户端,通过标准输入输出的 JSON-RPC 2.0 驱动 Gemini CLI。

gemini --acp

这不是普通交互终端,也不是一次性 text/json 无头输出;调用方需要实现协议请求、响应和通知处理。

客户端与 Agent

客户端发送任务、接收更新并处理交互;CLI 作为服务端处理请求。Gemini CLI 可通过 ACP Agent Registry 被支持的 JetBrains、Zed 等客户端发现和安装,具体入口取决于编辑器当前实现。

主要能力

官方 ACP 页以实现方法名介绍 initialize、authenticate、newSession、loadSession、prompt、cancel;会话控制包含 setSessionMode 与 unstable_setSessionModel。

这些名称用于理解职责,接入时应按当前协议或 SDK 确认实际 wire method 与参数,不能直接把方法名列表当成完整 JSON-RPC 请求样板。unstable 接口尤其需要匹配版本。

IDE 工具与文件

客户端可提供 MCP server 能力给 Gemini,Agent 发现后可调用编辑器工具。文件读写可通过客户端代理,由客户端管理允许的访问;这不等于本机所有其他工具自动进入独立操作系统沙箱。

Companion 则通过本地 HTTP MCP 服务提供上下文和 diff,不能混用其发现文件与 ACP stdio 启动配置。

日志与遥测

gemini --acp --debug

官方给出 GEMINI_TELEMETRY_ENABLED=true、GEMINI_TELEMETRY_TARGET=local、GEMINI_TELEMETRY_OUTFILE 指定输出文件的调试方式。日志可能含 ACP 请求响应和 Agent 事件,分享前检查提示与代码内容。

故障定位

确认客户端启动了 --acp,而非普通 CLI;检查认证、会话建立和请求生命周期。协议连接已建立不表示任务权限和模型都准备好。将普通日志混入协议 stdout 会干扰客户端解析,集成应保持协议输出与诊断分离。