V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
2code

[分享创造] 写了一个开源 agent 平台,专门解决"管 100 个 agent"的运维问题

  •  
  •   2code · 13h 58m ago · 318 views

    各位 V2EXer ,最近在 Claude Code 的加成下,生产率有点爆棚,和大家分享一下自己折腾的东西:

    起因

    最近一年 CLI agent 火起来了,Claude Code 、OpenClaw 、Hermes 这一类,本质上都是个人助理形态:

    • memory 是 markdown 文件
    • session 是 JSONL
    • skill 是文件夹
    • secret 是 dotfile / 环境变量
    • 配置散落在 ~/.xxx/ 下

    一个人一台电脑用这种栈,体验好还方便。但我自己折腾的时候发现,一旦想跑多个 agent —— 比如给团队每人配一个、或者做一个 SaaS 给每个用户配一个、或者跑一群分工不同的 specialist agent —— 这种"文件即状态"的模式就崩了。

    • 想给 100 个 agent 装同一个 skill:写部署脚本 SSH 进每台机器
    • 想统一加一条系统指令:同上
    • 想审计某个 agent 上周做了啥:登上去 grep 文件
    • secret 散在各处还在 shell history 里,安全性也很差

    这是一个没有运维层的栈,因为单用户场景下 agent 自己就是运维。

    做了啥

    写了个开源平台叫 OpenHermit 。一个核心设计选择:把内部状态和外部状态分开。

    • 内部状态( sessions / memories / instructions / skills / MCP / schedules / secrets / users )→ 全部进 PostgreSQL ,按 agent_id 分 scope
    • 外部状态( agent 当前在工作的 workspace 文件)→ 留在每个 agent 自己的 Docker 容器里

    类比:人的记忆在脑子里,工作的文件在电脑里。OpenClaw 把这两者混在一起,OpenHermit 把它们分开。

    我觉得 openclaw 的做法有点像:你既可以在你的桌面上工作,又可以随时打开自己的脑子动手术。我的做法是把这两个事情严格分开,手术的事情交给一个专业的人来管理。

    这样做带来什么

    内部状态集中后,运维操作变成一行命令:

    hermit skills enable standup-digest --all # 给所有 agent 装一个 skill hermit mcp enable mcp_github --all # 给所有 agent 加一个 MCP hermit instructions append rules "不要泄露 PII 。" --all # 给所有 agent 推一条新规则 hermit config secrets set OPENROUTER_API_KEY ... --agent main # 更换 secret

    也可以从一个 admin UI 看到所有 agent 的 session 、event 、memory ,secret 加密存表里( AES-256-GCM ),channel adapter (Telegram/Discord/Slack) 内置好了。 当前状态

    • License: MIT
    • 栈: TypeScript + Hono + PostgreSQL + Drizzle + Docker
    • 内置 channel: CLI / Web / Telegram / Discord / Slack
    • 仍然在快速迭代,文档、测试覆盖、稳定性都还有不少坑要填
    • star 数还很惨淡,欢迎拍砖、提 issue 、提 PR

    链接

    想听的反馈

    1. 内部 / 外部状态这个切分,大家觉得是合理的设计选择吗?还是有更好的技术架构?
    2. 你们身边有没有在管多 agent 的场景?是怎么解决的?
    3. 任何 “上 Postgres 到底有没有必要” 的反对意见 —— 都欢迎,我现在最缺的就是不同视角。

    谢谢各位看完这么长。

    4 replies    2026-04-29 21:30:51 +08:00
    portals
        1
    portals  
       7h 40m ago
    刚看完隔壁讨论 hermes-agent 帖子 都在吐槽 memory 设计不行
    openhermit memory 长度有限制么 内部如何优化
    2code
        2
    2code  
    OP
       7h 36m ago
    是的,hermes 的 memory 是单文件,所以要限制长度。openhermit memory 是存在数据库的,可以存多条记录,更颗粒化,同时条数不限制。
    mytharcher
        3
    mytharcher  
       3h 2m ago
    最近 memory 工程很多做 Agent 都在搞,就看哪家的方案更高效,既能节省 token ,又能带上合理的上下文。如果 OpenHermit 存在数据库,是不是搞一下向量化后期检索更好?
    2code
        4
    2code  
    OP
       2h 18m ago
    @mytharcher 是的,Postgres 天然支持 vector 还是挺方便的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2691 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 15:49 · PVG 23:49 · LAX 08:49 · JFK 11:49
    ♥ Do have faith in what you're doing.