ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

如何在编辑器里跑NOAA编码智能体:nooa-acp + Zed的ACP集成实战

如何在编辑器里跑NOAA编码智能体:nooa-acp + Zed的ACP集成实战 如何在编辑器里跑NOAA编码智能体nooa-acp Zed的ACP集成实战【免费下载链接】labs-OO-AgentsNVIDIA Object Oriented Agents: the Pythonic way to build AI Agents.项目地址: https://gitcode.com/gh_mirrors/la/labs-OO-AgentsNOAANVIDIA Object Oriented AgentsPythonic 方式构建 AI 智能体的开源框架提供nooa-acp适配器包它是 Agent Client ProtocolACP 服务器让你直接在 Zed 等编辑器里驱动 NOAA 编码智能体——CodeAct 策略、仓库工具、持久 Shell、已安装技能、工作区斜杠命令和持久会话全部开箱即用。本文将带你用 3 个步骤完成 Zed 与 NOAA 的 ACP 集成并避开盘子里的 3 个常见坑。 什么是 nooa-acp编辑器里的智能体服务器nooa-acp的定位一句话就能说清Run the NOOA coding agent inside your editor让 NOAA 编码智能体跑进你的编辑器。它的架构特点很妙它直接宿主nooa_cli.coding.CodingAgent而不是另写一套 ACP 实现。仓库指令AGENTS.md、编码工具、摘要能力、nooa.skills技能入口在终端和编辑器里共享同一份代码——改一处两边同时生效。它通过 stdin/stdout 走 JSON-RPC 说 ACP 协议诊断信息写到 stderr因此任何会说 ACP的客户端都能驱动它目前最成熟的是Zed。文件编辑和终端命令会以结构化活动卡片tool call的形式呈现给编辑器而不是一坨原始文本。核心实现在这几处感兴趣可以一窥究竟模块职责packages/nooa-acp/src/nooa_acp/server.pyCodingACPAdapter会话创建、加载、列表、关闭与提示词分发packages/nooa-acp/src/nooa_acp/event_bridge.py把 Python 执行、文件编辑、终端命令等事件翻译成 ACP 更新packages/nooa-acp/src/nooa_acp/dispatcher.py交互式会话调度器负责前台轮次与取消packages/nooa-acp/src/nooa_acp/cli.pynooa-acp命令行入口支持--model与NOOA_MODEL⚡ Zed 快速上手3 步接入 NOAA第 1 步安装 nooa-acpuv add nooa-acp # 或者uv add nooa[acp]注意nooa-acp 没有默认模型。必须设置NOOA_MODEL环境变量或传--model否则命令会以用法错误退出见 cli.py。第 2 步在 Zed 中注册外部智能体Zed 把 ACP 智能体作为external agents启动。打开 Zed 设置快捷键cmd-,在settings.json中加入{ agent_servers: { NOOA: { type: custom, command: uvx, args: [nooa-acp], env: { NOOA_MODEL: nvidia_nim/nvidia/nemotron-3-super-120b-a12b, NVIDIA_API_KEY: nvapi-... } } } }如果你是从本仓库检出代码开发可以指向工作区内的包uv run --project $PWD --package nooa-acp -- nooa-acp第 3 步打开项目选择 NOOA打开你的代码仓库在 Zed 的智能体面板中点菜单选择NOOA即可开始对话。Zed 会以你的工作树worktree作为工作目录启动命令因此仓库指令、项目技能与会话都会针对当前项目解析。凭据小贴士API Key 放在env里而不是 Zed 自己的设置中——智能体是独立进程只继承 Zed 传给它的东西。如果不想把密钥写进settings.json可以用一个密钥管理器包装脚本作为command。 编辑器里能干什么结构化活动、会话与斜杠命令接入后NOOA 在 Zed 里的表现和它的终端 TUI 几乎一致因为底层就是同一个CodingAgent定义见 packages/nooa-cli/src/nooa_cli/coding/agent.py结构化活动卡片event_bridge.py 订阅了PythonOutput、FileEdit、TerminalCommandStarted/Output/Finished等事件。Python 单元格会显示为带源码和Out[n]输出的卡片文件编辑会渲染成diff终端命令会流式滚动输出就像在编辑器里长出了一个透明的终端。持久会话会话保存在workspace/.nooa/sessionsTUI 和 ACP 适配器共享同一份会话列表与回放元数据。关闭 Zed 再打开历史对话可以完整回放server.py 的_replay_session。斜杠命令技能里声明的slash_command方法会通过 ACP 广播给客户端输入/command 参数即可触发语义与原生 TUI 完全一致prompt 分发逻辑。用量与成本每次 LLM 响应都会向客户端发送usage_update包含上下文占用与累计花费event_bridge.py。⚠️ 避坑指南3 个必须知道的限制坑 1Zed 里的远程 MCP 服务器不会传给 NOAA这是一个已知的 Zed 限制你在 Zed 内部完成 OAuth 认证的远程 MCP 服务器其令牌由 Zed 自己持有不会下传给 ACP 智能体——结果就是那个在 Zed 界面显示绿色指示灯的服务器到 NOAA 这里只剩authenticate桩方法。本地 stdio MCP 服务器不受影响。✅正确做法通过 NOOA 自己的.mcp.json直接配置 MCP 服务器让 NOAA 拥有连接和凭据一切正常。坑 2打开仓库 执行仓库里的代码创建会话时session/new/session/loadNOOA 会先导入工作区的 Python 代码——这是工作区技能的工作机制但意味着打开文件夹就可能执行其中的模块级代码。三条加载路径包括.agents/skills等技能根目录、workspace/.nooa/settings.yaml中声明的额外技能目录、以及.nooa/libs/package/库目录。️安全准则只在你愿意运行其代码的仓库上打开 NOAA处理不受信任的任务时请使用操作系统级沙箱或为每个工作区启动独立服务器并收紧凭据范围。坑 3一个 ACP 服务器进程服务多个工作区当前 stdio 适配器把活会话宿主在自己的进程里_runtime.py 的SessionRuntime。若两个工作区加载同名的顶级 Python 包会产生导入遮蔽——为这类工作区各起一个独立的 stdio 服务器即可。 延伸阅读nooa-acp 完整文档packages/nooa-acp/README.md包清单与nooa-acp入口点定义packages/nooa-acp/pyproject.tomlCLI 宿主TUI侧的 ACP 说明packages/nooa-cli/README.md协议与运行时测试packages/nooa-acp/tests/test_protocol.py、packages/nooa-acp/tests/test_runtime.py总结nooa-acp用一行uv add和一段settings.json配置就把 NOAA 的完整编码能力——CodeAct 执行、仓库工具、技能体系、持久会话——搬进了 Zed 编辑器。它没有为 ACP 重写轮子而是直接宿主终端宿主用的同一个CodingAgent所以编辑器体验和终端体验天然一致。只要记住先装包、再配 Zed、只开可信仓库三件事你就可以在编辑器里享受一个透明、可控、带 diff 视图的 NOAA 编码智能体了。【免费下载链接】labs-OO-AgentsNVIDIA Object Oriented Agents: the Pythonic way to build AI Agents.项目地址: https://gitcode.com/gh_mirrors/la/labs-OO-Agents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表