把复杂问题交给一场可追溯、可投票、可复盘的 AI 审议。
CouncilForge 不是“让一个模型给答案”的聊天工具,而是一座为复杂问题搭建的 AI 审议厅。它可以让多个模型或多个差异化代理围绕同一个议案展开交叉对话、质询、反驳和复议:有人代表风险控制,有人代表增长机会,有人坚持证据标准,有人专门寻找反例。每一轮讨论都会推动观点碰撞和立场更新,最终通过密封投票确定集体判断,并生成一份能够追溯到代理发言、证据来源、投票理由和结论形成过程的决策报告。
- 多代理不是角色扮演:系统按利益主体、风险偏好、证据标准、决策指标和反转条件生成差异化代理。
- 审议有过程:默认 6 名议员、1 名议长、3 轮审议,每轮有明确目标和上下文边界。
- 上下文隔离:每个代理拥有独立上下文快照,避免共享聊天记录导致观点快速同质化。
- 密封投票:投票期间不可提前查看票向,完成后统一揭票并生成可审计记录。
- 成本可见:按阶段展示模型调用次数、token 和预算消耗,超过预算前暂停。
- 真实模型接入:支持 OpenAI-compatible、DeepSeek、通义千问 / DashScope、Moonshot / Kimi、智谱 GLM、Anthropic Claude 和自定义网关。
- 可部署:Docker Compose 包含 PostgreSQL、Redis、MinIO、FastAPI、Celery Worker、Next.js 和 Nginx。
提出问题
→ 生成标准议案
→ 用户确认议案
→ 上传文件或补充证据
→ 生成差异化代理
→ 多轮审议与交叉质询
→ 用户中途干预
→ 密封投票
→ 统一揭票
→ 生成最终报告
→ 查看完整回放
| 层 | 技术 |
|---|---|
| 前端 | Next.js 16、React 19、Tailwind CSS、lucide-react |
| 后端 | FastAPI、SQLAlchemy、Pydantic Settings、httpx |
| 异步任务 | Celery、Redis |
| 数据与文件 | PostgreSQL、SQLite 本地开发、MinIO、后端文件存储 |
| 部署 | Docker Compose、Nginx、健康检查、备份与恢复脚本 |
| 测试 | Pytest、Next production build、GitHub Actions CI |
Copy-Item -LiteralPath .env.example -Destination .env -Force
docker compose up --build访问:
- 前端工作台:http://localhost:3000
- 模型连接页:http://localhost:3000/model-connections
- 后端健康检查:http://localhost:8000/api/health
- OpenAPI 文档:http://localhost:8000/docs
默认 USE_MOCK_MODEL=false,需要在“模型连接”页接入真实模型 API Key,或在服务器环境变量中配置模型供应商。浏览器不会直连模型供应商,API Key 只发送到后端,加密保存,并只向前端展示末四位。
开发调试如需离线跑通流程,可以临时设置:
USE_MOCK_MODEL=true生产环境不要开启 mock 模型。
生产部署前复制并修改 .env:
Copy-Item -LiteralPath .env.example -Destination .env -Force至少修改:
ENVIRONMENT=production
USE_MOCK_MODEL=false
JWT_SECRET=replace-with-at-least-32-random-characters
POSTGRES_PASSWORD=replace-with-strong-password
POSTGRES_APP_PASSWORD=replace-with-strong-password
MINIO_ROOT_PASSWORD=replace-with-strong-password
CORS_ORIGINS=["https://your-domain.example"]生产启动时,如果 JWT_SECRET 仍是默认值、USE_MOCK_MODEL=true 或 DATABASE_URL 使用 SQLite,后端会拒绝启动。
docker compose up -d --build
docker compose ps
Invoke-WebRequest http://localhost/api/healthCompose 已包含:
- PostgreSQL、Redis、MinIO、API、Worker、Web、Nginx;
- 服务健康检查和异常重启;
- 基础 CPU / 内存限制;
- 日志大小和保留数量限制;
- 固定主版本镜像,不依赖
latest; - 数据库迁移、备份、恢复和健康探针脚本。
内置供应商预设:
- OpenAI:
https://api.openai.com/v1 - DeepSeek:
https://api.deepseek.com - 通义千问 / DashScope:
https://dashscope.aliyuncs.com/compatible-mode/v1 - Moonshot / Kimi:
https://api.moonshot.cn/v1 - 智谱 GLM:
https://open.bigmodel.cn/api/paas/v4 - Anthropic Claude:
https://api.anthropic.com/v1 - 自定义 OpenAI-compatible 网关
如果供应商不稳定支持 /models,可以手动填写模型 ID。保存时后端会用该模型发起一次真实探测请求,探测失败不会保存连接。
后端:
cd backend
pytest
pytest tests/test_standard_meeting_soak.py前端:
cd frontend
npm install
npm run build本仓库包含 GitHub Actions:每次 push 到 main 或提交 PR 时,会运行后端测试和前端生产构建。
POST /api/model-connections/testPOST /api/model-connectionsPOST /api/model-connections/{id}/refresh-modelsPOST /api/model-connections/{id}/probePOST /api/sessionsPOST /api/sessions/{id}/frame-motionPOST /api/sessions/{id}/confirm-motionPOST /api/sessions/{id}/evidencePOST /api/sessions/{id}/generate-rosterPOST /api/sessions/{id}/rounds/startPOST /api/sessions/{id}/interventionsPOST /api/sessions/{id}/close-debatePOST /api/sessions/{id}/voteGET /api/sessions/{id}/votesGET /api/sessions/{id}/reportGET /api/sessions/{id}/replay
sh infra/migrate.sh
sh infra/healthcheck.sh
sh infra/backup.sh
sh infra/restore.sh backups/20260101T000000ZCouncilForge 目前适合作为可运行的产品原型和工程底座继续迭代。核心审议闭环、模型连接、密封投票、报告生成、回放、Docker Compose 部署和测试基线已经具备;更高强度的生产上线仍应继续补充长期压测、权限审计、监控告警和真实用户试运行。
- 更细粒度的证据引用校验和报告事实追溯;
- 更丰富的代理差异度评分和自动修复;
- SSE 断线续传和后台任务进度事件;
- 多组织管理、审计面板和分享权限;
- 更多报告导出格式和会议模板;
- 生产级监控、告警和备份恢复演练。
