feat(athena): add dedicated council-member agent for multi-model council

Replace oracle as the agent for council background tasks with a purpose-built

council-member agent. This avoids coupling to oracle's config/prompt and provides

proper read-only tool restrictions (deny write, edit, task, athena_council).

- New council-member-agent.ts with analysis-oriented system prompt

- Registered in agentSources (hidden from Sisyphus delegation table)

- Added to type system, Zod schemas, display names, tool restrictions

- Minimal model fallback (always overridden per council member at launch)

- Council orchestrator now launches members as council-member agent

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
ismeth
2026-02-17 12:33:49 +01:00
committed by YeonGyu-Kim
parent 4a418fc324
commit 10e28417a3
9 changed files with 46 additions and 3 deletions
+2
View File
@@ -14,6 +14,7 @@ import { createMomusAgent, momusPromptMetadata } from "./momus"
import { createHephaestusAgent } from "./hephaestus"
import { createSisyphusJuniorAgentWithOverrides } from "./sisyphus-junior"
import { createAthenaAgent, ATHENA_PROMPT_METADATA } from "./athena/agent"
import { createCouncilMemberAgent } from "./athena/council-member-agent"
import type { AvailableCategory } from "./dynamic-agent-prompt-builder"
import {
fetchAvailableModels,
@@ -40,6 +41,7 @@ const agentSources: Partial<Record<BuiltinAgentName, AgentSource>> = {
metis: createMetisAgent,
momus: createMomusAgent,
athena: createAthenaAgent,
"council-member": createCouncilMemberAgent,
// Note: Atlas is handled specially in createBuiltinAgents()
// because it needs OrchestratorContext, not just a model string
atlas: createAtlasAgent as AgentFactory,