feat: add Mixture of Agents (MoA) for arbiter verdicts

When MOA_ENABLED=true, arbiter queries multiple LLM models in parallel
via OpenAI-compatible API, then an aggregator model synthesizes the
final verdict from all opinions. Falls back to single-agent arbiter
when MoA is disabled.

Config: MOA_BASE_URL, MOA_API_KEY, MOA_REFERENCE_MODELS, MOA_AGGREGATOR_MODEL
This commit is contained in:
Eyejoker
2026-03-31 00:20:41 +09:00
parent 35ba7cb5ba
commit f4b04d6c4d
6 changed files with 310 additions and 0 deletions

View File

@@ -25,6 +25,20 @@ vi.mock('./config.js', () => ({
effort: undefined,
fallbackEnabled: true,
})),
getMoaConfig: vi.fn(() => ({ enabled: false, referenceModels: [], aggregator: {} })),
TIMEZONE: 'Asia/Seoul',
}));
vi.mock('./arbiter-context.js', () => ({
buildArbiterContextPrompt: vi.fn(() => ''),
}));
vi.mock('./moa.js', () => ({
runMoaArbiter: vi.fn(),
}));
vi.mock('./platform-prompts.js', () => ({
readArbiterPrompt: vi.fn(() => ''),
}));
vi.mock('./db.js', () => ({