要顺畅地与 AI 智能体协作,你需要了解什么?
这个话题太大了,我只能从自己的实践出发谈谈经验。
每次结果不如预期,问题往往不在 AI。多数时候是你自己的问题——你没把期望讲清楚,AI 自然没理解你的意思。AI 永远有耐心,而且完全照字面执行。不像我:没耐心、知识有限、还自以为是 😄。所以你得耐心、平静地跟它沟通,尽可能把话说得清楚、字面化。此外,了解 AI 智能体大致怎么工作也有帮助——技术上如此,你自己的具体配置更是如此。下面是我实际需要掌握的一份简短清单——再加上几条我走了弯路才学会的教训。
在我自己的项目里,原材料很简单:
Linux——所有这一切的开源底座,也是合理的起点。多年来它一直是我工作和个人使用的主力系统。Windows 只为了打游戏才留在硬盘上,好在四年前就彻底删掉了。
带 frontmatter 的 Markdown 自定义技能——主要是 YAML,内嵌 Python 脚本用于自动化——这是智能体能直接运行的代码。
YAML 工作流,用于 GitHub Actions——自动化真正运行的地方。
GitHub 来管理所有工作——代码和文章都在这里发布。
智能体知道你的历史记录
git init 把项目变成 Git 仓库,从那一刻起,智能体就能读取你的全部历史,也能回滚到任何一个节点。这件事的重要性比听起来大得多。因为历史都在,我不需要记住改了什么、什么时候改的——我可以直接问「这个文件改了什么,为什么改?」,或者说「把这里回滚到那次修改之前」,智能体会读日志然后动手。仓库替我记住一切;智能体只是负责读取的人。
一个意外:云端走在了我前面
这个月初,我搭了一个自动工作流来同步我的 GitHub 个人主页:GitHub Actions 直接在远端提交一个自动生成的 README。它带来的副作用把我打了个措手不及:我本地的副本比远端落后了一个提交。远端有一个我硬盘上从未有过的提交——我压根没想到会发生这种事。我的本能是 git pull,把这个差距「修复」掉。
相反,我停下来问了问这个差异到底意味着什么。答案是:机器会提交一个我从不手动编辑的文件,所以本地副本落后并不会影响我的工作——这种滞后是预期之中的,也是无害的。于是我在 AGENTS.md 里写了下来:不要为了让数字对上就去 git pull;这种偏差是设计使然,同步回来只会徒增噪音。这个教训不是「运行这条命令」,而是在对状态做出反应之前,先弄明白它为什么看起来不对。你需要了解什么
要懂 Linux——当 agent 弹出 cd、grep、awk、sed、diff 之类的命令时,你得知道发生了什么。要懂 Python 怎么运行,看到报错信息时怎么调试。要懂 Git——git add、git commit、git push,有时候还有 gh secret list;以及如何撤销更改,如何取消追踪未完成的产物。要懂 YAML 的格式和语法——你所依赖的工作流的全部配置面都在这里。Node.js?至少得能看懂一个失败的 npx test 吧。
要理解 AGENTS.md,知道怎么创建自定义的 SKILL.md,然后在需求变化时修改和优化它。检查并删除重复信息,避免 AGENTS.md 和 SKILL.md 之间产生冲突。
用 Node.js 时,你还需要理解工作流、依赖关系,以及报错信息到底在说什么——而且每当下载并执行一个新的 Node.js 程序时都要格外小心,因为它可以给自己授予远超你本意的权限。我几天前写的那篇关于 Brisova 恶意软件的文章,正是这种情况:一个看起来普通的构建步骤,悄悄获取并运行了一个恶意载荷。要保持警惕。
你不必精通以上所有——至少你应该知道,在 AI agent 面前,你正在运行的是什么。
跟上 agent 的节奏,它才能工作得更好
AI 的速度通常比我自己的工作节奏快,所以我需要跟上的是自己的节拍——以及它主动提出要做的大量工作。Git 命令、文件编辑、搜索、脚本:一个回答背后有大量的动作。
所以,既不能太快,也不能太慢。而且很多时候,我需要让 agent 停下来多解释一点,以便更好地澄清和理解。
跟 agent 合作几个月后,它可能更懂你,也知道自己能做什么,不用每次都问。但我也想从 agent 身上学东西。补丁叠补丁的担忧在于:除非我自己全程跟进,否则我不会让 AI agent 接手大项目。我听说过有人让 agent 通宵干活;第二天早上,结果看着还行。听起来不错,但我害怕。一整晚无人看管地工作,补丁一个接一个——你不知道积累了多少,也不知道叠了多深。最终代码没法调试,连人眼审阅都困难。会堆成这样,是因为 agent 专注于眼前那一个问题直到做完,除非你明确要求——或者你的配置已经告诉它——它不会主动扫一遍项目。让它“审阅并分析整个项目(或文章)”,它总会给你建议和选项。更好的做法:把审阅要求写进 AGENTS.md,这样每次会话都会带上,不管你记不记得说。补丁叠补丁的代码肯定会变得无法维护,人类甚至 AI 都维护不了。用这种方式跑 PoC 没问题——但不能用于生产环境。对长期生产软件,我仍然希望代码对我是可读、可维护的。
我绝不单独交出去的事
无论它听起来多自信,这些规则我都不委托:
绝不允许提交、推送或 amend。由我决定什么进入暂存区——未跟踪的文件永远算进行中的工作。
绝不允许碰密钥。密钥和令牌留在仓库外,也留在 agent 够不到的地方。
绝不允许执行破坏性 git 命令——没有我明确同意,不许 force-push、不许 reset --hard、不许改写历史。
绝不允许 sudo。也绝不允许用一刀切的 chown/chmod 去“修复”权限错误——错误是线索,不是提权的许可证。
这四条是规则,不是偏好——正因如此,它们被写下来,而不是靠记忆。
结语
这里说的都不是模型的事。每一条都关乎我自己是否懂得够多,能说清楚我要什么——这正是我在开头认领的那份工作。Agent 能读完整段历史、写文件、跑命令。
它没法替你判断,什么算「清晰」;也发现不了一个数字不对劲;更分不清哪些只是概念验证(PoC),哪些是你一年后还要继续维护的东西。这三件事只能你自己扛,而且练得越多越省力——前提是你始终待在回路里。技能只是杠杆,留在回路里才是正事。顺便说一句,我用的是 arch。
《What Should You Know to Work Well with an AI Agent?》最初发表在 Medium 的 Dev Genius 上,读者可以在那里继续讨论,通过划重点和回应参与这场对话。