尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

DevoxxGenie ACP Runner深度解析:用JSON-RPC与外部AI Agent建立结构化会话

DevoxxGenie ACP Runner深度解析:用JSON-RPC与外部AI Agent建立结构化会话 DevoxxGenie ACP Runner深度解析用JSON-RPC与外部AI Agent建立结构化会话【免费下载链接】DevoxxGenieIDEAPluginDevoxxGenie is an agentic plugin for IntelliJ IDEA that uses local LLMs (Ollama, LMStudio, GPT4All, Jan and Llama.cpp) and Cloud based LLMs to help review, test, explain your project code. Latest version now also supports Spec Driven Development with CLI Runners.项目地址: https://gitcode.com/gh_mirrors/de/DevoxxGenieIDEAPluginDevoxxGenie 是 IntelliJ IDEA 上的一款智能体 AI 插件支持调用本地 LLMOllama、LMStudio 等与云端大模型。它的ACP Runner功能允许插件通过JSON-RPC 2.0 协议与外部 AI AgentClaude、Kimi、Gemini CLI、Copilot 等建立结构化的双向会话——不再是简单的丢一行文字、读一堆输出而是具备能力协商、流式响应和工具调用的完整通信协议。一、ACP Runner 与 CLI Runner 有什么区别如果你用过 DevoxxGenie 的 CLI Runner它的工作方式很朴素把 Prompt 作为纯文本写进子进程的标准输入然后读取标准输出。简单直接但无结构——响应是一股原始文本流无法区分消息类型也没有能力协商。ACPAgent Communication ProtocolRunner 则构建在JSON-RPC 2.0 over stdin/stdout之上带来本质差异特性CLI RunnerACP Runner通信方式stdin/stdout 纯文本JSON-RPC 2.0 结构消息能力协商无initialize 握手交换 capabilities流式响应原始 stdout 流类型化的响应块文本块/工具调用进程生命周期每个任务一次性的常驻进程可多轮交互工具调用可见性无tool_call/tool_call_update通知简单说CLI Runner 像发微信语音ACP Runner 像打电话——有拨号、有握手、有随时打断的可能。二、三层架构一次 ACP 会话的代码地图ACP 功能的核心源码位于src/main/java/com/devoxx/genie/service/acp/目录分为三层各司其职AcpClient.java协议层管理 ACP 连接的全生命周期——启动进程、执行 initialize 握手、创建会话、发送 Prompt。对外只暴露start()→initialize()→createSession()→sendPrompt()四个动作非常干净。AcpTransport.java传输层真正的 JSON-RPC 2.0 实现。以换行分隔的 JSON 消息在 stdin/stdout 上流动内部用AtomicInteger生成请求 id用CompletableFuture把异步的响应流变成可阻塞等待的调用默认 120 秒超时。AgentRequestHandler.java反向服务层这是最有趣的一层——它处理Agent 反向发起的 JSON-RPC 请求让外部 Agent 能读写你的本地文件、甚至管理终端进程。上层由AcpPromptStrategy.java位于src/main/java/com/devoxx/genie/service/prompt/strategy/串联它在 IDE 后台线程中构建AcpClient把流式文本块实时刷到聊天面板结束后把结果写入对话历史。三、握手与能力协商initialize 到底做了什么进程启动后第一步不是发 Prompt而是initialize请求。客户端会告知 Agent 三件事协议版本当前为 1客户端身份DevoxxGenie/ 版本号能力声明ClientCapabilities支持文件读取、文件写入、终端管理这些能力声明定义在model/ClientCapabilities.java中。Agent 收到后返回自己支持的协议版本——双方都确认我能干什么之后会话才真正开始。这正是结构化会话与裸文本管道的分水岭。四、会话生命周期从 session/new 到流式更新一次完整调用遵循固定的消息序列initialize → session/new → session/prompt → session/update(多次) → 完成session/new以 IDE 打开的项目目录为工作目录创建会话Agent 返回sessionId。此后所有 Prompt 都挂在这个会话下天然携带上下文。session/prompt把用户 Prompt 包装成内容块ContentBlocktype 为text发送。session/update这是通知notification类型消息——有方法名但没有 id不需要回复。Agent 通过它流式推送三类更新agent_message_chunk回答文本的一小段实时显示在 IDE 聊天窗口tool_callAgent 正在调用某个工具比如搜索文件tool_call_update工具执行完成及结果传输层对这三种消息类型做了精确区分见JsonRpcMessage.java的isRequest()/isNotification()/isResponse()分别派发到请求响应队列、通知监听器和反向请求处理器——这就是结构化的含义每条消息都有明确语义而不是一个字节流。五、反向通道外部 Agent 如何操作你的 IDE 项目普通方向是IDE 问、Agent 答但 ACP 是双向的。AgentRequestHandler支持 Agent 反向请求本地操作反向方法作用fs/read_text_file读取项目中的源文件fs/write_text_file写入/修改文件自动创建父目录session/request_permission请求操作权限DevoxxGenie 默认自动批准terminal/create启动受管终端进程执行命令terminal/output/terminal/wait_for_exit读取输出、等待退出码terminal/release/terminal/kill释放或强杀终端进程这意味着 Claude 等外部 Agent 在 DevoxxGenie 里不只是聊天——它能真正读代码、改文件、跑命令像一个驻扎在你 IDE 里的结对编程伙伴。六、三步配置让 ACP Runner 跑起来打开Settings → Tools → DevoxxGenie → CLI/ACP Runners在ACP Runners区域点击选择类型Claude、Copilot、Kimi、Gemini、Kilocode 或 Custom可执行文件路径会自动填充点击Test Connection验证 ACP 握手成功最后 Apply然后在DevoxxGenie Specs工具栏的执行模式下拉框中选择ACP: Claude、ACP: Kimi等模式即可选择会跨 IDE 重启持久保存。ACP Runner 同时支持单任务执行与 Agent Loop 批量任务执行。七、常见问题速查 ️握手失败检查可执行文件路径先手动执行--version确认 CLI 已安装连接被拒绝确认工具版本支持 ACP 模式部分工具需要特定参数如copilot --acpTest Connection 超时某些工具首次运行要下载模型先手动跑一次完成初始化Prompt 后无响应检查该 CLI 是否已完成登录认证总结DevoxxGenie 的 ACP Runner 用一个精巧的三层架构Client / Transport / RequestHandler把JSON-RPC 2.0变成了 IDE 与外部 AI Agent 之间的高速公路能力协商保证双方知根知底流式通知让回答逐字浮现反向请求则让 Agent 直接读写文件、管理终端。如果你想把 Claude、Kimi、Gemini CLI 等强 Agent 接进 IntelliJ IDEA 做 Spec 驱动开发这就是最结构化的方式。【免费下载链接】DevoxxGenieIDEAPluginDevoxxGenie is an agentic plugin for IntelliJ IDEA that uses local LLMs (Ollama, LMStudio, GPT4All, Jan and Llama.cpp) and Cloud based LLMs to help review, test, explain your project code. Latest version now also supports Spec Driven Development with CLI Runners.项目地址: https://gitcode.com/gh_mirrors/de/DevoxxGenieIDEAPlugin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表