feat: activate coordinator mode in open build (#647)
* feat: activate coordinator mode in open build
Enable the COORDINATOR_MODE feature flag and create the missing
src/coordinator/workerAgent.ts module that provides worker agent
definitions for the coordinator.
Coordinator mode is a multi-agent system where a coordinator agent
orchestrates independent workers via AgentTool, SendMessageTool,
and TaskStopTool. The implementation was already 99% complete
(19KB coordinatorMode.ts, 26 gate sites across 15 files) — only
the workerAgent module was missing from the source snapshot.
Workers get the standard built-in agents (general-purpose, explore,
plan). The coordinator system prompt (252 lines) handles all
orchestration logic.
Activate at runtime: CLAUDE_CODE_COORDINATOR_MODE=1
Optional scratchpad: set {"tengu_scratch": true} in
~/.claude/feature-flags.json (#639)
* fix: add worker agent type for coordinator mode
The coordinator system prompt instructs the model to spawn workers with
subagent_type: "worker", but no agent had agentType === 'worker'.
This caused AgentTool to throw "Agent type 'worker' not found" on
every coordinator spawn attempt.
Add a WORKER_AGENT definition that spreads GENERAL_PURPOSE_AGENT with
agentType: 'worker'. Also use the narrower BuiltInAgentDefinition type.
* feat: activate built-in explore and plan agents in open build
Enable BUILTIN_EXPLORE_PLAN_AGENTS so Explore (fast, haiku, read-only)
and Plan (architect, read-only) agents are available to all users in
both normal and coordinator modes.
This resolves the inconsistency flagged in code review: coordinator
workers had access to Explore/Plan agents while normal sessions did not.
The GrowthBook A/B test gate (tengu_amber_stoat) defaults to true via
the no-telemetry stub. Users can disable via feature-flags.json (#639).
This commit is contained in:
committed by
GitHub
parent
df2b9f2b7b
commit
99a17144ee
@@ -29,7 +29,8 @@ const featureFlags: Record<string, boolean> = {
|
|||||||
ABLATION_BASELINE: false,
|
ABLATION_BASELINE: false,
|
||||||
DUMP_SYSTEM_PROMPT: false,
|
DUMP_SYSTEM_PROMPT: false,
|
||||||
CACHED_MICROCOMPACT: false,
|
CACHED_MICROCOMPACT: false,
|
||||||
COORDINATOR_MODE: false,
|
COORDINATOR_MODE: true,
|
||||||
|
BUILTIN_EXPLORE_PLAN_AGENTS: true,
|
||||||
CONTEXT_COLLAPSE: false,
|
CONTEXT_COLLAPSE: false,
|
||||||
COMMIT_ATTRIBUTION: false,
|
COMMIT_ATTRIBUTION: false,
|
||||||
TEAMMEM: false,
|
TEAMMEM: false,
|
||||||
|
|||||||
18
src/coordinator/workerAgent.ts
Normal file
18
src/coordinator/workerAgent.ts
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
import type { BuiltInAgentDefinition } from '../tools/AgentTool/loadAgentsDir.js'
|
||||||
|
import { EXPLORE_AGENT } from '../tools/AgentTool/built-in/exploreAgent.js'
|
||||||
|
import { GENERAL_PURPOSE_AGENT } from '../tools/AgentTool/built-in/generalPurposeAgent.js'
|
||||||
|
import { PLAN_AGENT } from '../tools/AgentTool/built-in/planAgent.js'
|
||||||
|
|
||||||
|
// The coordinator system prompt instructs the model to spawn workers with
|
||||||
|
// subagent_type: "worker". This agent definition matches that type so
|
||||||
|
// AgentTool.tsx can resolve it. It reuses GENERAL_PURPOSE_AGENT's capabilities.
|
||||||
|
const WORKER_AGENT: BuiltInAgentDefinition = {
|
||||||
|
...GENERAL_PURPOSE_AGENT,
|
||||||
|
agentType: 'worker',
|
||||||
|
whenToUse:
|
||||||
|
'Worker agent for coordinator mode. Executes tasks autonomously — research, implementation, or verification.',
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getCoordinatorAgents(): BuiltInAgentDefinition[] {
|
||||||
|
return [WORKER_AGENT, GENERAL_PURPOSE_AGENT, EXPLORE_AGENT, PLAN_AGENT]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user