aphrodite-hermesβπβHermes Bridge
Hermes Agent integration layer - tool schemas, hook dispatch, skill registration.
This crate is the bridge between the core aphrodite engine and the Hermes Agent
plugin system. It produces libaphrodite_hermes.dylib - loaded by the Python
plugin to register tools, hooks, and skills with Hermes.
Install
# From source (monorepo)
# From crates.io
What it does
Hermes Agent
β
β plugin load
βΌ
Python __init__.py (145 lines)
β
β ctypes FFI
βΌ
libaphrodite_hermes.dylib β THIS CRATE
β
β C ABI calls
βΌ
libaphrodite.dylib β Core engine
The bridge provides:
- Tool schemas - 13 JSON Schema definitions for
aphrodite_*tools - Tool dispatch - Routes Hermes tool calls to core engine functions
- Skill registration - Bundled skills exposed to Hermes agents
- Hook dispatch - Forwards hook calls (pre_llm, post_tool, etc.) to engine
Architecture
src/
βββ lib.rs β Universal dispatch: 5 hooks β Rust functions
βββ tools.rs β 13 tool handler implementations
βββ schemas.rs β JSON Schema for all tools
βββ skills.rs β Bundled skill registration
Tools
All 13 tools are registered as closures in one tool_registry() HashMap in
src/tools.rs (not separate per-tool modules) - full schemas and handler
behavior in Tool Relay: Tools:
| Tool |
|---|
aphrodite_compress |
aphrodite_retrieve |
aphrodite_stats |
aphrodite_catalog |
aphrodite_search |
aphrodite_diff |
aphrodite_files |
aphrodite_directive |
aphrodite_test |
aphrodite_rebuild |
aphrodite_reclassify |
aphrodite_prefetch |
aphrodite_prefetch_status |
tool_registry() also holds a 14th, internal-only entry -
context_engine_pre_llm - the context engine's pre-LLM hook, not a
Hermes-callable tool (it isn't in plugin.yaml's provides_tools).
aphrodite_diff returns each turn's last-archived marker (conv_index),
populated by hooks::post_llm_call calling session::archive_turn at the
end of every turn (report 06 F11/T13 - previously archive_turn was dead
code with zero call sites, so this always returned {"total": 0}).
Dependencies
aphrodite- Core engine crate (path + version)serde/serde_json- JSON Schema + serialization
See Also
- Installing Aphrodite - which artifact you need, per-platform install guides, troubleshooting
- Tool Relay: Tools - full schema + handler behavior for all 13 tools this crate dispatches
- Hermes Integration - why a native plugin sees things a generic HTTP proxy can't
License
CC0-1.0 - public domain.