我重写了 Hermes Agent,专门修掉了它的 4 个硬伤

我重写了 Hermes Agent,专门修掉了它的 4 个硬伤

一个可靠性优先、可自进化的开源 AI Agent ------ Pulse,已发布 v0.2.0

为什么又造一个 Agent?

Hermes Agent(Nous Research 出品)是个很有想法的开源自进化 Agent:内置学习循环、跨会话记忆、cron 调度、子代理并行。但真实使用下来,它有 4 个绕不开的坑:

Hermes 的硬伤 现象
可靠性差 780+ open issues,一个未捕获的 LLM 超时就能让整轮对话崩掉
技能质量没验证 "自动生成技能更好" 是口头承诺,实际生成的技能可能越用越烂
上手门槛高 配置项一大堆,新手看到 YAML 就劝退
云依赖重 用户建模用的 Honcho 是云服务,数据得出境

于是我用 Python CLI + 自研轻量核心 + 兼容 agentskills.io 生态 的方式,重做了一个:Pulse

仓库:github.com/Alex663028/... 协议:Apache 2.0(商用友好)


30 秒上手

bash 复制代码
pip install -e .

# 零配置:默认本地 Ollama,无需任何 API Key
pulse init --yes --provider ollama --model qwen2.5:7b

# 第一次对话
pulse chat "写一个 Python 排序函数"

# 自检
pulse doctor

# 交互式 TUI
pulse tui

没有 Ollama?一行切到内置 mock 模式,离线就能跑完整 demo:

bash 复制代码
pulse init --yes --provider mock
pulse chat "hello world"

核心差异化特性

1. 可靠性优先的编排核心

每个 LLM / 工具调用都被包裹在错误分类 + 指数退避 + Token 预算护栏里:

python 复制代码
from pulse.orchestrator.recovery import classify, guarded

# 错误被分类为 TRANSIENT / TOOL_FAIL / CTX_OVERFLOW / LLM_REFUSE
# 只有允许重试的错误类型才会退避重试,不会无限循环
result = guarded(runtime.router.chat, messages, max_retries=3)

Token 预算有软阈值(80% 触发压缩)和硬上限(超限直接抛 CtxOverflowError)。一个工具超时,绝不会把整个会话拖垮。

2. 经过评估的技能自进化(关键差异点)

这是 Pulse 最核心的设计 ------ 自动生成的技能必须先通过 golden-task 回放,才能晋升

stateDiagram-v2 [*] --> candidate: skill proposed candidate --> promoted: eval pass (≥60% success) candidate --> deprecated: eval fail promoted --> quarantined: eval regression (>15% drop) promoted --> promoted: rollback (restore version) quarantined --> promoted: rollback (restore version) deprecated --> [*] quarantined --> [*]: deprecate
bash 复制代码
pulse skills eval my-candidate-skill       # 用黄金任务集评估
pulse skills promote my-candidate-skill     # 晋升 + 版本号 bump
pulse skills rollback my-skill --to 1.0.0  # 回滚到旧版本

晋升、回滚、隔离都是显式、可逆、带版本号的。技能越用越烂这件事,从架构上被堵死了。

3. 完全自托管(默认零云依赖)

默认栈就是 Ollama + SQLite FTS5,任何云 API 都是 opt-in:

bash 复制代码
# 想用云端模型也行,但非必须
pulse init --provider openai --model gpt-4o-mini --api-key sk-xxx --yes

API Key 只存进 ~/.pulse/.env,而且我们会自动 chmod 600

python 复制代码
# pulse/cli/init_wizard.py
path.write_text(...)
os.chmod(path, 0o600)  # 只有 owner 能读写

4. 多智能体编排

  • 子代理并行池ThreadPoolExecutor + 每任务超时 + Token 预算 + 错误隔离。一个子任务挂了,兄弟任务不受影响。
  • 团队流水线:Builder → Reviewer → Ship,带 handoff 协议。
bash 复制代码
pulse fork "分析 Python 异步模式,对比 asyncio vs trio"   # 并行分解
pulse team "写一份最佳实践总结"                              # 多 Agent 协作

5. 辩证用户建模(替代 Honcho)

自托管的用户建模引擎,用 thesis → antithesis → synthesis 三段式构建用户画像,带版本快照和回滚 ------ 不依赖任何云服务。

bash 复制代码
pulse memory profile reflect "用户更喜欢简洁的代码示例"
pulse memory profile history     # 查看历史版本
pulse memory profile rollback   # 回滚到上一版

6. 插件沙箱(安全隔离)

插件运行在受限执行上下文中,import 和 builtins 都被白名单限制:

python 复制代码
# example plugin
__permissions__ = ["tools.register"]

from pulse.tools.base import Tool, ToolResult

class MyTool(Tool):
    name = "my_tool"
    # ...

def register(runtime):
    runtime.tools.register(MyTool())

沙箱三层防护:① 受限 __builtins__(移除 open/eval/exec/compile);② sys.meta_path finder 拦截危险 import;③ sys.modules 缓存驱逐(但保留 import 系统自身必需的模块)。

bash 复制代码
pulse plugin list       # 列出已发现插件
pulse plugin activate   # 激活插件(沙箱内执行)

架构全景

graph TD CLI["CLI (Typer + Rich)"] --> ORCH["Orchestrator"] ORCH --> LLM["LLM Adapter"] ORCH --> MEM["Memory (FTS5 + Dialectic)"] ORCH --> SKILLS["Skills (Eval Loop + Versioning)"] ORCH --> TOOLS["Tools / Plugins (Sandbox)"] ORCH --> SUB["Sub-agent Pool"] ORCH --> TEAM["Team Pipeline"] ORCH --> CRON["Scheduler"] ORCH --> RL["RL Export"] subgraph Reliability Layer RECOVERY["Error Recovery"] BUDGET["Token Budget"] OBS["Observability"] end ORCH --> RECOVERY ORCH --> BUDGET ORCH --> OBS

性能数据(mock provider)

python scripts/benchmark.py --quick 一键出报告:

Benchmark 指标 典型值
Orchestrator 延迟 mean ~100ms
Token 消耗 mean/task ~24 tokens
子代理吞吐 tasks/sec(4 workers) ~7,000
技能评估 mean ~0.04ms
记忆召回(FTS5) mean ~0.37ms

当前状态

  • ✅ 107 个测试全部通过(Python 3.11 / 3.12 双版本 CI 绿)
  • ✅ 73% 测试覆盖率,75% docstring 覆盖率
  • ✅ v0.2.0 已发布(含插件沙箱、.env 安全、benchmark、Mermaid 文档)
  • ✅ Apache 2.0 协议

路线图

  • M1--M5:核心编排 / 网关 / 子代理 / RL 导出 / 插件系统
  • P0--P2:版本一致性 / 测试增强 / 沙箱与安全
  • 下一步:MCP 协议支持、Web UI、技能市场

试试看?

bash 复制代码
git clone https://github.com/Alex663028/pulse-agent
cd pulse-agent
pip install -e .
pulse init --yes --provider ollama --model qwen2.5:7b
pulse chat "帮我写一个快速排序"

如果你也在用 Hermes 或者自己在搭 Agent,欢迎来提 issue / PR,一起把"可靠性优先的自进化 Agent"这件事做扎实。

Star 一下不迷路: github.com/Alex663028/... 一个可靠性优先、可自进化的开源 AI Agent ------ Pulse,已发布 v0.2.0

为什么又造一个 Agent?

Hermes Agent(Nous Research 出品)是个很有想法的开源自进化 Agent:内置学习循环、跨会话记忆、cron 调度、子代理并行。但真实使用下来,它有 4 个绕不开的坑:

Hermes 的硬伤 现象
可靠性差 780+ open issues,一个未捕获的 LLM 超时就能让整轮对话崩掉
技能质量没验证 "自动生成技能更好" 是口头承诺,实际生成的技能可能越用越烂
上手门槛高 配置项一大堆,新手看到 YAML 就劝退
云依赖重 用户建模用的 Honcho 是云服务,数据得出境

于是我用 Python CLI + 自研轻量核心 + 兼容 agentskills.io 生态 的方式,重做了一个:Pulse

仓库:github.com/Alex663028/... 协议:Apache 2.0(商用友好)


30 秒上手

复制代码

没有 Ollama?一行切到内置 mock 模式,离线就能跑完整 demo:

复制代码

核心差异化特性

1. 可靠性优先的编排核心

每个 LLM / 工具调用都被包裹在错误分类 + 指数退避 + Token 预算护栏里:

复制代码

Token 预算有软阈值(80% 触发压缩)和硬上限(超限直接抛 CtxOverflowError)。一个工具超时,绝不会把整个会话拖垮。

2. 经过评估的技能自进化(关键差异点)

这是 Pulse 最核心的设计 ------ 自动生成的技能必须先通过 golden-task 回放,才能晋升

lua 复制代码
stateDiagram-v2
    [*] --> candidate: skill proposed
    candidate --> promoted: eval pass (≥60% success)
    candidate --> deprecated: eval fail
    promoted --> quarantined: eval regression (>15% drop)
    promoted --> promoted: rollback (restore version)
    quarantined --> promoted: rollback (restore version)
    deprecated --> [*]
    quarantined --> [*]: deprecate
复制代码

晋升、回滚、隔离都是显式、可逆、带版本号的。技能越用越烂这件事,从架构上被堵死了。

3. 完全自托管(默认零云依赖)

默认栈就是 Ollama + SQLite FTS5,任何云 API 都是 opt-in:

复制代码

API Key 只存进 ~/.pulse/.env,而且我们会自动 chmod 600

复制代码

4. 多智能体编排

  • 子代理并行池ThreadPoolExecutor + 每任务超时 + Token 预算 + 错误隔离。一个子任务挂了,兄弟任务不受影响。
  • 团队流水线:Builder → Reviewer → Ship,带 handoff 协议。
复制代码

5. 辩证用户建模(替代 Honcho)

自托管的用户建模引擎,用 thesis → antithesis → synthesis 三段式构建用户画像,带版本快照和回滚 ------ 不依赖任何云服务。

复制代码

6. 插件沙箱(安全隔离)

插件运行在受限执行上下文中,import 和 builtins 都被白名单限制:

复制代码

沙箱三层防护:① 受限 __builtins__(移除 open/eval/exec/compile);② sys.meta_path finder 拦截危险 import;③ sys.modules 缓存驱逐(但保留 import 系统自身必需的模块)。

复制代码

架构全景

css 复制代码
graph TD
    CLI["CLI (Typer + Rich)"] --> ORCH["Orchestrator"]
    ORCH --> LLM["LLM Adapter"]
    ORCH --> MEM["Memory (FTS5 + Dialectic)"]
    ORCH --> SKILLS["Skills (Eval Loop + Versioning)"]
    ORCH --> TOOLS["Tools / Plugins (Sandbox)"]
    ORCH --> SUB["Sub-agent Pool"]
    ORCH --> TEAM["Team Pipeline"]
    ORCH --> CRON["Scheduler"]
    ORCH --> RL["RL Export"]

    subgraph Reliability Layer
        RECOVERY["Error Recovery"]
        BUDGET["Token Budget"]
        OBS["Observability"]
    end

    ORCH --> RECOVERY
    ORCH --> BUDGET
    ORCH --> OBS

性能数据(mock provider)

python scripts/benchmark.py --quick 一键出报告:

Benchmark 指标 典型值
Orchestrator 延迟 mean ~100ms
Token 消耗 mean/task ~24 tokens
子代理吞吐 tasks/sec(4 workers) ~7,000
技能评估 mean ~0.04ms
记忆召回(FTS5) mean ~0.37ms

当前状态

  • ✅ 107 个测试全部通过(Python 3.11 / 3.12 双版本 CI 绿)
  • ✅ 73% 测试覆盖率,75% docstring 覆盖率
  • ✅ v0.2.0 已发布(含插件沙箱、.env 安全、benchmark、Mermaid 文档)
  • ✅ Apache 2.0 协议

路线图

  • M1--M5:核心编排 / 网关 / 子代理 / RL 导出 / 插件系统
  • P0--P2:版本一致性 / 测试增强 / 沙箱与安全
  • 下一步:MCP 协议支持、Web UI、技能市场

试试看?

复制代码

如果你也在用 Hermes 或者自己在搭 Agent,欢迎来提 issue / PR,一起把"可靠性优先的自进化 Agent"这件事做扎实。

Star 一下不迷路: github.com/Alex663028/...

相关推荐
考虑考虑1 小时前
git中的tag
git·gitlab·github
小墨同学boy3 小时前
WorkBuddy零基础教程进阶篇
人工智能·github·aigc
BerrySen1783 小时前
GitHub开源项目破圈方法论:从技术自嗨到生态共赢
开源·github
JavaGuide20 小时前
一个神级 PR Review Agent 诞生了:读 diff、写总结、找风险全自动!
github·ai编程
逛逛GitHub1 天前
1.3 万人点赞的 GitHub 项目,让 AI Agent 操作 Office 文件。
github
OpenTiny社区1 天前
Skill 设计:封装、评测、运营,一次讲透
前端·github
本地化文档1 天前
xlwings-docs-l10n
python·github·excel·gitcode·sphinx
徐小夕1 天前
倒腾2天,我开源了一款AI驱动的实时 3D CAD / 参数化建模工作台
前端·架构·github