ADHD:用并行发散思考修复 AI 编码代理的过早收敛
posts posts 2026-08-19T03:26:14+08:00ADHD 是一个面向编码 Agent 的 skill,用并行隔离的发散思考加独立批判机制修复自回归推理的过早收敛问题,在创意与跨学科任务上对比单次提问显著提升方案广度与陷阱识别能力。技术笔记AI Agent, 推理, Claude Code, 开源ADHD:用并行发散思考修复 AI 编码代理的过早收敛
当你在 Claude Code 里问"给我几个设计方案",它给出的往往是一组看起来很合理、实则都困在同一条思路里的答案。问题不在提示词写得不够好,而在推理架构本身:自回归模型会锚定它先说的那个想法。ADHD 把这个问题当作架构缺陷而不是提示词缺陷来处理——这篇文章讲清楚它怎么做的、代价在哪、什么时候值得用。
一分钟总览
ADHD 的全称是 Parallel Divergent Ideation(并行发散思考),出自作者的同名 preprint,是 Udit Akhouri 为编码 Agent 写的一个 skill,基于 Claude 与 Codex Agent SDK 构建。核心机制是两阶段循环:
Diverge(发散): 选 N 个认知框架,并行发起 N 个互相隔离的 Agent 调用
每个只看到"问题 + 一个框架的视角提示",且系统提示(system prompt)禁止评估
——分支间互不可见,没有锚定
Focus(聚焦): 独立批判调用,给每个想法打 新颖性/可行性/契合度 分
标记陷阱并给原因,按底层角度聚类,把 Top-K 幸存者深化成带风险与第一步的草图生成与批判是机械分离的——两个独立的 LLM 调用、相反的系统提示,而不是在一条提示词里承诺"请批判性思考"。批判本身也是模型输出,把"产出想法"和"审视想法"放进同一次推理,后者很容易被前者带偏。
安装一行命令:npx skills add UditAkhourii/adhd,兼容 Claude Code、Cursor、Codex、Cline、Gemini CLI、Windsurf 等 50 多种 Agent。
它针对的架构问题
这个 skill 针对的是两条主流推理路径的共性缺陷:线性 Chain-of-Thought(CoT,思维链)锚定它先输出的内容;Tree-of-Thought(ToT,思维树)扩大了搜索空间,但所有分支仍共享同一份上下文,锚定会跨分支持续存在。ADHD 的答案是在发散阶段做真正的隔离:
- 每个分支是一次独立的 Claude Agent SDK
query()调用,零共享上下文 - 每个分支被一个刻意扭曲的认知框架驱动——内置 15 个框架,横跨生物、物流、游戏设计、市场等领域
- 独立的批判过程负责打分、聚类、剪枝陷阱、深化幸存者
“刻意扭曲"是关键。正常的思考会收敛到最稳妥的角度;这里故意给每个分支一个偏离主流的视角——比如监管者、蚁群、凌晨三点被叫醒的值班工程师——逼它看到默认视角看不到的选项。三个参数控制发散宽度与聚焦深度,默认 5 个分支、深化 3 个幸存者:
--frames 3 一次用几个认知框架(发散宽度)
--ideas 8 每个框架产出几个想法
--top 2 最终保留深化几个幸存者(聚焦深度)适合的场景:设计决策、模糊调试、命名、API 表面设计、策略,以及任何形如"给我几个思路"的提问。
同一道题的两种答案
README 给出一个评估问题:“我们有个调用 LLM 的 CLI 有时会挂起 90 秒,设计正确的重试/超时/UX 策略。”
基线(单次提问)走通了四个教科书模式:分阶段超时、快速失败 + 指数退避、hedged 并行请求(同一请求发多份、取最先返回)、流式 keepalive,最后给一个 15s/30s/90s 的混合建议。合理、专业,但没有点名任何陷阱,也没有质疑"等待然后重试同一个模型"这个框架本身。
ADHD 展开 6 个隔离框架,浮出 30+ 个想法,跨经济激励、异步控制面、游戏化、感知扭曲、集体智能、冗余竞赛六个聚类,然后:
- 非显而易见的选点:“rage-quit = 一键中止 + 切换到更便宜/更快的模型”——一个等待越久脉搏越热的按钮,一次点击取消并重新提交给 Haiku 级别模型。这是基线从未考虑过的关键点:慢模型可能根本不是这个提示词该用的模型。
- 附带短名单:30s 时侦察式 fork 到备选端点;把 CLI 守护进程化并带 ticket ID;并发跑 3 个 LLM 副本、缓存胜者。
- 标记 20 个陷阱并各附一行原因——包括"反向流式 token"和"耐心 token 计费"这类看起来很可爱、实则浪费工程时间的想法。
独立 LLM 评审对这道题的打分:广度 9 vs 6、新颖性 8 vs 3、陷阱检测约 8 vs 约 2。
实测数据
这个 benchmark 在测什么,要先说清楚:它测的不是解码质量或代码正确性,而是开放式工程问题上的方案探索能力。项目给出 6 个开放式工程问题的平均分对比(0-10,ADHD vs 单次基线),由独立 LLM 以怀疑的资深工程师提示词评判,A/B 顺序随机化,评测运行于 2026-05-25:
| 维度 | ADHD | 基线 | 差距 |
|---|---|---|---|
| 广度 | 9.00 | 4.83 | +4.17 |
| 新颖性 | 7.83 | 2.67 | +5.17 |
| 陷阱检测 | 9.50 | 1.83 | +7.67 |
| 可执行性 | 9.50 | 6.50 | +3.00 |
| 构建者实用性 | 7.67 | 6.83 | +0.83 |
6 个问题上 ADHD 赢下 5 个,最大差距出现在陷阱检测——基线几乎从不点名"看起来诱人、实则会翻车"的想法,这正是"批判与生成分离"的机制收益。这些数字能推出什么、推不出什么,项目在评测文档里自己列了四条局限:
- 同模型判分:评审与被评审是同一模型家族,自带熟悉性偏差;跨模型判分仍在路线图上。
- 样本很小:只有 6 个问题,且全是工程向的。
- 规模代差:评测跑在 K=5 分支上,而学术界的多样性研究普遍在 K=100 规模。
- 反例未被回避:一项受控的 CHI 2025 研究发现,在人类设计师 + LLM 问题重构场景下收益不显著;ADHD 是 LLM 对 LLM,语境不同,但这是坦诚的负面证据。
第三方也有独立验证:开发者 Shichinomiya 做了一次盲评基准(2 个问题,LLM 评审,A/B 位置互换),ADHD 两题全胜,新颖性 4.5→9.0、陷阱检测 5.0→9.0,代价是约 2.3 倍耗时和约 1.9 倍输出量。这组数字可以作为谈成本时的参照。
成本结构比调用次数更值得看。官方文档给的账是:默认一次运行约 10 次 LLM 调用(5 个发散分支 + 1 次评分 + 1 次聚类 + 3 次深化),但真正的大头是每个分支都要完整重载一遍基础上下文——你的 CLAUDE.md、状态文件、会话里的工具上下文。假设基础上下文 26K token,5 个分支在任何想法产出之前就先烧掉约 130K token。
所以独立 CLI/库形态(分支只带问题与框架提示)成本温和;在 Claude Code 会话里以 skill 形态运行时,开销随会话基础上下文线性上涨。官方经验法则是"花几美分到几美元,扩宽一个高风险决策”,并建议按自己的分支数和上下文算一遍,不要只记单一数字。
收益集中在广度、新颖性和陷阱检测三项,换来的是实打实的时间和 token。不是所有任务都值得付这个价——对具体问题,最好用同一模型自己跑一遍 ADHD 与单次基线的对比,不要无条件相信榜单数字。
它怎么接入你的 Agent
npx skills add UditAkhourii/adhd # 自动检测你的 Agent,加 -g 全局安装然后在 Claude Code 里显式调用 /adhd "your problem",或让它按意图自动触发(brainstorm、开放式设计、架构、命名、“give me a few ways to” 这类提问会命中)。CLI 与库两种形态不依赖 Agent 宿主;CLI 认证读环境变量 ANTHROPIC_API_KEY,或直接继承本地 Claude Code 的登录态。
adhd "name this function" --frames 3 --ideas 8 --top 2import { run, renderText } from "adhd-agent";
const result = await run({
problem: "How should we shard this queue under bursty load?",
framesPerRun: 5,
topK: 3,
});
console.log(renderText(result));
// result.shortlist · result.nonObviousPick · result.traps · result.deepened · result.clusters
生态信号
官方 README 称已有 17+ 个项目正式集成 ADHD(ADOPTERS 表当前收录 16 个):repowire 第一个把它移植到自己的 mesh-orchestrator 原语(PR #313 合并,随默认编排模板分发)、mstack 把它 vendored 进插件市场作为 think 插件、zk-flow-oss 把 IDEATION_FRAMES 前置于批判工作流以削弱锚定。han(testdouble)用 11 个来源、8 轮验证做了一份循证研究评审,发现的问题被开放地记为上游 issue #16–#18。The New Stack 也为它做过专题报道。整体处于"有人认真接手、也有人在挑刺迭代"的早期阶段——信号积极,但离成熟共识还早。
适用边界
- 适合:设计决策、模糊调试、命名、API 设计、迁移与重构规划、策略,以及需要"多个方案 + 识别坑"的创意/跨学科工作。
- 不适合:Google 一下就有答案的确定性问题、已知根因的 bug 修复、单正确答案任务;内循环、键盘级延迟场景;成本敏感且收益覆盖不了开销的日常调用。
- 采用顺序建议:先在 1 个真实问题上用单次基线跑一遍,记住它漏掉什么;再装 ADHD 跑同题,对比是否有质的补充。若你的工作质量取决于"有没有漏掉某个角度",多付的 token 账通常划算。
小结论
ADHD 的贡献不是又一个"更聪明的提示词",而是把发散-批判变成一种机械强制、互相隔离的架构,直接回应自回归推理"先入为主"的结构性缺陷。代价也明码标价:时间和 token 换广度与陷阱识别。如果你的工作是"从一堆选项里找出真正好的那个",装上它跑一次同题对比,比空谈"要不要发散思考"更有说服力。
参与讨论
使用 GitHub 登录。欢迎补充事实、异议与实践。
讨论暂时无法加载。