AkiTao
Enterprise AI StrategyUpdated 8 min

Micro-Council: A Small AI Council That Picks Mechanisms by Shortfall to Keep Cost Low

akiflow convenes only the seats a request needs and picks the mechanism (cheap subagent, strong subagent, debating council) by what is missing: bandwidth, continuity, independence, or debate.

Micro-Council: A Small AI Council That Picks Mechanisms by Shortfall to Keep Cost Low

When teams bring AI into software work, many land on one of two extremes: a single agent that produces hidden errors in bulk, or a swarm of dozens of agents that is both expensive and hard to control.

The micro-council in akiflow takes a third path: the council size is set by the work items, not by a fixed number. A seat is convened only when it traces to a requirement in the owner's words, and every mechanism stays off until the run produces a reason to turn it on.

Pick the mechanism by shortfall, not by job title

Instead of spawning subagents at whim, akiflow asks what the run is missing:

  • ◆Bandwidth (mechanical, repetitive, high-volume work): a plain subagent on the cheapest tier that can do it. The task describes itself, so a blank context is no handicap.
  • ◆Continuity (needs a prior decision): a plain subagent handed the plan file or diff in its prompt. A fork inherits session history, but it is gated off by default in Claude Code and is not an artifact that survives across sessions, so the plan file is what carries continuity.
  • ◆Independence (must not be contaminated by the lead's reasoning): a plain subagent on a strong tier. Here the blank context is an asset.
  • ◆Structured debate: a named roster convened in one batch, talking directly through SendMessage.
  • ◆Read-only bandwidth off the Claude quota: another CLI run headless in read-only mode, for retrieval only, never for judgment.

Two phases and the activation gate

First comes the activation gate: decomposable into at least two items, more than one standard of "correct", and cost of error above cost of coordination. Fail any one and no council opens; the work is done directly. Details are in the activation gate article.

Note

Phase A, debate and locking the plan: the convened seats challenge each other, and the lead closes each item with a rationale of at most three lines in checklist.md. No code is written in Phase A. Every SendMessage costs a full turn of the receiving agent, so the messaging budget is stated up front and each pair debates at most three rounds before escalating.

Phase B, execution: aki-maker writes code from the plan file (implementation is never downgraded to a cheap model), a plain subagent verifies against the diff and the promise, and aki-challenger reviews from a clean context. If a Phase B blocker invalidates the assumption of a closed item, that item is reopened instead of patched quietly.

Cost you can reconcile

The roster must declare each seat's model before any tokens are spent. At close-out, council_cost.py totals the actual Claude-side tokens of the lead and every subagent, so expected and actual cost sit side by side. That way a run that cost many times its worth cannot pass for a normal one.