mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-06-12 08:51:53 +00:00
Hermes can propose automations and let the user accept them with one tap via /suggestions, instead of making them assemble cron jobs by hand. Every proposal — wherever it originates — flows through one surface. Sources (the 'where suggestions come from'): - catalog: curated starter automations (daily briefing, important-mail monitor, weekly review, workday-start reminder) via /suggestions catalog - recipe: installing a skill that carries a metadata.hermes.recipe block registers a suggestion instead of auto-scheduling - usage / integration: reserved for the background-review detector and account-connect triggers (sources defined; emitters land next) Pieces: - cron/suggestions.py — the store. add/list/accept/dismiss, dedup+latch by key (dismissed proposals never re-offered), pending cap so it can't become a nag wall. Accepting calls the existing cron.jobs.create_job — there is NO second job engine. Mirrors jobs.py storage (atomic writes, lock, 0600). - cron/suggestion_catalog.py — the curated set. The important-mail monitor entry is where the old proactive-monitor poll->classify->surface engine lives now (cron/scripts/classify_items.py + the 'monitor' aux task), as ONE catalog automation rather than a standalone feature. - tools/recipes.py — recipe<->job bridge; register_recipe_suggestion() makes a recipe source 'recipe' of this surface. recipe_to_job_spec() is the single translation both the direct and suggestion paths share. - hermes_cli/suggestions_cmd.py — shared /suggestions handler (CLI + gateway never drift); /suggestions [accept N|dismiss N|catalog|clear]. - Wired: CommandDef + CLI dispatch (cli.py) + gateway dispatch (gateway/run.py) + aux 'monitor' task (config.py) + recipe-install hook (skills_hub.py). Consent-first throughout: nothing auto-schedules; acceptance is always explicit; dismissals latch. Supersedes #41122 (proactive-monitor) and #41127 (recipes): both fold in here as a catalog entry and a suggestion source respectively. Tests: store (dedup/cap/accept/dismiss/latch), catalog seeding+idempotency, recipe->suggestion bridge, command handler, aux config. E2E: recipe SKILL.md -> parsed -> suggested -> accepted -> real cron job persisted to jobs.json. |
||
|---|---|---|
| .. | ||
| _category_.json | ||
| acp-internals.md | ||
| adding-platform-adapters.md | ||
| adding-providers.md | ||
| adding-tools.md | ||
| agent-loop.md | ||
| architecture.md | ||
| browser-supervisor.md | ||
| context-compression-and-caching.md | ||
| context-engine-plugin.md | ||
| contributing.md | ||
| creating-skills.md | ||
| cron-internals.md | ||
| extending-the-cli.md | ||
| gateway-internals.md | ||
| image-gen-provider-plugin.md | ||
| memory-provider-plugin.md | ||
| model-provider-plugin.md | ||
| plugin-llm-access.md | ||
| programmatic-integration.md | ||
| prompt-assembly.md | ||
| provider-runtime.md | ||
| session-storage.md | ||
| tools-runtime.md | ||
| trajectory-format.md | ||
| video-gen-provider-plugin.md | ||
| web-search-provider-plugin.md | ||