liangyi

agent
Security Audit
Warn
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 8 GitHub stars
Code Pass
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

One idea, two opposing expert views, one synthesized decision. A Claude Code workflow for adversarial product development — inspired by the I Ching.

README.md

两仪 · Liangyi

一念生两仪,两仪成决策。 AI 产品开发工作流:在关键决策点用两个结构性不同的 AI 产出对抗性输出,由人处理张力并做最终决策。

它对抗的是一件具体的事——AI 悄悄溶解掉人的独立判断。不是让流程崩掉,而是让流程顺利跑完,只是跑出来的不是你要的。

在线体验 → (部署后填链接) 把你的想法输进去,看它走完全部 13 步。

English


它解决什么

一个人拿着一个想法去问 AI,AI 会顺着他说。再问一次,还是顺着说。三轮之后方案很漂亮,但里面没有一处被认真反对过——方案的边界是被 AI 的顺从画出来的,不是被人的判断画出来的。

两仪把这件事拆开:出方案的和批判的必须是不同坐标的模型,四轮批判来自四个新开的窗口,每一轮只处理一条,最后由人(或规则)判「这还是我想要的吗」。

快速开始

pip install -r requirements.txt
cp .env.example .env        # 填四个 key:OpenRouter / DeepSeek / Moonshot / Zhipu
python3 -m engine.run --check                              # 预检:硬规则 + provider
python3 -m engine.run -s scenarios/what-to-wear.yaml       # 跑一条完整的链

跑完看结果:

python3 -m engine.inspect runs/<运行目录>                 # 每步谁在跑、花了多少
python3 -m engine.inspect runs/<运行目录> --diff idea-v1.md idea-v5.md

两个档位:--mode auto 全自动一次不停;--mode hitl 在两个边界决策点停下来问人,每处给两份旗舰模型的建议。

在线入口本地起:python3 web/server.py,然后打开 http://127.0.0.1:8765

十三步

P0    忠实精炼          把原始想法精炼一遍,不改逻辑、不扩展、不质疑
P1.0  生成对抗角色      两个结构性对立的专家角色,带假对立检测
P1A   专家 A 出方案     ┐ 互不可见,坐标不同
P1B   专家 B 出方案     ┘
P1.4  融合成 v1         执笔窗口合成单一立场

P2A   投资人批判        市场与商业逻辑          → 2A-fix 改出 v2
P2B   零上下文单盲复审   只拿到正文的陌生读者    → 2B-fix 改出 v3
P2C   知情复审          对照 v1 与 v3 查方向漂移 → 2C-rollback 回退,改出 v4
P2D   拆台专家          只攻前提,不挑细节      → 2D-fix 分级判定,改出 v5

批判步和修改步交替,每一次批判来自一个新开的、坐标不同的窗口;每一次修改都由同一个执笔窗口完成——分歧在审查环节,不在修改环节,否则方案会变成多个 AI 的拼贴。

最后一步给每条拆台论据分级(打不打前提 × 具体性高不高),按规则走四种收场之一:

收场 条件
产出 v5 没有致命论据,方向站得住
回 P1 重做 两条以上致命论据,方向被推翻,整链重跑
回 P2 重压 大部分批判打前提但没被证死,成品当新初稿只重跑批判
结构性死锁 第二轮仍撞同一堵墙,停下出报告

最多两轮、单链 $3 封顶。

为什么是这几个模型

选型分两件事判:坐标判不判得了(硬规则)、能力够不够用

底模坐标两个维度。维度 A · 冲突偏向:A1 规范优先(有一份独立于任务的成文规范压过任务——Claude、Gemini)/ A2 权限优先(规范是「谁说了算」的权限链——GPT)/ A3 任务优先(没有独立规范层,奖励全部来自任务完成度——DeepSeek、Kimi、GLM)。维度 B · 语料文化:B1 英文母语 / B2 中文母语 / B3 跨文化双核。

后训练目标未公开的厂商不进入任何组合(Qwen、豆包、MiniMax)——手上有可用的 key 也不用,这是自我约束的证明。

窗口 默认模型 坐标 承担
执笔 claude-sonnet-5 A1·B1 写初版并执行全部修改
专家 A claude-sonnet-5 A1·B1 P0 精炼、P1 出方案
专家 B deepseek-v4-pro A3·B3 独立出方案,看不到 A
投资人批判 claude-sonnet-5 A1·B1 新开窗口,没有作者包袱
单盲复审 glm-5.3 A3·B2 零上下文,只收方案正文
知情复审 claude-sonnet-5 A1·B1 对照 v1 与 v3
拆台 deepseek-v4-pro A3·B3 必须由任务优先坐标承担——有规范层的底模会在最关键那一刀上把攻击软化掉

默认:Claude × 4 + DeepSeek × 2 + GLM × 1。跨维度是硬规则,具体模型可替换。 在线演示用的是同结构的便宜档:GPT × 4 + DeepSeek Flash × 2 + GLM Flash × 1,一条链实测 8–10 分钟、$0.07–0.09。

六条核心机制

  1. 四轴 divergence —— 任何一对窗口都应在 AI 身份、角色、上下文、范围四个维度不同
  2. P2 链跨底模坐标至少一维 —— 同坐标 = 假覆盖。代码在开跑前检查,不过不开跑
  3. 单盲 = 零上下文 —— 给了背景它就开始猜意图。窗口主动拒绝任何注入历史的尝试
  4. 作者 ≠ 批判者 —— 执笔窗口负责所有修改,批判和复审各自新开
  5. Linear 链路防认知过载 —— 一次处理一条批判,四条齐上会逼人同时持有四个框架
  6. 知情复审查的是漂移,不是错漏 —— 细节错漏属于 2A;它问的是响应完前两轮后有没有从最初定位偏移

项目结构

engine/          13 步链条的可运行实现:编排、窗口隔离、路由、检测器、trace
  prompts/       每一步的提示词,在线入口共用这同一批文件
  test_guarantees.py   76 条结构保证测试
web/             在线入口:一步一个无状态请求,运行目录整个来回传
scenarios/       场景文件(seed + 可选预写角色)
docs/            方法论本体、评测方法、实测案例
retrospective/   一次回溯对照用的封存判据
experiments/     2026-04 到 05 的六次手工实验档案

深一层的材料

想知道
方法论本体、判据、红线 docs/liangyi-workflow-refined.md
拿一个真实项目倒回去重跑的对照 docs/case-voyageguard.md
凭什么信上面那个案例的数字 docs/evaluation.md
引擎每一步谁在跑、两个档位差在哪 engine/PIPELINE.md
十六条方法论合规检验,含失败项 engine/VALIDATION.md
全自动变种为什么是实验工具不是产品形态 docs/liangyi-auto-variant.md

验到了什么、没验到什么

验到了:链条在 13 条真实运行上跑通(含一次完整回溯对照);76 条结构保证测试锁住机制而不是措辞;循环的四条出口用真实判定书离线驱动过。

没验到:四条出口没有一次真实运行走完第二轮;判定与复判同属一家模型,跨厂商复核没做;回溯案例只有一个项目、跑一次。

还有一条要写在明处:拆台那一步的判定不稳定。同一个场景、同一份待判文档,三次运行分别判出「打中前提 5 条 / 致命 0」「5 / 2」「0 / 0」。整条链上唯一能推翻方向的判断点,自己就在骰子上。细节见 docs/evaluation.md

作者

夏文博 · AI 产品经理 · 方法论建立于 2026-04-18 一整天的讨论。MIT License。

Reviews (0)

No results found