让 曾国藩 · 苏轼 · 王阳明 三位独立 agent,为你的职场困境真实辩论 2 轮
Three Chinese sages debate your career dilemma — twice, for real.
一个真·多 agent 辩论产品——不是用一个 GPT 切换 prompt 假装多角色,而是 3 个独立 agent:
- 每位贤者 = 一个独立 LLM 实例 + 独立 system prompt + 独立精选语料库
- 你输入职场困境 → 三人各自给立场 → 互相质疑、辩论 2 轮(每人发言 5 次)→ 主持人保留 3 人真实分歧 → 抛回给你自己选
不给标准答案——产品的核心是让你看 3 人真在为你吵架,自己挑。
| 贤者 | 代表 | 核心 | 给你什么 |
|---|---|---|---|
| 曾国藩 | 勤奋派 | 拙诚 / 日课 / 慎独 | 笨功夫的尺子,问你下了多少 |
| 苏轼 | 乐观派 | 安住 / 旷达 / 重新框定 | 三贬黄惠儋的人,不会让你假装"想开了" |
| 王阳明 | 清醒派 | 致良知 / 知行合一 / 破心中贼 | 一面镜子,照出你藏在两难里、不敢承认的事 |
三人形成"行动 / 心态 / 认知"三角覆盖——任何困境都能让 3 人各占一边吵起来。
(首页 hero / 辩论现场 / 综合输出页 — 截图位)
用户输入
↓
┌────────────── M0.1 Router ──────────────┐
│ 危机扫描 / 8 桶分类 / 100 分制信息打分 │
│ intent 判别(listen / decision / advice) │
└────────────────┬─────────────────────────┘
↓
┌──── 主持人编排 ────┐
│ │
│ crisis=true → 危机响应 (绕过 3 agent)
│ needs_followup → 追问,再来一轮
│ intent=listen → 苏轼主导 listen 模式
│ else → 进入 ↓ 完整 2 轮辩论
│ │
└──────────────────────┘
↓
┌────── 2 轮深度辩论 (每 stage 3 次并行) ──────┐
│ 0 3 人首发 │
│ 1 R1 反驳(顺时针:曾→苏 / 苏→王 / 王→曾) │
│ 2 R1 回应(被驳者 stage 3 调整) │
│ 3 R2 再驳(逆时针,引用对方让步) │
│ 4 R2 再应 │
└──────────────────────┬──────────────────────────┘
↓
┌────── 主持人综合 ────────────────────────────┐
│ 共识 + 真实分歧(不和稀泥) + 今晚一件事 │
│ + closing question (王阳明 mirror_question) │
└──────────────────────────────────────────────┘
↓
给用户的 markdown
sanxianyi/
├── 设计文档/ 设计 + 实测产物
│ ├── 00-总开发大纲.md 阶段 0 路线图
│ ├── 01-阶段1-总开发大纲.md 阶段 1(UI + 视频)路线图
│ ├── 02-阶段1-UI完成总结.md 阶段 1 完成总结(最权威状态文档)
│ ├── M0.1-Router设计.md Router agent 设计
│ ├── M0.2-{曾国藩,苏轼,王阳明}.md 3 persona agent 详细设计 ×3
│ ├── M0.2-{persona}-语料.yaml 3 persona 精选语料库(180 条 / HIGH 80%)
│ └── M0.3-主持人设计.md 主持人 / 编排器 v0.2(2 轮辩论版)
│
├── 实施/ Backend Python
│ ├── server.py FastAPI + SSE 入口
│ ├── orchestrator.py 主流程编排
│ ├── moderator.py 主持人逻辑 + 4 内置 prompt
│ ├── router.py Router 入口
│ ├── agents.py BaseAgent + 3 persona class
│ ├── corpus_loader.py 语料 yaml 加载 + 引文核验(防 LLM 编造)
│ ├── orchestrator_test.py M0.5 5 困境实测脚本
│ ├── router_test.py M0.1 Router 单元测试
│ ├── test_cases.yaml 15 个 Router 测试用例
│ ├── prompts/ 4 个 system prompt(Router + 3 persona)
│ ├── outputs/ 实测产物 markdown(M0.5 真实跑通的 4 困境)
│ └── .env.example 环境变量模板
│
├── ui/ Frontend 单页
│ ├── index.html 主入口(Hero / Input / Live / Synthesis 4 view)
│ ├── css/custom.css 印章 / 进度条 / 对话气泡 / 流式打字
│ └── js/data.js 4 个 demo case 真实数据
│
├── 三人语料/README.md 语料调研索引(原始下载已剔除)
├── EP01-三贤议产品介绍.md 视频脚本 / 演讲稿
├── README.md 本文档
├── LICENSE MIT
└── .gitignore
pip install fastapi uvicorn openai anthropic pyyaml python-dotenv复制 .env.example 为 .env,填一个 LLM provider 的 key:
cd 实施
cp .env.example .env
# 编辑 .env,二选一:
# A. MiniMax(推荐,性价比高):sk-cp-...
# B. Anthropic Claude:sk-ant-api03-...支持的 provider:
- MiniMax-M2.7(默认,¥0.06-0.10/次完整辩论,6 分钟)
- Anthropic Claude(Opus 4.7 / Sonnet 4.6,~¥3-5/次,1-2 分钟)
- GLM(智谱,原生 Anthropic API 兼容,可直接换 base_url)
cd 实施
python3 server.py # 监听 http://localhost:5001# 任选其一:
npx http-server ui -p 5500 --cors -s
# 或:
cd ui && python3 -m http.server 5500打开浏览器:http://localhost:5500
UI 首页 4 个真实案例卡片直接点击 → 跳到 synthesis 页看预生成结果(来自 M0.5 实测产物)。无需启 backend。
| 阶段 | 模块 | 状态 |
|---|---|---|
| M0.1 | Router 设计 + 实施 + 10/10 测试 | ✅ |
| M0.2 | 三 agent 设计骨架 | ✅ |
| M0.2.5 | 三人语料萃取(180 条 / HIGH 80%) | ✅ |
| M0.3 | 主持人设计 v0.2(2 轮深度辩论) | ✅ |
| M0.4 | 编排脚本(含引文打假) | ✅ |
| M0.5 | 5 困境实测 | ✅ |
| M1.1 | UI 4 页面(Hero / Input / Live / Synthesis) | ✅ |
| M1.2 | 后端 SSE + 真实 LLM 流式接通 | ✅ |
阶段 1 之后作者不再继续维护——本仓库为完整历史归档,欢迎任何 fork / 改造 / 商用。
- Backend: FastAPI + uvicorn + asyncio + Python 3.9+
- LLM Provider: MiniMax-M2.7(默认)/ Anthropic Claude / GLM
- Frontend: 单 HTML + Tailwind CDN v4 + Alpine.js v3 + marked.js + LXGW WenKai webfont
- 流式: Server-Sent Events(POST + ReadableStream + TextDecoder)
- 辩论: 5 stage 串行(首发 / R1 反驳 / R1 回应 / R2 反驳 / R2 回应),每 stage 3 次并行
- 共 16 次 LLM 调用 / 单次完整辩论
本项目踩过的坑,都已固化在 设计文档/ 和 prompt 里:
- 真·多 agent ≠ Subagent + prompt 切换——独立上下文 + 独立 prompt + 独立语料才有真冲突
- 第二轮反驳必须能引用对方第一轮让步——这才有"真辩论"感(连续追打 vs 换边对比的设计在 M0.3 § 6.2)
- 主持人不调和分歧——保留 3 人真实立场让用户自选,比给"折中方案"更有价值
- 不给客户长期计划——只给"今晚 / 明早 / 这一两日"近期可执行小事,禁"30/60/90 天"
- LLM 严禁编造用户未提及细节——双层禁忌(agent prompt + synthesizer prompt),防"贴模板"幻觉
- agent 称客户用"汝/兄/君"——古雅端庄,避免"用户"二字的工具感
- 历史人物素材:参考公开版本的《曾国藩家书》《传习录》《苏轼诗词全集》《东坡志林》《林语堂苏东坡传》——本仓库
三人语料/README.md列了调研用的开源 GitHub 仓库索引(原始 dump 因版权原因未一并上传) - 配色 / 视觉系统:印章 + 朱砂 + 暗金的"东方水墨 + 现代 SaaS"调性灵感来自抖音内容创作者社群
- 字体:LXGW WenKai 霞鹜文楷(开源中文楷体)
- 架构对标:调研过 GitHub 上 superman、TopPerson、claude-marketplace 等多 agent 项目(详见
设计文档/00-总开发大纲.md)
MIT — 完全开源,可商用,可改造,无任何限制。
- 抖音 / B 站 / 视频号 / 小红书:@硅基世纪(Claude Code 深度玩家 + AI 内容创作者)
- 项目状态:已完成阶段 1,不再继续维护。本仓库为完整历史归档。
A real multi-agent debate product — not a single GPT switching prompts to fake multiple roles, but 3 independent agents:
- Each sage = independent LLM instance + independent system prompt + independent curated corpus
- You input a career dilemma → 3 sages give their initial stances → cross-question and debate twice (each speaks 5 times) → moderator preserves their real disagreements → throws back to you to choose
No standard answers — the core value is letting you watch 3 people really argue for you, then pick.
| Sage | Type | Core | Gives you |
|---|---|---|---|
| Zeng Guofan | The Diligent | Honesty / Daily practice / Self-discipline | A ruler measuring how much hard work you've actually put in |
| Su Shi | The Optimist | Settling / Detachment / Reframing | Someone exiled three times who won't let you fake "I'm over it" |
| Wang Yangming | The Awakener | Innate knowledge / Unity of action and intent | A mirror reflecting what you hide in your "dilemma" |
Three sages cover action / mindset / cognition — any dilemma will pull them into different corners.
5 sequential stages × 3 parallel calls per stage = 16 LLM calls per full debate:
Stage 0 3 sages first opinions (parallel)
Stage 1 R1 rebuttals (clockwise) (parallel)
Stage 2 R1 replies (yielded/held) (parallel)
Stage 3 R2 rebuttals (counterclockwise, citing R1 yielding) (parallel)
Stage 4 R2 replies (parallel)
Stage 5 Moderator synthesis (consensus + disagreement + tonight action)
See 设计文档/M0.3-主持人设计.md for full design.
# Install
pip install fastapi uvicorn openai anthropic pyyaml python-dotenv
# Config
cd 实施
cp .env.example .env # Fill MiniMax or Anthropic API key
# Backend
python3 server.py # http://localhost:5001
# Frontend
npx http-server ../ui -p 5500 --cors -s
open http://localhost:5500Phases 0 + 1 complete. Author no longer actively maintains. This repo is a full historical archive — fork, modify, commercialize, no restrictions.