Add durable profile-agent orchestration via agent_control#43030
Open
dodo-reach wants to merge 1 commit into
Open
Add durable profile-agent orchestration via agent_control#43030dodo-reach wants to merge 1 commit into
dodo-reach wants to merge 1 commit into
Conversation
flooryyyy
added a commit
to flooryyyy/hermes-agent
that referenced
this pull request
Jun 11, 2026
Source: PR NousResearch#43030 (dodo-reach), NousResearch/hermes-agent Adds persistent peer agent control via ACP: - acp_adapter/client.py — JSON-RPC ACP client (spawns hermes profiles as subprocesses) - agent/orchestration.py — SQLite control plane (leases, handles, runs) - tools/agent_control_tool.py — 5 tools: agent_spawn, agent_kill, agent_list, agent_prompt, agent_fork - Fail-closed security — all agent operations denied unless admin opts in via env var - 190 tests across tests/acp, tests/agent, tests/tools Conflicts resolved: - tests/tools/test_registry.py — kept both test methods (dynamic discovery + manual set) - website/docs/reference/toolsets-reference.md — added agent_control row, kept browser CDP gating - website/docs/user-guide/features/kanban.md — kept ASCII art diagram (not mermaid) - website/sidebars.ts — kept both sidebar entries (programmatic-integration + agent-orchestration-adr)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR restores the work from #18493 after the original fork branch was deleted and GitHub could not reopen the closed pull request.
This PR adds
agent_control: a durable orchestration layer that lets Hermes profiles manage other Hermes profiles as persistent peer agents over ACP.The core idea is simple:
delegate_taskis for disposable subagents, Kanban is for asynchronous task-board workflows, andagent_controlis for direct manager/team orchestration. A Hermes orchestrator can now command named specialist profiles with their own memory, tools, skills, config, and resumable session history.This turns Hermes profiles into composable agent teammates without inventing a separate swarm runtime. It reuses the primitives Hermes already trusts: profiles for identity, ACP for process/session control, toolsets for capability boundaries, and SQLite for durable state.
This builds on the external orchestration direction from #14009, but moves the control plane into Hermes as an opt-in toolset designed for production reliability.
What changed
agent_controltoolset and tools:agent_startagent_promptagent_statusagent_listagent_forkdelegate_taskchildren from inheritingagent_control.delegate_task,agent_control, and Kanban.Reliability notes
(profile, session_id), so duplicate handles or separate orchestrator profiles cannot race the same ACP session history.agent_forktakes the same source-session lease before branching history.approval_policy="allow_once"through tool arguments; permissive behavior requiresHERMES_AGENT_CONTROL_APPROVAL_POLICY=allow_once.agent_controlis gated on the ACP extra.Tests
.venv/bin/python -m pytest tests/acp/test_client.py tests/agent/test_orchestration.py tests/acp/test_session.py tests/tools/test_delegate.py tests/tools/test_registry.py::TestBuiltinDiscovery::test_matches_previous_manual_builtin_tool_set -q190 passed.venv/bin/python -m compileall acp_adapter/client.py acp_adapter/session.py agent/orchestration.py tools/agent_control_tool.py hermes_cli/tools_config.py tests/acp/test_client.py tests/acp/test_session.py tests/agent/test_orchestration.py tests/tools/test_delegate.py tests/tools/test_registry.py.venv/bin/ascii-guard lint website/docsnpm run buildPATHso the skill metadata prebuild matches CI'spyyamlsetup.git diff --checkThe targeted test set covers the new ACP client, the durable orchestration control plane, ACP toolset behavior, and the regression that prevents
delegate_taskchildren from inheritingagent_control. The full repository suite is left to CI.