Hermes Agent与pulsar编辑器进行协同开发的配置修复方法汇总

社区话题 AI Agent与自动化 Hermes Agent与pulsar编辑器进行协同开发的配置修复方法汇总

5
  • 该话题包含 2 个回复、1 个参与人,并且最后由 追光12 分 前 更新。
正在查看 1 条回复
  • 作者
    帖子
    • #134689

      追光
      参与者

      Pulsar + Hermes Agent 本地 AI 开发环境搭建完全指南:从零配置到踩坑修复,一篇搞定 Pulsar 编辑器 + Hermes Agent + 本地 LLM 的完整联动方案。

      Pulsar Editor <–ACP/stdio–> Hermes Agent <–OpenAI API–> LM Studio / Ollama
      (JSON-RPC 2.0) (Python 3.11+) (Local LLM)

      组件
      职责
      技术栈
      Pulsar
      代码编辑器,Atom 的社区继承者
      Electron + Node.js
      Pulsar ACP Agent
      Pulsar 插件,实现 ACP 客户端协议
      TypeScript (bundled JS)
      Hermes Agent
      AI 代理框架,支持多 Provider、工具调用、MCP
      Python 3.11+
      ACP
      编辑器与 AI Agent 之间的通信协议
      JSON-RPC 2.0 over stdio
      LM Studio / Ollama
      本地 LLM 推理服务
      OpenAI Compatible API

      查看 Hermes ACP 日志

      ~/.local/bin/hermes acp 2>&1 | tee /tmp/hermes-acp.log

      模拟 Pulsar 的 initialize 请求:

      echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":1,"clientCapabilities":{"fs":{"readTextFile":true,"writeTextFile":true},"terminal":true},"clientInfo":{"name":"test","version":"1.0"}}}' | \
      ~/.local/bin/hermes acp 2>/dev/null | head -1 | python3 -m json.tool

      配置 Pulsar ACP Agent配置Pulsar config的完整配置文件参考

      "*":
      "pulsar-acp-agent":
      activeAgentId: "hermes"
      agents:
      hermes:
      name: "Hermes Agent"
      command: "/Users/xbaby/.local/bin/hermes acp"
      version: 1

      检查 ACP 模式是否可用

      hermes acp --check

      预期输出:Hermes ACP check OK

      确认 hermes 二进制路径

      which hermes

      例如:/Users/xbaby/.local/bin/hermes

      测试模型连通性

      hermes chat -q "say hello" --oneshot

      1,🔴 错误:Model context window below minimum 64,000

      原因:Hermes Agent 在初始化时检查模型的上下文窗口大小,硬性要求 ≥ 64K tokens。这是因为 Agent 模式需要加载大量系统提示、工具定义和会话历史。

    • #134691

      追光
      参与者

      2、 🔴 错误:”The configured agent does not support embedded context”

      原因:Hermes Agent 在 initialize 响应中声明的 promptCapabilities 只包含 image=True,缺少 embedded_context=True。Pulsar ACP Agent 插件在发送文件附件前会检查此能力声明。
      源码依据(server.py → HermesACPAgent.initialize()):

      问题的核心依然在于 Hermes Agent 没有向 Pulsar 声明它支持 embeddedContext。

      使用方式

      附加当前文件:右键编辑器 → “Add Active File to ACP Prompt”
      附加选中代码:选中文本 → 右键 → “Add Selection to ACP Prompt”
      附加图片:点击输入框旁的 “+” 按钮 → “Image”(需要 Agent 支持 image capability)
      拖拽图片:直接拖拽 PNG/JPEG/GIF/WebP 到输入区域(≤5MB)

      以下是去除所有包装脚本干扰后的最终纯净版修复方案:

      1. 核心修复:修改 Hermes 能力声明

      这是唯一需要做的代码修改。Pulsar 插件 (main.js) 在初始化时会检查 init.agentCapabilities.promptCapabilities.embeddedContext。如果为 false(默认值),它就会禁止附加文件。

      操作步骤:

      1. 打开文件:
      bash
      pulsar /Users/xbaby/.hermes/hermes-agent/acpadapter/server.py

      2. 找到 initialize 方法(大约在文件中后部),定位到 AgentCapabilities 的构建部分。

      3. 修改代码:
      将:
      python
      promptcapabilities=PromptCapabilities(image=True),

      改为:
      python
      promptcapabilities=PromptCapabilities(image=True, embeddedcontext=True),

      terminal修复命令:

      cp ~/.hermes/hermes-agent/acp_adapter/server.py \
         ~/.hermes/hermes-agent/acp_adapter/server.py.bak
      
      sed -i '' 's/PromptCapabilities(image=True)/PromptCapabilities(image=True, embedded_context=True)/g' \
         ~/.hermes/hermes-agent/acp_adapter/server.py
      
      grep -n "embedded_context" ~/.hermes/hermes-agent/acp_adapter/server.py

      4. 保存文件。

      2. 配置 Pulsar (纯净版)

      既然不需要包装脚本,直接使用 Hermes 的绝对路径即可。Pulsar 的 cross-spawn 库能够处理绝对路径。

      操作步骤:

      1. 打开 Pulsar 配置 (Cmd+Shift+P – Pulsar ACP Agent: Edit Agents)。
      2. 确保配置如下(不要包含任何 .sh 脚本或 bash -c):

      cson
      \”pulsar-acp-agent\”:
      activeAgentId: \”hermes\”
      agents:
      hermes:
      name: \”Hermes Agent\”
      command: \”/Users/xbaby/.local/bin/hermes acp\”
      version: 1

      注意:如果 /Users/xbaby/.local/bin/hermes 是一个 Python 脚本(通常带有 !/usr/bin/env python shebang),macOS 的 spawn 可以直接执行它。如果 Pulsar 报错说找不到文件或权限不足,请确保该文件有执行权限 (chmod +x /Users/xbaby/.local/bin/hermes)。

      3. 重启与验证

      1. 完全退出 Pulsar (Cmd+Q) 并重新打开。
      2. 打开你的项目文件夹。
      3. 按 Ctrl+Alt+A 启动面板。
      4. 点击 Restart 按钮(这会强制重新进行 ACP 握手,获取新的 capabilities)。
      5. 点击 More… 查看 Capabilities,确认 embeddedContext 显示为 true。
      6. 尝试右键文件 – Add Active File to ACP Prompt。

正在查看 1 条回复
  • 在下方一键注册,登录后就可以回复啦。