AgentSkillsCN

llm-council

配备实时仪表盘的多模型大语言模型理事会。可同时向多个AI模型发起查询,在蜂群式仪表盘中并排查看各模型的响应,综合各方共识,并开展匿名的模型间投票。当用户希望启动大语言模型理事会、比较各模型、向多个模型发起查询、召集理事会、向所有模型提问、进行模型比较、运行多模型查询,或启动理事会仪表盘时,可使用此功能。通过AI网关,支持Claude Sonnet 4.5、Claude Opus 4.5、GPT-4o、GPT-5.1、Gemini 2.5 Flash以及Gemini 2.5 Pro等模型。

SKILL.md
--- frontmatter
name: llm-council
description: >-
  Multi-model LLM Council with live dashboard. Query multiple AI models simultaneously,
  see responses side-by-side in a swarm-style dashboard, synthesize consensus, and run
  anonymous model-to-model voting. Use when the user asks to start the LLM council,
  compare models, query multiple models, convene council, ask all models, do model
  comparison, run multi-model queries, or launch the council dashboard. Supports
  Claude Sonnet 4.5, Claude Opus 4.5, GPT-4o, GPT-5.1, Gemini 2.5 Flash, and
  Gemini 2.5 Pro via AI Gateway.

LLM Council

Query multiple AI models in parallel with a live web dashboard.

Launch

bash
cd ~/.claude/skills/llm-council/scripts
# Kill any existing server on the port
fuser -k 8787/tcp 2>/dev/null
# Start server
nohup python3 server.py > /tmp/council-server.log 2>&1 &
# Wait for startup, verify health
sleep 2 && curl -s --max-time 5 http://localhost:8787/health
# Export port for browser access
/app/export-port.sh 8787

Environment: COUNCIL_PORT (default 8787), AI_GATEWAY_API_KEY (required, auto-detected from environment).

Files

  • scripts/server.py - ThreadingHTTPServer, serves static files + API routes, SSE streaming
  • scripts/ai_gateway.py - AI Gateway client: query, parallel query, streaming, synthesis, anonymous voting
  • scripts/static/index.html - Dashboard UI (HappyCapy design system, light/dark theme)
  • scripts/static/app.js - Client-side logic (model selector, SSE parsing, markdown rendering, voting UI)

API

MethodPathDescription
GET/Dashboard
GET/api/modelsList models
GET/healthHealth check
POST/api/council/streamQuery models (SSE)
POST/api/council/synthesizeSynthesize consensus
POST/api/council/voteAnonymous model vote (SSE with keepalive)

Key Details

  • Server uses ThreadingHTTPServer for concurrent request handling
  • Vote endpoint streams SSE keepalive pings every 5s to prevent proxy timeouts (Cloudflare 524)
  • Static files served with Cache-Control: no-store, no-cache headers
  • Script tag uses cache-busting version param: app.js?v=... (bump when editing app.js)
  • Model IDs use dots not hyphens: anthropic/claude-sonnet-4.5 (not claude-sonnet-4-5)