Hermes Agent与pulsar编辑器进行协同开发的配置修复方法汇总
› 社区话题 › AI Agent与自动化 › Hermes Agent与pulsar编辑器进行协同开发的配置修复方法汇总
标签: hermes agent
- 作者帖子
- 2026-09-20 - 10:32 #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.jsPulsar ACP AgentPulsar 插件,实现 ACP 客户端协议TypeScript (bundled JS)Hermes AgentAI 代理框架,支持多 Provider、工具调用、MCPPython 3.11+ACP编辑器与 AI Agent 之间的通信协议JSON-RPC 2.0 over stdioLM Studio / Ollama本地 LLM 推理服务OpenAI Compatible API在pulsar编辑器中配置 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查看 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.toolhermes 官方的启动文件存在缺陷,修复方法在官方 plist 的 EnvironmentVariables 中显式注入 PYTHONPATH:
<key>PYTHONPATH</key> <string>/Users/xbaby/.hermes/hermes-agent</string>由于 hermes update / hermes gateway install 会覆盖 plist,为了将来更新升级仍然能够修复,我特意写了一个自动化修复脚本,创建一个可移植的修复sh脚本:
#!/bin/bash # fix-hermes-plist.sh — 可放在任意位置运行 set -e HERMES_HOME="${HERMES_HOME:-$HOME/.hermes}" PLIST="$HOME/Library/LaunchAgents/ai.hermes.gateway.plist" HERMES_SRC="$HERMES_HOME/hermes-agent" if [ ! -f "$PLIST" ]; then echo "❌ plist not found. Run: hermes gateway install"; exit 1 fi if grep -q "<key>PYTHONPATH</key>" "$PLIST"; then echo "✅ PYTHONPATH already present" else python3 - "$PLIST" "$HERMES_SRC" << 'PYEOF' import sys, re with open(sys.argv[1]) as f: content = f.read() pattern = r'(<key>HERMES_SUPERVISED_CHILD</key>\s*<string>1</string>)' replacement = r'\1\n <key>PYTHONPATH</key>\n <string>' + sys.argv[2] + r'</string>' new = re.sub(pattern, replacement, content) if new == content: print("⚠️ Insert point not found"); sys.exit(1) with open(sys.argv[1], 'w') as f: f.write(new) print("✅ PYTHONPATH injected") PYEOF fi launchctl bootout gui/501 "$PLIST" 2>/dev/null || true sleep 2 launchctl bootstrap gui/501 "$PLIST" echo "🎉 Done"运行方式:
hermes update && ./fix-hermes-plist.sh然后重新加载即可修复
launchctl bootout gui/501 ~/Library/LaunchAgents/ai.hermes.gateway.plist sleep 2 launchctl bootstrap gui/501 ~/Library/LaunchAgents/ai.hermes.gateway.plist1、 🔴 错误:Startup failed — “Open a project folder before starting the agent”
原因:Pulsar ACP Agent 需要一个打开的项目文件夹作为工作目录(Working Directory),用于限制文件读写范围。
修复:File → Open Folder… 打开你的项目目录,然后点击 Restart。源码依据(main.js → AgentSession.cwd()):
cwd() { const paths = atom.project.getPaths(); if (paths && paths.length > 0) { const cwd = paths[0]; if (path.isAbsolute(cwd)) return cwd; throw new Error("Project folder must be an absolute path: " + cwd); } throw new Error("Open a project folder before starting the agent."); }2 🔴 错误:Startup failed — “Internal error”(Conda 环境问题)
原因:Pulsar 作为 macOS GUI 应用启动子进程时,不会继承终端的 Conda 环境和 shell 配置(.zshrc、.bash_profile)。导致 hermes 命令找不到正确的 Python 解释器和依赖。
症状:终端中 hermes acp –check 正常,但 Pulsar 中报 Internal error。
修复方案 A:使用绝对路径(最简单)确保 config.cson 中的 command 使用 hermes 的绝对路径:
command: "/Users/xbaby/.local/bin/hermes acp"3,🔴 错误:Model context window below minimum 64,000
原因:Hermes Agent 在初始化时检查模型的上下文窗口大小,硬性要求 ≥ 64K tokens。这是因为 Agent 模式需要加载大量系统提示、工具定义和会话历史。
修复方法:去后端部署llm大模型的配置里面设置上下文窗口,必要大于64K tokens。
- 2026-09-20 - 10:32 #134691

追光参与者4、 🔴 错误:”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. 打开文件:
pulsar /Users/xbaby/.hermes/hermes-agent/acpadapter/server.py2. 找到 initialize 方法(大约在文件中后部),定位到 AgentCapabilities 的构建部分。
3. 修改代码:
将:promptcapabilities=PromptCapabilities(image=True),改为:
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.py4. 保存文件。
2. 配置 Pulsar (纯净版)
既然不需要包装脚本,直接使用 Hermes 的绝对路径即可。Pulsar 的 cross-spawn 库能够处理绝对路径。
操作步骤:
1. 打开 Pulsar 配置 (Cmd+Shift+P – Pulsar ACP Agent: Edit Agents)。
2. 确保配置如下(不要包含任何 .sh 脚本或 bash -c):\"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。
- 作者帖子
- 在下方一键注册,登录后就可以回复啦。