1. 为什么你的 AI 助手总在绕弯子:i-have-adhd 插件到底解决什么问题
如果你每天都在用 Claude Code 或 Codex 写代码,大概率遇到过这种场景:你问一个很具体的报错,它先来一句「这是个好问题」,然后花三段话复述你的问题背景,再讲一遍这个模块的设计哲学,最后才慢悠悠给出修改建议,末尾还要补一句「希望这对你有帮助,需要我进一步展开吗」。你真正想要的那一行命令,被埋在两百字客套话中间。
这不是模型能力不行,而是默认输出风格的问题。大模型的训练数据里充满了礼貌、铺垫、免责声明,这些在聊天场景里没问题,但在编码场景里就是纯噪音。i-have-adhd 这个开源插件就是冲着这个痛点来的:它不改模型权重,只在输出层加一套规则,强制助手「先给动作,再给解释」,把回答压缩成可执行指令。
它适合谁?三类人最明显。第一类是每天高频和编码助手对话的开发者,你不需要寒暄,只需要下一步做什么。第二类是做 Code Review 或调试的人,你要的是问题定位和修复步骤,不是背景科普。第三类是团队里要把 AI 输出接进工作流的人,格式稳定比文采重要。反过来说,如果你在做教学、写文档、需要详细推导,这个插件反而会帮倒忙,后面我会讲怎么临时关掉它。
我实测下来,同一个问题开启前后的差异非常直观。开启前回答像客服,开启后回答像坐在你旁边的同事,第一句话就是「运行这条命令」。这篇文章我会把安装、TaoToken 统一 Key 接入、配置片段、验证方法和常见报错全部走一遍,你可以直接照着复现。
2. TaoToken 统一 Key 接入:让 Claude Code 和 Codex 共用一条 API 通道
在装插件之前,先把底层通道理顺。Claude Code、Codex 这类工具默认各自走各自的鉴权,你要维护多套 Key、多个 Base URL,切换工具时容易搞混。TaoToken 的思路是提供一个统一的 API 入口,你拿一个 Key,就能在多个编码助手里复用同一套模型通道,配置集中、排障也集中。
先说清楚它是什么:TaoToken 是一个面向开发者的模型 API 聚合服务,官网在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 入口是 https://taotoken.net/api 。你注册后在控制台生成 API Key,然后把它填进各个工具的配置里。它不替代你的编辑器,也不替代 Claude Code 本身,只是把「模型请求往哪发、用哪个 Key」这件事统一了。
为什么这件事和 i-have-adhd 有关?因为插件是挂在助手上的,助手要能正常发请求,插件规则才有机会生效。很多人装完插件发现没反应,排查半天,最后发现是底层 Key 没配对、请求根本没通。所以顺序应该是:先让助手能正常对话,再装插件改风格。
具体操作分三步。第一步,去控制台创建 Key,地址是 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite ,生成后复制保存,页面只显示一次。第二步,确认你要用的模型 ID,不同工具对模型名的写法略有差异,建议先在模型对话页试一下,地址 https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite ,能正常出结果再往工具里填。第三步,把 Base URL 和 Key 写进对应工具的配置,Claude Code 走环境变量或 settings,Codex 走 auth.json,下面一节给完整片段。
这里有个容易踩的坑:Base URL 到底带不带/v1。不同客户端要求不一样,Claude Code 的 Anthropic 兼容模式通常填到根路径,Codex 的 OpenAI 兼容模式有时需要带版本段。我的建议是先用文档里的示例值,报 404 再调整,不要凭感觉猜。接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite ,里面有各客户端的字段说明。
统一 Key 的另一个好处是额度可见。你在一个地方能看到所有工具的消耗,不用分别登录三个平台对账。对个人开发者来说,这省下的时间比省下的钱更值钱。
3. 可复制配置:Claude Code、Codex 与 i-have-adhd 三件套
这一节全是能直接抄的片段。核心原则是「三件套齐全」:Base URL、API Key、Model ID,缺一个都会连不上。下面按工具分开写。
先看 Claude Code 的环境变量方式。你可以写进 shell 配置,也可以写进项目级 settings。推荐用 settings 文件,团队协作时好同步:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "sk-你的TaoToken密钥", "ANTHROPIC_MODEL": "claude-sonnet-4-20250514" } }如果你用的是 Claude Code 的配置文件路径,一般放在~/.claude/settings.json,把上面这段合并进去即可。注意ANTHROPIC_AUTH_TOKEN填的是 TaoToken 控制台生成的 Key,不是 Anthropic 官方的。Model ID 按你实际能用的填,不确定就先在模型对话页验证。
再看 Codex 的auth.json。Codex 走 OpenAI 兼容协议,配置通常放在~/.codex/auth.json:
{ "OPENAI_API_KEY": "sk-你的TaoToken密钥", "OPENAI_BASE_URL": "https://taotoken.net/api", "model": "gpt-4o" }有些版本 Codex 读的是config.toml,那就写成 TOML:
[model] provider = "openai" name = "gpt-4o" [provider.openai] base_url = "https://taotoken.net/api" api_key = "sk-你的TaoToken密钥"两种格式二选一,看你本地 Codex 版本读哪个文件。判断方法很简单:改完启动,如果报鉴权错误就是没读到,检查文件名和路径。
底层通了之后装 i-have-adhd。Claude Code 用户:
claude plugin marketplace add ayghri/i-have-adhd claude plugin install i-have-adhd@i-have-adhd装完在对话里输入/i-have-adhd激活。想让它每个会话自动生效,加一个标记文件:
touch ~/.claude/.i-have-adhd-alwaysCodex 用户:
codex plugin marketplace add ayghri/i-have-adhd --ref main然后在对话里输入$i-have-adhd激活。Cursor、Cline 这类工具没有统一插件市场,按项目里的 INSTALL.md 手动把 SKILL.md 规则挂进去,本质就是把规则文本作为系统提示注入。
如果你用 CC Switch 管理多套配置,记得在切换后确认 Base URL 和 Key 是同一套,我见过切了配置但 Key 没跟着换,结果一直 401 的情况。Cline 的 MCP 配置里如果也走模型请求,同样要保证三件套一致。
4. 验证请求:用同一组 prompt 对比开启前后的输出风格
配置写完必须验证,不然你不知道是插件没生效还是请求没通。验证分两层:先确认请求能通,再确认风格变了。
第一层,发一句最简单的测试。在 Claude Code 里输入「列出当前目录的文件」,如果它能正常返回,说明底层通道没问题。如果报错,先别管插件,回到上一节检查三件套。这一步通过后,再输入/i-have-adhd激活插件。
第二层,用同一组 prompt 做前后对比。我建议准备三个典型问题:一个报错排查、一个代码修改、一个概念解释。分别在开启前和开启后各问一遍,把回答贴在一起看差异。
以报错排查为例,开启前你可能会得到这样的回答:
这个问题通常和依赖版本有关。让我先解释一下这个模块的工作原理,它主要负责……(此处省略两百字)……你可以尝试更新依赖,然后重新运行测试,如果还有问题欢迎继续问我。
开启后同一问题的回答会变成:
运行
npm install jsonwebtoken@latest,然后改src/auth.ts第 42 行,把verifyToken替换成下面的片段,最后跑npm test -- auth.spec.ts。如果还有失败,把第一行报错贴给我。
差别一目了然:第一句就是动作,没有铺垫,没有客套,结尾给的是具体的下一步而不是开放式邀请。这就是规则 1(以行动开头)、规则 3(以具体下一步结尾)、规则 10(无开场白无客套)在起作用。
验证时注意一个细节:插件生效是会话级的。你在当前会话激活,它管当前会话;开了.i-have-adhd-always标记,新会话也自动带上。如果你发现某个会话没生效,先确认标记文件在不在,再确认插件是否真的装上了,用claude plugin list之类的命令查一下。
还有一个判断技巧:看回答的第一句话。如果第一句是「这是个好问题」或者「让我想想」,说明规则没生效;如果第一句是动词开头的指令,说明生效了。这个判断比看整体长度更可靠,因为有些回答本身就该短,长度不能说明问题。
5. 常见报错排查:401、local proxy failed、reading choices 与 OAuth
这一节按真实报错来。你大概率会碰到下面几类,我按出现频率排。
第一类,401 鉴权失败。报错长这样:401 Unauthorized或invalid api key。原因通常是 Key 填错、Key 过期、或者 Base URL 和 Key 不是同一套。排查顺序:先去控制台确认 Key 还在有效期内,再检查配置文件里有没有多余空格或换行,最后确认 Base URL 没写错。特别注意复制 Key 时别把首尾的引号也复制进去。
第二类,local proxy failed或连接被拒。这类报错说明请求根本没发出去,通常是 Base URL 写错、端口不对、或者本地网络策略拦了。先确认 URL 拼写,再确认你的客户端是不是要求带/v1。如果之前配过别的代理工具,检查有没有残留的环境变量在干扰,比如HTTP_PROXY之类,清掉再试。
第三类,reading choices或响应解析失败。这个报错一般出现在 OpenAI 兼容协议下,说明返回的 JSON 结构和客户端预期不一致。常见原因是 Model ID 填了一个客户端不认识的模型,或者 Base URL 指向了 Anthropic 兼容端点却用 OpenAI 协议去解析。解决办法是把 Model ID 换成文档里明确支持的,并确认协议和端点匹配。
第四类,OAuth 相关报错。Claude Code 某些版本会走 OAuth 流程,如果你同时配了环境变量和 OAuth 登录,可能冲突。表现是反复弹登录或提示 token 无效。处理方式是二选一:要么用环境变量方式,清掉已登录的凭据;要么用 OAuth,不填ANTHROPIC_AUTH_TOKEN。别两套混用。
第五类,插件装了但没反应。这不是报错,但最让人抓狂。排查三步:确认插件在列表里、确认当前会话激活过、确认标记文件存在。如果都对了还是没变,可能是规则和当前任务冲突被覆盖了,比如你问的是「解释一下这段代码」,规则 6 允许展开详细说明,这时候回答变长是正常的,不是插件失效。
最后提醒一个高频坑:改完配置没重启客户端。很多工具是启动时读配置,你改了文件但进程还在用旧值。改完配置先退出再进,能省掉一半的无效排查。
6. 把直球风格接进你的日常工作流
装好之后,怎么用得更顺?给你几个实操建议。
第一,把 i-have-adhd 和 TaoToken 的 Coding Plan 搭配用。长期编码场景下,你需要的是稳定的通道加稳定的输出风格,两者都固定下来,每天的对话成本会明显下降。Coding Plan 的入口在 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite ,适合高频使用的开发者。
第二,学会临时关掉它。教学、写文档、做方案评审时,直球风格会漏掉必要的背景。这时候直接说「stop adhd mode」或者新开一个没激活的会话就行。规则本身也内置了覆盖条件,你明确要求「带我走一遍」,它会自动展开。
第三,按自己的习惯改规则。i-have-adhd 的核心是 SKILL.md,你 Fork 之后改那十条规则,就能定制自己的输出风格。比如你觉得「每轮重申状态」太啰嗦,删掉它;比如你想让所有命令都带注释,加一条。改完重新加载即可。
第四,把验证 prompt 存下来。我前面给的那三个典型问题,你可以存成一个文件,每次换配置或换工具时跑一遍,三十秒就能判断通道和风格是否都正常。这比凭感觉判断靠谱得多。
如果你还没生成 Key,现在可以去 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite 创建,然后回到第 3 节把配置抄进去。整套流程走下来大概十分钟,之后你每天和 AI 助手的对话都会少掉那些没用的铺垫。