E
ebarahona/hermes-one
Multi-tenant platform for vertical agentic workflows: deterministic Temporal workflows with bounded,…
在 GitHub(2026-11-12 核查时已不可用)该链接在 2026-11-12 返回 404,已不可用
官方说明Hermes ONE (Orchestration Node Engine): a multi-tenant agent orchestration engine. IoC/DI throughout, workflows and agents as versioned data, deterministic Temporal workflows with bounded, policy-gated LLM steps. TypeScript, LoopBack 4, agentback.
- ★ 数取值
- 2 ★ · ebarahona/hermes-one · 取自 GitHub 搜索 API · (2026-11-08 20:00:44 核对)
- 来源明细
- 从该仓库的 GitHub 页面直接读取 · 条目类型:开源项目
- 收录与活跃
- 收录于 2026-10-24 · 最近见到 2026-11-14 · 共见到 25 次 · 被 2 个来源列出
- 评分构成
- 综合分 203 · 2 ★ · 2 个来源 · repo
常见问题(答案都来自我们的记录)
它适合谁 / 用来做什么?
我们把它归在这些标签下: 开源项目。标签来自条目自身,不是我们强加的分类。
谁维护它、还在更新吗?
仓库
ebarahona/hermes-one;我们收录于 2026-10-24;最近见到 2026-11-14。这里没有"官方认证"或"质量评级"——我们只记录来源与时间。# hermes-one
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
Hermes ONE (Orchestration Node Engine): a multi-tenant agent orchestration engine.
Hermes is assembled by IoC (inversion of control). Every process is a DI (dependency injection)
container (LoopBack 4 on the edge plane,
agentback on the agent plane), and dependencies are ports
resolved from bindings, with adapters wired at the composition root. Provider adapters (edge plane)
and authentication strategies plug in as extensions discovered at runtime; adding one is a new
binding, not a change to the platform.
What runs is decided by data, not by deploys. Workflows, rules, policies, capabilities, and agent
engines are versioned, content-hashed definitions; publishing a deployment changes a tenant's
behavior on the next message, while runs in flight stay pinned to the version they started on. Each
agent turn gets its tools injected at runtime from the pinned capability contracts, filtered to what
the engine allows and the caller's scopes cover, and bound to the tenant's ranked providers and
credentials.
The full map of bindings, components, extension points, ports, adapters, composition roots, and
what is and isn't dynamic is in docs/COMPOSITION-AND-RUNTIME.md.
A deterministic Temporal workflow rail with bounded agent nodes inside it. The workflow owns
orchestration; the agent owns bounded reasoning; the model proposes, the runtime disposes —
every tool the model calls passes a policy gate, every side effect carries an idempotency key, every table with a
tenantid column is scoped by row-level security, and every turn's tool executions, evidence, and policy decisions are
durably recorded for audit. The reasoning behind these choices is in docs/WHY-THIS-ARCHITECTURE.md; governing
decisions live in docs/adr/; the build sequence in docs/BUILD-PLAN.md.
> Status: pre-1.0. The core platform runs end to end and is covered by unit, integration,
> replay, and end-to-end tests. Interfaces may still change between minor versions. What is planned
> but not built yet is listed under Roadmap; open work is tracked in
> docs/DEFERRED-AND-FLAGGED.md; deployment boundaries are listed in SECURITY.md.
## Capabilities
Verticals are data, not code (ADR-013) — proven live. The electrician vertical is a single
pack.json (workflow, triage rule, policy, capability, agent engine). It installs through the
platform's own admin API (apps/admin-api/src/pack-e.itest.ts), and a live LLM turn on real
Temporal (apps/agent-worker/src/pack-e.e2e.ts, which installs the same definitions in-process)
yields a tool-backed agent conversation — the model calls appointment.slot.read, the
platform resolves a ranked provider, and the result is durably recorded. A new vertical is a new pack file, not a deploy.
Two verticals ship in verticals/: a residential electrician (electrician/) and support-ticket
triage (support/), where rules answer or escalate most messages and the model is called only
for a message that needs judgment.
Bring-your-own-vendor multi-tenancy. A tenant can rank its own provider first
(capability.providermappings, admin-managed) and supply its own credentials
(envelope-encrypted per tenant, rotated with a single rotate() call) — zero deploys, proven live:
Hermes is assembled by IoC (inversion of control). Every process is a DI (dependency injection)
container (LoopBack 4 on the edge plane,
agentback on the agent plane), and dependencies are ports
resolved from bindings, with adapters wired at the composition root. Provider adapters (edge plane)
and authentication strategies plug in as extensions discovered at runtime; adding one is a new
binding, not a change to the platform.
What runs is decided by data, not by deploys. Workflows, rules, policies, capabilities, and agent
engines are versioned, content-hashed definitions; publishing a deployment changes a tenant's
behavior on the next message, while runs in flight stay pinned to the version they started on. Each
agent turn gets its tools injected at runtime from the pinned capability contracts, filtered to what
the engine allows and the caller's scopes cover, and bound to the tenant's ranked providers and
credentials.
The full map of bindings, components, extension points, ports, adapters, composition roots, and
what is and isn't dynamic is in docs/COMPOSITION-AND-RUNTIME.md.
A deterministic Temporal workflow rail with bounded agent nodes inside it. The workflow owns
orchestration; the agent owns bounded reasoning; the model proposes, the runtime disposes —
every tool the model calls passes a policy gate, every side effect carries an idempotency key, every table with a
tenantid column is scoped by row-level security, and every turn's tool executions, evidence, and policy decisions are
durably recorded for audit. The reasoning behind these choices is in docs/WHY-THIS-ARCHITECTURE.md; governing
decisions live in docs/adr/; the build sequence in docs/BUILD-PLAN.md.
> Status: pre-1.0. The core platform runs end to end and is covered by unit, integration,
> replay, and end-to-end tests. Interfaces may still change between minor versions. What is planned
> but not built yet is listed under Roadmap; open work is tracked in
> docs/DEFERRED-AND-FLAGGED.md; deployment boundaries are listed in SECURITY.md.
## Capabilities
Verticals are data, not code (ADR-013) — proven live. The electrician vertical is a single
pack.json (workflow, triage rule, policy, capability, agent engine). It installs through the
platform's own admin API (apps/admin-api/src/pack-e.itest.ts), and a live LLM turn on real
Temporal (apps/agent-worker/src/pack-e.e2e.ts, which installs the same definitions in-process)
yields a tool-backed agent conversation — the model calls appointment.slot.read, the
platform resolves a ranked provider, and the result is durably recorded. A new vertical is a new pack file, not a deploy.
Two verticals ship in verticals/: a residential electrician (electrician/) and support-ticket
triage (support/), where rules answer or escalate most messages and the model is called only
for a message that needs judgment.
Bring-your-own-vendor multi-tenancy. A tenant can rank its own provider first
(capability.providermappings, admin-managed) and supply its own credentials
(envelope-encrypted per tenant, rotated with a single rotate() call) — zero deploys, proven live:
收录徽章(可选)
想把收录标记放进 README 就复制这行,可选,不影响收录。
[](https://anclum.com/zh/s/ebarahona-hermes-one/)
- 来源
- github · https://github.com/ebarahona/hermes-one
- 按领域浏览
- 开源项目
- Traction
- 2 ★
- 收录来源
- 2 个独立来源
- 收录于
- 今天
同类推荐
所属领域与标签
每个标签都能点进去看同类的全部条目。数字是当前库里的真实条数。