mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-25 00:51:20 +00:00
The plugin system defined six lifecycle hooks but only pre_tool_call and
post_tool_call were invoked. This activates the remaining four so that
external plugins (e.g. memory systems) can hook into the conversation
loop without touching core code.
Hook semantics:
- on_session_start: fires once when a new session is created
- pre_llm_call: fires once per turn before the tool-calling loop;
plugins can return {"context": "..."} to inject into the ephemeral
system prompt (not cached, not persisted)
- post_llm_call: fires once per turn after the loop completes, with
user_message and assistant_response for sync/storage
- on_session_end: fires at the end of every run_conversation call
invoke_hook() now returns a list of non-None callback return values,
enabling pre_llm_call context injection while remaining backward
compatible (existing hooks that return None are unaffected).
Salvaged from PR #2823.
Co-authored-by: Nicolò Boschi <boschi1997@gmail.com>
|
||
|---|---|---|
| .. | ||
| _category_.json | ||
| acp.md | ||
| api-server.md | ||
| batch-processing.md | ||
| browser.md | ||
| checkpoints.md | ||
| code-execution.md | ||
| context-files.md | ||
| context-references.md | ||
| cron.md | ||
| delegation.md | ||
| fallback-providers.md | ||
| honcho.md | ||
| hooks.md | ||
| image-generation.md | ||
| mcp.md | ||
| memory.md | ||
| personality.md | ||
| plugins.md | ||
| provider-routing.md | ||
| rl-training.md | ||
| skills.md | ||
| skins.md | ||
| tools.md | ||
| tts.md | ||
| vision.md | ||
| voice-mode.md | ||