Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

🦄 獬豸 (Project Xiezhi)

多 AI 协作需求推演与开发文档生成系统 — 让多个 AI 帮你想清楚再动手

Python FastAPI Vue.js License: MIT


项目简介

獬豸是一个让多个 AI 进行辩论博弈的系统。当你有一个技术方案设想时,可以让多个 AI(如 DeepSeek、Kimi、Qwen、Claude 等)互相辩论、质疑、完善,最终形成可靠的开发文档。

核心价值: 单一 AI 容易进入思维死胡同,多个 AI 互相辩论可以发现方案漏洞、从不同角度完善设计、在分歧时由人类裁决、自动生成完整开发文档。


系统流程

用户输入需求
    ↓
阶段1: 需求扩展(Q&A 式多轮对话,最多5轮,可一键跳过)
    ↓
阶段2: 群聊讨论(Leader 主持式对话)
  ├─ 整体架构讨论(Leader 提出方案,全员回应)
  ├─ 提取关键问题 → 创建子单元
  ├─ 子单元讨论(每个最多5轮,跨轮次累积上下文)
  │   └─ 每轮:Leader综合 → 讨论者回应 → Leader再综合
  ├─ 每个子单元结束后 Leader 输出结论总结
  └─ 全部完成后 Leader 输出技术决策总结
    ↓
阶段3: 文档生成
  ├─ AI 动态规划需要哪些文档(按项目类型裁剪)
  ├─ 逐个生成(支持断点续传)
  └─ 进度显示 (1/N)
    ↓
阶段4: 全局文档审查(结果可见于讨论区)
  ├─ 一次性审查所有文档(质量 + 跨文档一致性 + 需求覆盖度)
  └─ 发现问题自动修正
    ↓
阶段5: 用户确认 / 优化迭代
  ├─ 局部优化:选中文档 + 反馈 → 优化 → 级联更新相关文档
  ├─ 全局一致性检查:检测跨文档矛盾 → 自动修正
  └─ 用户满意后点击「完成项目」

Leader 主持式讨论模型

每个子单元的讨论采用 Leader 主持式对话:

  1. Leader 提出方案:从架构角度给出初步框架
  2. 讨论者回应:针对 Leader 和彼此的观点提出看法(同意/反对/补充)
  3. Leader 综合:提炼共识点和分歧点,推进讨论
  4. 讨论者再回应:针对 Leader 综合后的方案继续讨论
  5. Leader 总结:输出该单元的最终技术决策

所有发言者都能看到之前所有轮次的完整发言内容,形成真正的多轮对话。


技术栈

层级 技术
后端 Python 3.11+ / FastAPI / SQLAlchemy / SQLite (WAL)
前端 Vue 3 / TailwindCSS / Vite
通信 WebSocket(全双工实时)/ REST API
AI 集成 DeepSeek / Kimi / Qwen / GLM / Gemini / Claude / GPT / Claude Code / Codex

快速启动

环境要求

  • Python 3.11+
  • Node.js 18+
  • npm 8+

启动后端

cd backend
pip install -r requirements.txt
python init_db.py    # 首次运行:初始化空数据库
python main.py
# 服务启动在 http://localhost:8777
# API 文档: http://localhost:8777/docs

启动前端

cd frontend
npm install
npm run dev
# 访问 http://localhost:3000

支持的 AI 提供商

API 模式

提供商 默认模型 获取 API Key
DeepSeek deepseek-chat platform.deepseek.com
Kimi kimi-k2.5 platform.moonshot.cn
Qwen qwen-turbo dashscope.console.aliyun.com
GLM glm-4-flash open.bigmodel.cn
Gemini gemini-pro makersuite.google.com
Claude claude-3-sonnet console.anthropic.com
GPT gpt-4o-mini platform.openai.com
自定义 用户指定 任何 OpenAI 兼容 API

CLI 模式

提供商 安装命令
Claude Code npm install -g @anthropic-ai/claude-code
Codex npm install -g @openai/codex

同一项目中不能使用两个相同的 AI 提供商,防止幻觉知识局限。


核心功能

需求扩展

  • Leader AI 通过选项式问答明确需求(最多 5 轮)
  • 自动生成结构化需求描述
  • 用户可审阅修改或一键跳过

群聊讨论

  • Leader 主持式多轮对话(跨轮次累积上下文)
  • 自动提取关键问题并创建子讨论单元
  • 每个子单元独立讨论(最多 5 轮),Leader 可提前结束
  • 讨论结束后 Leader 输出技术决策总结
  • 支持单元级重新开始/继续(中途退出可恢复)

文档生成与审查

  • 基于需求文档 + Leader 技术决策总结生成 6 种文档
  • AI 审查每份文档的功能覆盖度、技术一致性、可行性
  • 发现问题自动修正

文档优化

  • 局部优化:选中文档 + 用户反馈 → 优化 → 自动级联更新相关文档
  • 全局一致性检查:检测跨文档矛盾(接口/数据模型/技术选型)→ 自动修正

AI 调用容错

  • 瞬态网络错误自动重试 3 次(指数退避 1s/2s/4s)
  • 重试用尽后前端显示「重新分析/跳过」按钮
  • 失败不消耗讨论轮次
  • 文档审查失败不阻塞主流程

单元级操作

  • 每个讨论单元支持独立「重新开始」或「继续」
  • 中途退出后可从断点恢复讨论
  • 文档生成支持断点续传(已生成的不重复)

API 接口

REST API

方法 路径 说明
POST /api/projects 创建项目
GET /api/projects 获取项目列表
GET /api/projects/{id} 获取项目详情
DELETE /api/projects/{id} 删除项目
POST /api/projects/{id}/start 开始项目流程
POST /api/projects/{id}/restart 重置项目
POST /api/projects/{id}/restart-phase 重启当前阶段
POST /api/projects/{id}/resume 继续下一阶段
POST /api/projects/{id}/pause 暂停项目
POST /api/projects/{id}/providers 添加 AI 提供商
GET /api/projects/{id}/providers 获取 AI 提供商列表
GET /api/projects/{id}/units 获取讨论单元
GET /api/projects/{id}/documents 获取生成的文档
POST /api/projects/{id}/units/{uid}/resolve 人类介入裁决
POST /api/projects/{id}/units/{uid}/restart-discussion 重新开始单元讨论
POST /api/projects/{id}/units/{uid}/continue-discussion 继续单元讨论
POST /api/projects/{id}/optimize-doc 局部优化文档
POST /api/projects/{id}/global-optimize 全局一致性检查
POST /api/projects/{id}/retry-ai 重试失败的 AI 调用
POST /api/projects/{id}/skip-ai 跳过失败的 AI 调用
GET /api/projects/{id}/tokens 获取 Token 统计
GET /api/tokens/global 获取全局 Token 统计
POST /api/providers/test 测试 AI 提供商连通性

WebSocket

路径 说明
WS /ws/projects/{id} 全双工实时通信(流式输出、状态变更、用户干预)

数据库设计

SQLite + WAL 模式,6 张表:

表名 说明
projects 项目总览(名称、需求、状态)
ai_providers AI 提供商配置(类型、Key、模型、角色)
discussion_units 讨论单元(树形结构,parent_id 自引用)
discussion_logs 讨论记录(每条发言、Token 统计)
generated_documents 生成的文档(6 种类型、版本管理)
token_usage Token 消耗统计

项目结构

2026Xiezhi/
├── backend/
│   ├── ai_providers/          # AI 适配器层
│   │   ├── base.py            # 抽象基类 + 工厂
│   │   ├── api_providers.py   # API 模式(7 家 + 自定义)
│   │   ├── cli_providers.py   # CLI 模式(Claude Code / Codex)
│   │   └── env_detector.py    # CLI 环境检测
│   ├── api/
│   │   ├── projects.py        # REST API 路由
│   │   └── websocket.py       # WebSocket 处理 + 广播函数
│   ├── prompts/
│   │   ├── requirement_prompts.py  # 需求扩展 prompt
│   │   ├── document_prompts.py     # 文档生成/审查/优化 prompt
│   │   └── discussion_prompts.py   # 讨论/共识/总结 prompt
│   ├── database.py            # SQLAlchemy 连接 + WAL
│   ├── models.py              # ORM 模型
│   ├── graph.py               # 工作流引擎(核心)
│   ├── main.py                # FastAPI 入口
│   └── requirements.txt
├── frontend/
│   ├── src/
│   │   ├── components/
│   │   │   ├── AppHeader.vue
│   │   │   ├── CreateProjectModal.vue
│   │   │   ├── DiscussionPanel.vue
│   │   │   ├── ProjectSidebar.vue
│   │   │   └── ProviderConfigModal.vue
│   │   ├── composables/
│   │   │   ├── useHelpers.js
│   │   │   ├── useProject.js
│   │   │   └── useWebSocket.js
│   │   ├── views/
│   │   │   ├── HomeView.vue
│   │   │   └── ProjectView.vue
│   │   ├── App.vue
│   │   └── main.js
│   ├── package.json
│   └── vite.config.js
└── README.md

架构设计

┌─────────────────────────────────────────────────────────────┐
│                    前端 (Vue 3 + TailwindCSS)                │
├──────────────────────┬──────────────────────────────────────┤
│   讨论单元树          │        讨论区 / 文档预览              │
│   - 状态可视化        │   - Leader 主持式对话流               │
│   - 单元级操作        │   - 流式打字机效果                    │
│   - 文档列表          │   - 局部优化输入                      │
├──────────────────────┴──────────────────────────────────────┤
│                    控制台                                     │
│   - 进度指示  - 阶段按钮  - AI 失败重试                      │
└─────────────────────────────────────────────────────────────┘
                            │ WebSocket
                            ▼
┌─────────────────────────────────────────────────────────────┐
│                    后端 (FastAPI :8777)                       │
├─────────────────────────────────────────────────────────────┤
│   REST API                 │        WebSocket                │
├─────────────────────────────────────────────────────────────┤
│                    工作流引擎 (graph.py)                      │
│   需求扩展 → Leader主持讨论 → 技术决策总结                    │
│           → 文档生成 → AI审查 → 局部/全局优化                 │
├─────────────────────────────────────────────────────────────┤
│                    AI 适配器层                                │
│   API: DeepSeek, Kimi, Qwen, GLM, Gemini, Claude, GPT      │
│   CLI: Claude Code, Codex                                    │
│   容错: 自动重试 + 用户决策                                   │
├─────────────────────────────────────────────────────────────┤
│                    数据库 (SQLite WAL)                        │
└─────────────────────────────────────────────────────────────┘

环境变量

变量名 说明 默认值
CORS_ORIGINS 允许的 CORS 来源(逗号分隔) http://localhost:3000,http://127.0.0.1:3000
CLAUDE_CODE_GIT_BASH_PATH Claude Code 需要的 git-bash 路径 自动检测

安全说明

  • CORS 限制允许的来源域名
  • CLI 命令使用参数化执行,避免注入
  • API Key 不暴露在日志或响应中
  • 路径自动检测,不硬编码用户路径

生产环境建议:配置 HTTPS、限制 CORS、使用防火墙或认证机制。


License

MIT License

About

多AI协作需求推演与开发文档生成系统

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages