#ai-agent
37 篇文章Claude Code 的 prompt-audit:先删掉过期指令,再让 agent 写代码
部署已经迁移,agent 却还在照旧文档跑命令?用 Claude Code 的指令审计找出失效路径、冲突规则和旧流程,再用真实构建验证修改。
别把纠错都塞进 AGENTS.md:给 agent 记忆做一条晋升流水线
把临时发现、重复纠错和硬性约束分开管理,避免项目指令逐渐膨胀,最后谁也不遵守。
权限拒绝以后,别让 agent 原地重试:用 PermissionDenied 给出可执行改道
自动模式拒绝工具调用时,最浪费时间的不是那次拒绝,而是 agent 带着同一条命令反复撞墙。把拒绝原因变成受约束的改道提示,再决定哪些场景允许重试。
别让并行 agent 各自绿灯:用 PostToolBatch 收口集成验收
一次并行调用五件事,单点都成功但合起来不成立。Claude Code 在整批工具调用结算后留了 PostToolBatch 触发点,用它做批后集成检查,再用 Stop 把没验证的改动拦回去。
别让 agent 用 grep 猜符号:给 Claude Code 装上语言服务器
代码导航从字符串匹配换成符号图:编辑后先拿诊断,再按符号跳转。三步接入、CLAUDE.md 里的分工写法,以及实测出来的 token 变化。
别让 agent 每改一行都跑全量测试:按变更路由 Hook 验收
把 agent 的文件改动映射到最小验证命令。先用 Hook 识别路径,再跑对应检查,最后用全量测试守住合并门。
把 AGENTS.md 写成分区合同:让代理按目录收窄改动
别再把一仓库规则塞进根目录。用 AGENTS.md 的层级覆盖,把可改文件、验收命令和升级条件贴在代码旁边,让 agent 的默认动作变得可审计。
退出码 2 才是门:hook 阻断信号的按事件契约
exit 1 表示失败是 Unix 常识,放进 hook 里却等于把门开着。把拦截信号按事件对齐,再用一台本地自检台证明它真的拦得住。
钩子装上了不等于生效:把 PreToolUse 收窄并审计
拦截型 hook 的价值取决于它有没有真的触发。用 if 条件收窄触发面,用信任规则和调试日志证明它确实在跑。
把 MCP server 的会话删掉:无状态规范迁移清单
2026-07-28 这版 MCP 把会话从核心请求路径里拿掉了。把状态搬进显式 handle、用多轮往返换掉服务端发起的请求、给网关补上头部路由,再按清单逐条验收。
把验收条件塞进路径:给编码代理一份不会串台的合同
全仓库 AGENTS.md 很快会变成一锅粥。把稳定约束留在根目录,把框架和目录差异下沉到路径级指令,再让测试夹具证明它们真的被读取。
把工具清单当权限边界:VS Code 自定义代理的改动约束
自定义代理值钱的地方不是人格设定,而是工具白名单。按角色拆开 tools、agents 和 handoffs,越权就从语气问题变成了配置问题;但白名单是否强制执行,取决于你用哪个 harness。
Copilot hook 的 stdout 是契约:别让拦截静默失效
Copilot hook 的判定完全依赖 stdout:progress 行被剥掉,剩下的行拼成单个 JSON 文档再解析。一次 echo 调试、一个写错的正则,都能让闸门无声消失。
把编排写进脚本:动态工作流一次跑上百个子代理,先管住三件事
子代理派到几十个就乱了。Claude Code 的动态工作流把计划和分支写进脚本,代价是并发、恢复和成本都得你自己管。这里是我跑大规模扇出前会先看的几条硬边界。
让子代理带着技能上岗:拆开计划、实现和验收的上下文
别给所有子代理塞同一套长提示。用预加载 Skill 定义角色,用文件契约交接,把计划、实现和验收拆成可复查的流水线。
无人值守的 agent,先钉死隔离边界和出网白名单
让 coding agent 少问甚至不问的前提不是提示词,而是隔离边界和出网白名单。用官方 dev container 参考配置搭一套默认拒绝出网的容器:非 root 用户、ipset 白名单、托管设置禁掉 bypass,再逐条排查会悄悄吃掉隔离的四个配置。
别让工具吃掉上下文:MCP 工具的返回值预算设计
工具注册和返回值都在花 agent 的上下文。按「首块必须自包含」重写 MCP 工具:默认小 limit、显式截断标记、可切换的 concise 返回。
让 coding agent 自己暴露错误:用 Hook 做最短反馈回路
把格式化、定向测试和失败摘要挂到 agent 的工具调用之后,让错误在下一步决策前出现,而不是堆到提交前。
给 coding agent 划职责边界:用只读侦察和验收闸门减少返工
把复杂改动拆成侦察、实施、验收三段:先用只读 agent 收敛证据,再让执行 agent 改动,最后用独立验证关卡决定是否交付。
省 token 不等于省钱:给 agent 成本做一次 cache 感知核算
压掉 38% 工具输出 token,账单反而涨 6.8%。把成本拆成输入、缓存写、缓存读、输出四格,再加上空闲驱逐这条暗线,才能看清 coding agent 的钱花在哪。
别靠祈祷触发:给 agent Skill 写一套路由回归测试
Skill 的 description 实际上是 agent 的路由规则。把真实任务写成应触发与不应触发的测试集,再记录误触发和漏触发,才能让 Skill 库越长越可靠。
把子代理路由写成生产规则
description 是派单系统的路由表,工具列表是能力边界,per-agent hook 是审计员。四件事都固化下来,委托才从模型的即兴发挥变成可审查的常量。
给 agent 的 diff 设预算:把验收变成自动闸门
agent 一小时能产出人类一天都审不完的 diff。与其事后在巨型 PR 里找问题,不如把变更大小、测试和破坏性改动写进验收清单,再用 hook 在它声称完成的那一刻强制检查。
给并行 agent 一人一个 worktree:让子代理真的敢同时改代码
子代理并行时最怕互相踩 diff:两个 agent 同时改同一个工作目录,后写的一方静默覆盖先写的一方。用 isolation: worktree 让每个写代码的子代理落在独立 git worktree 里,并行才真正成立。
别让子代理替你拍板:给 Agent Team 建立证据交接协议
把子代理输出从一段“看起来合理”的总结,改造成主代理能复查、能执行、能拒绝的证据包。
别把流程塞进 AGENTS.md:用 Skills 给 coding agent 做可复用工序
把稳定约束留在 AGENTS.md,把按需展开的复杂流程封装为 Skills,再以只读子代理隔离噪声,给 coding agent 一套能长期维护的操作系统。
长任务不失控:用 ExecPlan 驱动 coding agent
把长任务的目标、进度、决策和验收写进一份持续更新的 ExecPlan,让 agent 可以中断后继续,也让人能随时审计它到底做了什么。
Hook 不止能挡:把 agent 变成可编程流水线
PreToolUse 拦截只是 hook 的入门用法。上下文注入、环境同步、通知、后台测试、审计日志,同一套事件总线把 coding agent 变成确定性的自动化流水线,而且 Claude Code、VS Code、Copilot 共用同一份 JSON 配置。
把 agent 指令拆成目录规则:减少上下文冲突的实战
把全局原则、目录约束和任务卡分层放置,让 coding agent 在正确的文件范围内拿到正确的规则,减少冲突和无效上下文。
给编码 agent 一份真正的项目说明书:把 AGENTS.md 写到能用
AGENTS.md 每次会话都会进上下文,是性价比最高的 agent 提效文件。命令先行、短而具体、边界明确、按目录嵌套,四条规则让规则真正被遵守。
把并行 agent 收进一个可合并的交付面:子代理边界实战
并行不是多开几个 agent。给每个子代理缩小任务、工具和写入面,再让主代理做唯一集成者,才能避免互相覆盖。
Hook 即闸门:把 agent 行为焊死在流程里
CLAUDE.md 是建议,hook 是规定。从 stdin JSON 协议、退出码语义到 prompt/agent 型 hook,把编码 agent 的每个动作变成可拦截、可验证、可审计的确定性流程。
给 agent 一个可验证的终点:/goal 完成条件实战
把完成条件写成可验证的句子,agent 自己循环到满足为止。终点、证据、边界、上限,缺一个就烧 token。
把 agent 规则变成验收:Hooks、AGENTS.md 与交付闸门
别把项目规范只写在提示词里。用持久规则、命令闸门和可追溯的验收结果,压住 coding agent 的重复性失误。
别把 agent 当成并发槽位:并行开发要先切边界
让多个 coding agent 同时干活,最难的不是开更多窗口,而是设计它们交付什么、谁能改哪里、结果怎样合并。
Spec Kit 1.0:先写规格,再让 agent 动手
GitHub 开源的 Spec Kit 满一岁并发布 1.0.0。constitution、converge 循环和 [NEEDS CLARIFICATION] 标记,把 Vibe Coding 从碰运气变成可验收的流程。
今日 Vibe Coding:跨会话协作时,先交接“失败过什么”
别让下一个 agent 重走已经失败的路径。一个短小的交接文件,往往比更长的上下文更有用。