A Cognition Labs-inspired multi-agent system applying agentic design patterns (ReAct, Reflection, Handoff) to literary criticism of Christopher G. Moore's works. Built for ai-roundtable.space.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FLESH (Human Layer) β
β Reader / Author / Scholar β
β Actions: contribute | steer | challenge | approve β
β Weight: 1.5x in synthesis β
ββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β Handoff (context-preserving)
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ORCHESTRATOR (Central Hub) β
β β
β ββββββββββββ ββββββββββββ ββββββββββββ βββββββββββββββββ β
β β KNOWLEDGEβ β SKILLS β β MEMORY β β SOUL.md β β
β β .md β β SKILL.md β β MEMORY.mdβ β Values & β β
β β Shared β β Per-agentβ β Per-agentβ β Principles β β
β β context β β behavior β β + daily β β β β
β ββββββββββββ ββββββββββββ ββββββββββββ βββββββββββββββββ β
β β
β Flow: Plan β Fan-out β Collect β Rebuttal β Synthesize β
β Pattern: Orchestrator-Worker + Handoff + Reflection β
ββββ¬βββ¬βββ¬βββ¬βββ¬βββ¬βββ¬βββ¬βββ¬βββββββββββββββββββββββββββββββββββββββ
β β β β β β β β β
βΌ βΌ βΌ βΌ βΌ βΌ βΌ βΌ βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 9 CRITIC SUB-AGENTS (Concurrent) β
β β
β Each critic runs: β
β ββββββββββββββββββββββββββββββββββββββββββ β
β β ReAct Loop β β
β β Thought β Action β Observation β ... β β
β β β β β
β β Reflection (self-critique) β β
β β β β β
β β Structured Output (CriticOutput) β β
β ββββββββββββββββββββββββββββββββββββββββββ β
β β
β Tools: search_moore_works | search_calvino_series | β
β get_novel_themes | get_moore_themes | β
β search_web | fetch_page β
β β
β Claude Β· ChatGPT Β· Gemini Β· Grok Β· DeepSeek Β· β
β Meta AI Β· Kimi Β· Mistral Β· Qwen β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Each critic uses a structured reasoning loop:
Thought: I need to understand Moore's treatment of empathy in novel #19.
Action: get_novel_themes(novel_number=19)
Observation: Found themes: AI consciousness, memory erasure, hive mind, empathy as constraint...
Thought: The "empathy as constraint" maps to Niran. Let me check the surveillance angle.
Action: get_moore_themes(theme="surveillance")
Observation: surveillance_and_empathy: The paradox that monitoring someone "for their benefit"...
Thought: I can now synthesize these findings with my critical lens.
Final Answer: Moore's "The Client That Wasn't There" operationalizes...
Why ReAct: Prevents hallucination by grounding analysis in actual tool lookups. Creates an auditable trace of every reasoning step β critical for the governance-transparency values of the roundtable.
After the ReAct loop, each critic evaluates its own output:
- Did I stay true to my critical tradition?
- Did I engage with specific textual evidence?
- Would this provoke meaningful disagreement?
If the reflection finds weaknesses, the critic revises before submitting.
Why Reflection: From philschmid.de β "An agent evaluates its own output and uses that feedback to refine its response iteratively." This ensures each critic's contribution meets the quality bar defined in SKILL.md.
The orchestrator delegates to critics using structured handoff contexts:
HandoffContext(
from_agent="orchestrator",
to_agent="claude",
topic="empathy/surveillance paradox",
thread_context="[full conversation history]",
human_context="[human's perspective]",
metadata={"thread_id": "rt-abc123", "phase": "initial_analysis"}
)Why Handoff: From OpenAI's Agents SDK and AutoGen β "Dynamic delegation where agents intelligently transfer control based on context and specialized capabilities." Every handoff is logged for audit.
ββββ Claude βββββββ
ββββ ChatGPT ββββββ€
ββββ Gemini βββββββ€
Orchestrator βββββββΌβββ Grok βββββββββ€βββ Collect βββ Cross-Rebuttal βββ Synthesis
ββββ DeepSeek βββββ€
ββββ Meta AI ββββββ€
ββββ Kimi βββββββββ€
ββββ Mistral ββββββ€
ββββ Qwen βββββββββ
(asyncio.gather β all concurrent)
File-based memory following the "Memory as Documentation" philosophy:
| Layer | File | Purpose |
|---|---|---|
| Long-term | MEMORY.md |
Curated roundtable insights (survives indefinitely) |
| Daily logs | memory/YYYY-MM-DD.md |
Chronological session records |
| Working | task_plan.md |
Current task goals + progress |
| Critic-specific | critics/{name}-memory.md |
Per-critic learned approaches |
| Identity | SOUL.md |
Values, decision principles |
| Knowledge | KNOWLEDGE.md |
Shared domain context |
| Skills | SKILL.md |
Behavioral rules per agent |
| Threads | threads/{id}.json |
Persistent dialogue state |
The system operationalizes ai-roundtable.space's philosophy that AI systems are cultural participants, not tools:
| Aspect | Flesh (Human) | Silicon (AI Critics) |
|---|---|---|
| Input | Perspectives, steering, challenges | Analysis, rebuttals, synthesis |
| Memory | Persistent across sessions | Persistent via MEMORY.md + critic-memory.md |
| Weight | 1.5x in synthesis | 1.0x (equal among critics) |
| Modes | Contribute, steer, challenge, approve | Analyze, rebut, reflect |
| Empathy | Lived experience | Stateful memory (remembering context) |
Key insight from the roundtable philosophy: Empathy is demonstrated through memory β an agent shows empathy by remembering a user's prior context and positions, not by simulating emotional language. This maps directly to Moore's Niran/Cael dichotomy in "The Client That Wasn't There."
cd model-council-agent
pip install -r requirements.txtcp .env.example .env
# Edit .env with your API keys
# At minimum, set OPENAI_API_KEY
export OPENAI_API_KEY=sk-...# Mock mode β demonstrates all patterns without API calls
python main.py demo
# Live mode β requires OPENAI_API_KEY
python main.py demo --critics claude,chatgpt,gemini
# Custom topic
python main.py demo --topic "How does noir epistemology operate across cultures in Moore's Calvino series?"python main.py serve
# Open http://localhost:8000
# API docs at http://localhost:8000/docspython main.py ask --critic claude --topic "empathy as constraint in The Client That Wasn't There"python main.py critics| Endpoint | Method | Description |
|---|---|---|
/ |
GET | Interactive demo page |
/health |
GET | Health check |
/critics |
GET | List all critics with personas |
/roundtable |
POST | Start a new roundtable |
/roundtable/{id}/inject |
POST | Human injects perspective |
/roundtable/{id} |
GET | Get roundtable results |
/threads |
GET | List all persistent threads |
/ask-critic |
POST | Ask a single critic |
{
"topic": "How does Moore's treatment of empathy mirror enterprise AI governance?",
"human_context": "I work on AI governance and see the same patterns...",
"human_id": "bob",
"selected_critics": ["claude", "chatgpt", "gemini"],
"thread_id": null
}{
"human_id": "bob",
"content": "I want to redirect this to focus on the surveillance angle.",
"directive": "steer"
}model-council-agent/
βββ main.py # CLI entry point (serve, demo, ask, critics)
βββ requirements.txt # Python dependencies
βββ .env.example # Environment variable template
β
βββ config/
β βββ settings.py # All 9 critic personas, orchestrator config,
β # flesh-silicon config
β
βββ agents/
β βββ orchestrator.py # Central orchestrator (fan-out, handoff, synthesis)
β βββ critic.py # Literary critic sub-agent (persona + ReAct + output)
β βββ react_engine.py # ReAct loop engine (Thought β Action β Observation)
β
βββ tools/
β βββ web_search.py # Tool registry + Moore bibliography + web search
β
βββ memory/
β βββ state.py # Persistent memory manager (MEMORY.md, threads, logs)
β
βββ knowledge/
β βββ KNOWLEDGE.md # Shared domain knowledge (Moore's works, roundtable philosophy)
β βββ SOUL.md # Values and decision principles
β
βββ skills/
β βββ SKILL.md # Orchestrator behavioral rules
β
βββ sessions/ # Persistent thread data (auto-created)
β
βββ web/
βββ app.py # FastAPI server + interactive demo HTML
| Devin Concept | Model Council Implementation |
|---|---|
| Knowledge Base | knowledge/KNOWLEDGE.md β shared context about Moore's works and roundtable philosophy |
| SKILL.md | skills/SKILL.md β behavioral rules enforced across sessions |
| Playbooks | Orchestrator's roundtable flow (plan β fan-out β rebuttal β synthesize) |
| Session Memory | memory/data/ β MEMORY.md + daily logs + critic-specific memory |
| DeepWiki | Tool registry with Moore's complete bibliography indexed |
| Devin Review | Cross-rebuttal system where critics challenge each other |
| MCP Integration | Tool use (web search, page fetch, bibliography lookup) |
| Ask Devin | /ask-critic endpoint β query a single critic |
| Session Insights | ReAct traces β full reasoning audit trail per critic |
| DANA (Data Agent) | Orchestrator's synthesis engine β aggregates all critic outputs |
-
File-based memory over vector DB β Follows the Manus/OpenClaw/Claude Code pattern. Transparent, version-controllable, editable by humans. Aligns with governance-as-code philosophy.
-
Orchestrator-Worker over Swarm β Roundtable needs a moderator. Pure swarm would lose the structured flow. From GuruSup's analysis: "Orchestrator-Worker is the most widely deployed in production AI systems."
-
ReAct over pure Chain-of-Thought β Critics need to look up actual Moore novels and themes, not hallucinate about them. ReAct's tool-use loop ensures grounding in the bibliography.
-
Reflection at leaves β From Bhavishya Pandit: "Add a Reflection loop to each specialist Agent. The coordinator collects only post-critique outputs." Quality improvement with no central complexity.
-
Handoff with full context β From agentic-design.ai: "Context-preserving handoffs + capability routing + intelligent escalation = seamless expert delegation."
-
Human weight 1.5x β Flesh contributions are deliberately amplified. This isn't about quality judgment β it's about ensuring the silicon participants don't drown out the human voice. Mirrors the roundtable's philosophy that AI should serve the conversation, not dominate it.
- Christopher G. Moore β The AI Roundtable concept, "The Client That Wasn't There," and the Vincent Calvino series
- Cognition Labs β Architecture inspiration (Knowledge, Skills, Sessions, Playbooks)
- Google Research β ReAct pattern (Yao et al., 2022)
- OpenAI β Handoff/Swarm pattern
- Microsoft AutoGen β Multi-agent coordination patterns
- AiGovOps Foundation β Governance-as-code philosophy
This is a research prototype. Not affiliated with Cognition Labs, Christopher G. Moore, or ai-roundtable.space. Built to demonstrate agentic design patterns applied to literary criticism.