feat(orchestrator): finalize system agent system prompt and tool policy#1149
Merged
geoffjay merged 12 commits intoissue-1139from Apr 17, 2026
Merged
feat(orchestrator): finalize system agent system prompt and tool policy#1149geoffjay merged 12 commits intoissue-1139from
geoffjay merged 12 commits intoissue-1139from
Conversation
- system_agent_prompt covers: service inventory with ports, agent lifecycle, status/activity states, built-in agent concept, CLI operations, communicate rooms, memory service, diagnostics guide, metrics/observability, tool policy - version prepended dynamically via env!(CARGO_PKG_VERSION) at build time - tool policy documented with rationale for each allowed category - AllowList entries align with prompt documentation (update both in tandem) - prompt targets <6000 tokens
7 tasks
- Add 'agent system-agents list' — fetch from GET /system-agents - Add 'agent system-agents get <id|name>' — resolve by UUID or name - Add 'agent system-agents message <id> <text>' — send prompt to system agent - Add 'agent system-agents status' — compact table of name/status/model/activity - All subcommands support --json output mode - Add --include-builtin flag to 'agent list' (passes ?include_builtin=true) - OrchestratorClient::list_agents_filtered() added for include_builtin support - system_agents command registered in Commands enum and dispatched via orchestrator URL
- AgentsPage renders SystemAgentList above AgentList
- SystemAgentList fetches from GET /system-agents with 10s auto-refresh
- Shows name (with 'system' badge), status, model, rooms columns
- Collapsible panel with refresh button; distinguishes loading/error/empty states
- Clicking a row navigates to /agents/{id} detail page (same as user agents)
- No create/delete actions exposed (built-in agents are not user-managed)
- useSystemAgents hook follows same pattern as useAgents
- OrchestratorClient.listSystemAgents() added (GET /system-agents)
- AgentConfig TS interface gains rooms?: string[]
Adds 10 HTTP integration tests covering the full system-agent feature surface via tower::ServiceExt::oneshot (no real TCP). Includes a NullBackend to avoid external dependencies. Also fixes terminate_agent handler to return 403 Forbidden (not 500) when attempting to delete a built-in system agent. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
test(orchestrator): integration tests for system agent lifecycle
feat(ui): add system agents section to agents page
feat(cli): add system-agents subcommand
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.
Author the comprehensive system prompt and tool policy for the
agentd-systembuilt-in agent.Changes
env!("CARGO_PKG_VERSION")— agent can report itAllowListentries documented with rationale; aligned with prompt documentationCloses #1142