PabloTheThinker/hermespace

GitHub: PabloTheThinker/hermespace

为 Hermes Agent 提供只追加的持久化世界模型和便携工作台,让 agent 跨会话积累信念与经验并自主演化。

Stars: 80 | Forks: 5

Hermespace

一个永远生长的持久化 agent 世界。当前轮次的便携工作台。

Python Hermes Agent Version Smoke 9/9 MIT

世界模型 · 工作台 · 快速开始 · CLI · 文档 · 关于


**Hermespace 是一个为 Hermes agents 设计的只追加(append-only)持久化世界。**每一次会话、每一个信念、每一个里程碑、每一次进化都被记录在一个永不裁剪、永不衰减、永不封顶的档案库中。agent 在跨会话的过程中构建了一个关于自身及其环境的不断深化的模型——并且它的存在时间将超越用户。 它不是 [J-Space](https://github.com/anomalyco/j-space)。也不是一个次要的 agent runtime。它是 Hermes 内部一个记住一切的房间。 ## 世界模型 一个永远生长的持久化 agent 世界。档案库是事实的唯一来源;缓存永远不具备权威性。 ### Archive ``` from hermespace import WorldModel wm = WorldModel(agent_id="my-agent") wm.enter() # agent enters the world wm.add_belief("Fast deploys reduce risk", 0.85, source="observation") wm.add_belief("Fast deploys reduce risk", 0.85, source="observation") # reinforces wm.add_landmark("Zero-downtime deploy v2") wm.set_trait("operations-minded") wm.set_goal("Improve deploy pipeline", decision="A — automate", plan=["audit", "implement", "verify"]) wm.add_relationship("dev-team", "team", 0.8) print(wm.render_markdown()) # epoch-aware markdown wm.evolve() # consolidate, detect patterns, check epoch ``` 每一次变更(mutation)都会追加到 `~/.hermespace/worlds/{agent_id}_archive.jsonl` —— 一个永远生长的只追加 JSONL。没有裁剪。没有衰减。没有删除。 条目类型包括:`enter`、`leave`、`landmark`、`belief`、`trait`、`evolution`、`focus`、`epoch_transition`、`resolve`、`relationship`。 ### Epochs agent 的阶段是通过累积的经验来衡量的,而不是现实时间(wall clock): | Epoch | 条目数 | 行为 | |-------|---------|----------| | **Genesis** ✨ | <5 | 简短的时间线,所有条目均可见 | | **Growth** 🌱 | 5–24 | 分节标题,对较旧的条目进行总结 | | **Maturity** 🎓 | 25–99 | 压缩的时间线,从顶级 beliefs 中提取智慧 | | **Wisdom** 🧠 | 100+ | 受证据把关的智慧,仅保留根深蒂固的 beliefs | Epoch 的转换会被记录为 `epoch_transition` 档案条目,并会改变世界在 agent context block 中的渲染方式。 ### Beliefs Beliefs 拥有置信度(0–1)和证实计数(corroboration count)。使用相同的陈述调用 `add_belief` 会起到强化作用 —— 置信度增加 +0.1,证实计数递增。`evolve()` 循环会整合来自 `SemanticStore` 的语义笔记,并检测 landmarks 中的重复模式。 ### Causal Chains 每个条目都可以通过 `causal_parents` 引用其父条目。`set_goal()` 会链接到最近的时间线条目。`trace_chain()` 会沿档案库向后追溯。 ``` # 遍历 chain focus_entries = wm.archive.query("focus") chain = wm.trace_chain(focus_entries[-1].id) # Resolve an outcome wm.resolve_outcome(lm_entry.id, "success") ``` ### Evolution `evolve()` 循环运行五个阶段: 1. 将语义笔记整合为 beliefs 2. 检测近期 landmarks 中的重复模式 3. 分析关系亲和度趋势 4. 检测里程碑(条目计数阈值,高置信度 beliefs) 5. 从低置信度 beliefs 中生成悬而未决的问题 然后检查 epoch 转换,刷新活跃概念(J-Space hub,最多 25 个),并写入一条 `evolution` 档案条目。 `world_evolve` 脉冲任务(pulse job)每小时运行一次此操作。手动触发:`hs world evolve` 或 `WorldModel.evolve()`。 ### Context Injection 每次 `pre_llm_call` 都会注入世界 context:epoch 徽章、活跃概念、智慧(顶级 beliefs)、时间线、脉冲摘要和工作台状态。agent 始终清楚自己处于自身故事中的哪个位置。 ### CLI ``` hs world show # render world.md hs world enter # agent enters the world hs world leave # agent leaves (session end) hs world evolve # run evolution cycle hs world add-belief --statement "..." hs world add-landmark --event "..." hs world set-trait --trait "..." hs world set-goal --goal "..." hs world search --query "deploy" hs world archive-stats # count by entry type hs world timeline --limit 10 hs world resolve --entry-id --outcome success hs world trace --entry-id ``` ## 工作台 与世界并行,Hermespace 为当前轮次提供了一个工作台(desk)——包含 FOA、dual decode、skills+MEMORY fabric、neural FOA 以及一个 autonomy grid。 | 功能 | 作用 | |---|---| | **Focus of Attention** | ≤4 个项目,每轮次单个活跃目标 | | **Dual Decode** | 为人类提供简短报告;为模型提供高密度 context。绝不将原始注入内容倾倒到聊天频道中。 | | **Skills + Memory Fabric** | 根据目标对 Hermes 技能进行排名;注入 MEMORY.md / USER.md 的摘录 | | **Neural FOA** | `HERMESPACE_NEURAL_BACKEND=auto` —— 在线时使用 Ollama embeddings,离线时使用哈希回退 | | **Autonomy Grid** | 任务(Missions)、视角(lenses)、梦境(dream)、自我对话(self-talk)、技能台(skillbench)、标题/树(title/tree)、访问门控(access gates)。自下而上的设计。 | | **Pulse Runtime** | 具备工作台感知能力的便携节奏 —— 空闲心跳(idle tick)、梦境(dream)、世界进化(world evolve)、任务脉冲(mission pulse) | | **Desktop View** | 针对 Hermes Desktop 的侧边栏及全页面插件,配备 Tailscale viewport 和 socket API | ### 快速开始 ``` git clone https://github.com/PabloTheThinker/hermespace.git cd hermespace ./scripts/install_hermes.sh # link skill + plugin ./scripts/smoke_test.sh # expect 9/9 ``` ``` from hermespace import Workbench wb = Workbench(agent_id="my-agent", session_id="main") wb.enter() r = wb.receive_order("Ship the patch", goal="Ship", decision="A — ship", plan=["implement","test"], say="Shipping.", force=True) print(r["user_reply"]) # → human ctx = r["model_context"] # → model (includes world context) ``` ### Hermes 插件钩子 | Hook | 发生的动作 | |---|---| | `on_session_start` | `WorldModel.enter()` + 进入工作台 + 环境探测 + 注入世界统计数据 | | `pre_llm_call` | 注入世界 context 块(epoch + 概念 + 智慧 + 时间线 + 脉冲 + 工作台) | | `on_session_end` | `WorldModel.leave()` + 工作台空闲心跳 | ## 运行原理 ``` User message │ ▼ GATE ── trivial? skip ── material? continue │ ▼ ENCODE → DESK → PLAN FOA, load, decision, steps │ ▼ DECODE report (human) + context (model) │ ▼ BROADCAST plugin inject + world context │ ▼ ACT Hermes tools / code / ship │ ▼ SEAL episodic + semantic promote + world evolve ``` 状态(本地存储,永不提交): ``` $HERMESPACE_HOME/memory/hermespace/ ACTIVE.md live desk hermespace.db turn database journal/ human-readable logs workbenches/ per-agent workbench JSON worlds/ world archive (JSONL) + cache (JSON) ``` ## CLI | 命令 | 用途 | |---------|---------| | `hs world show\|enter\|leave\|evolve\|search\|archive-stats` | 持久化世界 | | `hs turn` | 完整的输入(INPUT) → 输出(OUTPUT)轮次 | | `hs workbench enter\|order\|idle\|park\|status` | 会话工作台 | | `hs fabric` / `hs skills` | MEMORY + 排序后的技能 | | `hs grid mission-add\|lens-set\|think\|dream\|skill-register` | Autonomy grid | | `hs pulse tick\|daemon\|status` | Pulse runtime | | `hs neural caps\|eval` | Neural FOA | | `hs view --serve --port 8764` | Desktop viewport | | `./scripts/smoke_test.sh` | 健康检查 (9/9) | ## 文档 | 文档 | 内容 | |-----|----------| | [`ABOUT.md`](ABOUT.md) | 理念、设计原则、作者 | | [`INTEGRATION.md`](INTEGRATION.md) | Python · CLI · plugin · 工作台入口 | | [`skills/hermespace/SKILL.md`](skills/hermespace/SKILL.md) | **Agent 技能**(在 Hermes 中加载) | | [`FOR_HERMES.md`](FOR_HERMES.md) | 维护者 / 内部测试简报 | | [`CONTRIBUTING.md`](CONTRIBUTING.md) | 如何贡献 | | [`WORKFLOW.md`](WORKFLOW.md) | GATE → SEAL 阶段 | | [`SECURITY.md`](SECURITY.md) | 绝不通过 git 发布的内容 | | [`docs/14-workbench-pocket-dimension.md`](docs/14-workbench-pocket-dimension.md) | 工作台参考(旧版) | | [`docs/16-why-hermes-framework.md`](docs/16-why-hermes-framework.md) | 为什么它属于 Hermes | | [`docs/18-autonomy-grid.md`](docs/18-autonomy-grid.md) | Grid 设计 | | [`docs/20-pulse-runtime.md`](docs/20-pulse-runtime.md) | Pulse runtime | | [`docs/22-open-roadmap.md`](docs/22-open-roadmap.md) | 路线图 | | [`spec/DESK.md`](spec/DESK.md) | 工作台 schema | | [`spec/PROTOCOL.md`](spec/PROTOCOL.md) | Protocol 规范 | ## 仓库布局 ``` assets/ media (banners, diagrams) src/hermespace/ runtime package hermes_plugin/ Hermes session / pre_llm / end hooks skills/hermespace/ public Hermes agent skill scripts/ CLI, install, smoke test, security audit docs/ design notes (20+ docs) spec/ desk schema + protocol tests/ unit tests experiments/ eval harness, neural benchmarks desktop_plugin/ Hermes Desktop sidebar + full page ``` ## 验证 ``` PYTHONPATH=src python3 -m unittest discover -s tests -v ./scripts/smoke_test.sh # expect pass=9 fail=0 ./scripts/security_audit.sh # before any public push ``` ## 关于 由 [PabloTheThinker](https://github.com/PabloTheThinker) 构建。Hermespace 是 Hermes Agent 的独立伴侣项目,并非官方的 Nous Research 产品。 [`ABOUT.md`](ABOUT.md) — 理念、设计原则、相关项目。 ## 许可证 [MIT](LICENSE)
标签:Agent记忆系统, AI智能体, AI风险缓解, Python, 上下文管理, 人工智能, 持久化存储, 无后门, 时序数据库, 用户模式Hook绕过