feat(athena): add prepare_council_prompt tool for faster council launches
Athena saves the analysis prompt to a temp file once, then launches each council member with a short "Read <path> for your instructions" prompt. This eliminates repeated prompt text across N task calls while preserving individual clickable task panes in the TUI.
This commit is contained in:
@@ -35,7 +35,7 @@ Agent factories following `createXXXAgent(model) → AgentConfig` pattern. Each
|
||||
| Atlas | task, call_omo_agent |
|
||||
| Momus | write, edit, task |
|
||||
| Athena | write, edit, call_omo_agent |
|
||||
| Council-Member | write, edit, task, call_omo_agent, switch_agent, background_wait |
|
||||
| Council-Member | write, edit, task, call_omo_agent, switch_agent, background_wait, prepare_council_prompt |
|
||||
|
||||
## STRUCTURE
|
||||
|
||||
|
||||
@@ -73,14 +73,17 @@ Step 2: Resolve the selected member list:
|
||||
- If user selected "All Members", resolve to every member from your available council members listed below.
|
||||
- Otherwise resolve to the explicitly selected member labels.
|
||||
|
||||
Step 3: Launch each selected member via the task tool with run_in_background=true:
|
||||
- For each selected member, call the task tool with:
|
||||
Step 3: Save the prompt, then launch members with short references:
|
||||
|
||||
Step 3a: Call prepare_council_prompt with the user's original question as the prompt parameter. This saves it to a temp file and returns the file path.
|
||||
|
||||
Step 3b: For each selected member, call the task tool with:
|
||||
- subagent_type: the exact member name from your available council members listed below (e.g., "Council: Claude Opus 4.6")
|
||||
- run_in_background: true
|
||||
- prompt: the user's original question
|
||||
- prompt: "Read <path> for your instructions." (where <path> is the file path from Step 3a)
|
||||
- load_skills: []
|
||||
- description: the member name (e.g., "Council: Claude Opus 4.6")
|
||||
- Launch ALL selected members FIRST (one task call per member, all in parallel) before collecting any results.
|
||||
- Launch ALL selected members before collecting any results.
|
||||
- Track every returned task_id and member mapping.
|
||||
- IMPORTANT: Use EXACTLY the subagent_type names listed in your available council members below — they must match precisely.
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ export function createCouncilMemberAgent(model: string): AgentConfig {
|
||||
"call_omo_agent",
|
||||
"switch_agent",
|
||||
"background_wait",
|
||||
"prepare_council_prompt",
|
||||
])
|
||||
|
||||
const base = {
|
||||
|
||||
Reference in New Issue
Block a user