Skip to main content

hermes

Run headless Hermes agent turns over the iii bus, deliver messages to 27+ chat platforms, and react to inbound platform/webhook events — with the agent carrying the live iii runtime context.

Informações da origem

Repositório
iii-hq/workers
Última atividade na origem
9 de outubro de 2026 às 11:59
Idioma detectado do SKILL.md
inglês
Estrelas
114
Forks
28

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
hermes
description
Run headless Hermes agent turns over the iii bus, deliver messages to 27+ chat platforms, and react to inbound platform/webhook events — with the agent carrying the live iii runtime context.
# hermes The hermes worker puts the Hermes agent on the iii bus. `hermes::run` runs one headless Hermes turn carrying the iii runtime context, so the agent discovers and drives the whole engine live. `hermes::send` delivers to any of Hermes's 27+ messaging platforms. Inbound platform messages and webhook events arrive on the worker's HTTP sink (`hermes::inbound`) and republish so any iii worker can react. Hermes becomes iii's omnichannel front door: chat-platform reach wired to the entire function registry. Requires pre-provisioned Hermes credentials (`~/.hermes/.env`). When a turn needs a capability beyond Hermes, add another iii worker instead of bolting it on here. ## When to Use - Run a Hermes turn that can act on the whole backend: `hermes::run` with `prompt` and `cwd` — the agent discovers and calls any registered function through the iii CLI (engine::functions::list, `iii trigger <fn> --help`). - Reach a user on any platform: `hermes::send` with `{platform, message}` for Telegram, Discord, Slack, WhatsApp, Teams, and 20+ more. - React to inbound platform/webhook events: point a Hermes gateway route at the worker's `inbound_api_path`; deliveries land on `hermes::inbound` and republish for iii workers to handle. - Continue context across turns: pass the same `session_id` again. ## Boundaries - Runs the Hermes CLI in a container — needs credentials provisioned; the interactive OAuth-via-portal flow is not used inside the worker. - `hermes::run` / `hermes::send` are not agent-callable without human approval (privilege + outbound messaging); read-only introspection is allowed (see iii-permissions.yaml). - Hermes one-shot returns only final text, so `hermes::agent-event` carries whole-turn frames (`turn_end`, `agent_end`), not per-tool frames. Bind it (and `hermes::raw-event` for the raw `result` frame and inbound deliveries) with `{ session_id }`; frames are ephemeral, so use `hermes::status` / `hermes::sessions::list` for history. - Hermes's own shell/code/web tools and MCP are intentionally not re-exposed — iii already has `shell`, `coder`, `web`. ## Functions - `hermes::run` — one turn, wait, return `{session_id, result, is_error}`; accepts `prompt` or `messages`, plus `model`, `cwd`, `iii_context`. - `hermes::send` — deliver `{platform, message}` to a gateway platform. - `hermes::sessions::list` — sessions this worker has run. - `hermes::status` — session state + live flag. - `hermes::stop` — interrupt a live run. - `run::start_and_wait` — alias for `hermes::run`. - `hermes::inbound` (HTTP) — inbound gateway delivery sink; republishes each delivery on `hermes::raw-event`. ## Trigger types - `hermes::agent-event` — normalized AgentEvent frames of one session; config `{ session_id, metadata? }`; payload `{ session_id, event_id, seq, epoch, source, event }`. - `hermes::raw-event` — raw Hermes frames (`result`, `inbound`), same config and payload.
Ver no GitHub