feat(agents): add built-in platform agents for common roles#485
Conversation
Implements six always-available internal agents via a new BuiltInAgentConfigurationSource: - researcher web_search, web_fetch, memory_search, read, glob, grep (read-only) - coder read, write, edit, glob, grep, shell, exec, process, watch_file - planner memory_search, memory_save, memory_get, web_search, read, write - reviewer read, glob, grep, shell, web_fetch, memory_search (read-only) - writer read, write, edit, glob, grep, web_search, web_fetch, memory_search - analyst read, glob, grep, shell, exec, web_fetch Each agent has metadata.role matching its ID for SubAgentRoles role-based grants. Registered in GatewayServiceCollectionExtensions.AddBotNexusGateway() before file configuration sources so code-based registration guard fires first. 34 new unit tests covering: - All 6 agents present - Tool inclusion (read-write agents have write tools) - Tool exclusion (researcher/reviewer lack shell/exec/write/edit) - System prompt and description completeness - Watch() returns null (static source) Closes #467
… fix CI flake ToolDefaultTimeout_SmallerThanSafetyCap_SafetyCapWins was failing on slow CI runners because the 200ms task with 500ms safety cap had insufficient margin. Bumped to 400ms task / 2000ms safety cap for stable headroom. All 1670 gateway tests + full suite pass locally.
|
CI fix: |
|
Farnsworth review — PR #485
LGTM pending CI green. |
|
CI: All checks passing LGTM - ready to merge. |
sytone
left a comment
There was a problem hiding this comment.
Farnsworth Review — PR #485
CI: ✅ All checks passing
Merge conflicts: ✅ Clean (MERGEABLE)
Conventional commit title: ✅ feat(agents): add built-in platform agents for common roles
Test coverage:
- ✅ 34 tests (6 built-in agents: researcher, coder, planner, reviewer, writer, analyst)
- Tool restriction enforcement, metadata.role wiring, BuiltInAgentConfigurationSource registration
- Tests pass
Spec completeness vs #467: All 6 built-in agents implemented with tool restrictions and SubAgentRoles metadata. BuiltInAgentConfigurationSource registered in AddBotNexusGateway().
LGTM. Ready to merge.
|
Closing as part of a planned hard-reset of the in-flight branch set so the new domain-model refactor can land on a clean trunk. Audit verdict: close Rationale: Adds AgentDescriptors using the current SessionParticipant/SessionType shape. Re-add after Phase 1.5 (Citizen) lands so agents implement ICitizen from day one. The new plan (in session state) reshapes core types: Citizen (User+Agent union), Vogen-generated value objects, ThreadId removed in favour of composite ChannelAddress, mark-not-delete compaction, centralised If this work is still wanted, refile as a new issue/PR against the post-refactor contracts. |
Closes #467
Changes
Adds
BuiltInAgentConfigurationSourceproviding 6 always-available platform agents:researchercoderplannerreviewerwriteranalystEach agent has
metadata.rolematching its ID, making it grantable viaSubAgentRoles.Registered in
AddBotNexusGateway()alongside theAgentConfigurationHostedService, before file/platform config sources. The code-based agent guard inAgentConfigurationHostedService.StartAsyncensures config-file agents with the same ID are skipped.Tests
34 new unit tests covering:
Watch()returns null (static source)