让AI开发项目越来越聪明:入口文件的艺术

admin 2026-05-18 05:39:36 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文探讨了在AI开发项目中通过创建agent入口文件来提升AI协作效率的方法。文章指出AI因缺乏项目级记忆导致重复犯错和token浪费,提出通过入口文件明确规则路径、验证方式和事实源位置,从而减少AI工作的随机性,使其从猜测转向按规则执行,最终提升项目维护性和协作效率。 综合评分: 85 文章分类: 安全开发,AI安全


cover_image

让 AI 开发项目越来越聪明:入口文件的艺术

原创

洋洋 洋洋

塔罗安全学苑

2026年5月16日 17:47 江西

在小说阅读器读本章

去阅读

这是《让 AI 开发项目越来越聪明》系列的第一篇。

这系列文章讲的,不是“怎么写好的的提示词”。而是:项目越做越大以后,怎样让 AI 在新开窗口后,能继续沿着项目里已经沉淀下来的规则工作,防止AI出现漂移情况。

AI 的上限,很多时候不在模型本身,而在项目有没有被建设成“AI 能看懂”的样子。

现在的AI是还没有记忆功能。每开一次新对话,都要重新解释一遍项目结构、技术约束、组件规范、验证方式。期间如果出现任何遗漏,AI就会写出bug。同时这也是 token 被浪费掉的地方,每次的新对话都要重新读取上下文,研究项目结构等等,一直在重复理解项目,这些行为直接让AI浪费了大量token。

其实很多上下文,应该被放进项目里,成为 Agent 进来以后可以主动读取的东西。

所以这个系列的核心是“先把项目本身建设好”。项目里的规则、事实源、验证方式越清楚,模型越不需要把能力浪费在猜测上。便宜模型能少犯很多低级错误,强模型也能让他变得更强。可以理解为把国产模型直接变成国外顶尖模型。

这一篇先从最小的一步开始:给项目写一个 Agent 入口文件。

后面几篇我会继续展开:项目知识怎么分层,哪些内容放全局,哪些内容放到模块旁边;什么时候应该写成 Skill,什么时候 README、测试或脚本就够了;怎么把经验变成可执行检查;多个 Agent、多个工具一起用时,怎么维护同一个事实源。

AI 最容易出问题的地方,不是小改动

现在 AI 写代码,改一个按钮颜色,补几个 TypeScript 类型,接一个后端接口,修一个局部渲染 bug——只要边界足够清楚,基本能一次行完成。

比如你说:“把这个输入框的 placeholder 改成‘请输入关键词’。”或者“给这个函数补上返回值类型。”这种任务上下文小、目标明确,它做得很稳。

真正麻烦的是稍微跨一点项目规范的任务。

比如我要在页面头部加一个设置入口。功能本身很简单:放一个按钮,点开设置面板。但在真实项目里,这件事背后有一堆约束:

  • 颜色要走 theme token,不能随手写 #666
  • 按钮要复用已有的 IconButton,不要重新写一套;
  • 图标要从统一入口 import,不能直接引用某个 svg 文件;
  • 交互状态、间距、hover 样式,都要跟现有 UI foundation 对齐。

这些规则团队里的人可能都知道,因为大家做久了已经形成默契。但 AI 不知道。它只能根据这一次对话里的描述来生成方案。

于是它经常会给出一个“能跑”的版本。功能是对的,但项目味道不对:颜色写死了,组件重复造了,import 路径绕开了统一入口。如果长期这样,就会出现大项目的屎山,维护性几乎为零,只能靠以后的新模型来堆砌修复。

关于这些问题,与ai会话下,你指出来,它会改。问题是,下次换一个会话,它还是可能犯同样的错。

你今天提醒过“不要写 raw color”,明天换个窗口,它未必记得。你这次强调“先看 UI foundation”,下次你没说,它可能就直接开写。上下文一断,经验也断了。

重复纠错,就是规范的来源

我一开始用 AI 的方式也很简单:我提需求,它出方案;我贴报错,它给修法。短期看效率很高,尤其适合处理边角工作。

但项目稍微复杂一点,AI 漂移情况就开始多了,在一些低模型上尤其明显。

“颜色不要写死,走 theme。”

“这里有现成组件,别重新写。”

“这个模块不要直接改 store,先看 service 层。”

“修完别只看页面,跑一下验证命令。”

以上是我们常见与AI反复对话的过程,为了纠正AI产生漂移情况,我们则需要把这些规则沉淀入类似于开发手册的东西:遇到 UI 改动,先读哪份 foundation;新增按钮,优先查哪些共享组件;涉及接口调用,先确认哪一层负责;完成修改后,按哪份清单验证。

人可以靠经验记住这些事,AI 不行。它没有项目级默认记忆。你不把规则放到它每次都能读到的位置,它就只能靠当前对话临时推断。

这也是我后来开始写 Agent 入口文件的原因。

入口文件解决的是“先看哪里”

所谓 Agent 入口文件,不是把项目所有细节都塞进去。

它只解决一个很基础的问题:Agent 进入项目以后,第一眼应该看哪里?接下来应该顺着什么路径找到规则、事实源和验证方式?

不同工具叫法不一样。

Cursor 里常见的是 .cursor/rules/。Claude Code 通常会看 CLAUDE.md。Codex 这类工具会读 AGENTS.md

名字不同,但作用很接近:它们都是给 Agent 的项目级指令入口。

这类文件和普通 README 不太一样。README 通常是给人看的,讲项目怎么启动、怎么部署、背景是什么。Agent 入口文件更像一张工作导航图,告诉 AI:

  • 这个项目的规则在哪里;
  • 哪些边界不能破坏;
  • 当前事实源以哪里为准;
  • 改完以后怎么验证;
  • 遇到某类任务时先读哪份说明。

比如一个根目录的 AGENTS.md,可以先写得很短:

## 导航
仓库级规则:docs/rules.md
验证方式:docs/verification.md
当前产品/系统行为事实源:openspec/
前端 UI foundation:frontend/docs/ui-foundation.md
项目级 Skills:.cursor/skills/

这几行不解决所有问题,但它能让 AI 的第一步变得可靠。

没有入口时,AI 可能直接凭经验改。它觉得按钮就该自己写,颜色就随手取,修完觉得“应该可以”。

有入口以后,你可以要求它先按入口找规则。它会先知道:UI 改动要看 foundation,组件优先复用共享层,验证命令在固定文档里,不要靠猜。

这就是入口文件的价值。它不是替你写代码,而是减少 AI 开始写代码前的随机性。

入口文件不用长

入口文件最怕的不是短,而是虚。

像下面这种话,看起来正确,但对 Agent 帮助不大:

请保持代码质量,遵循最佳实践,注意可维护性。

这类句子太泛。AI 看完不知道下一步该做什么,则又会去搜索规范,而低端模型则会根据自己投喂的语料猜测规范。

更有用的写法是把动作写清楚,这种东西其实可以去GitHub或者他们大佬分享的一些特定规范。当然也可以利用模型的搜索能力去搜索补齐规范:

涉及 UI 改动时,先阅读 frontend/docs/ui-foundation.md。新增按钮前,先搜索现有 Button、IconButton、ToolbarButton 组件。不要直接写 raw color,颜色必须来自 theme token。完成前端改动后,至少运行 npm run lint 和 npm run typecheck。

好的 Agent 入口文件,通常只需要先回答三件事:

第一,先看哪里。

第二,哪些规则不能破坏。

第三,改完怎么验证。

这三件事写清楚,AI 的表现就会稳定很多。它不会突然理解整个项目,但至少不会每次都从零猜起,浪费大量token,挤报上下文出现模型幻觉。

不要把所有内容都塞进入口

入口文件还有一个常见误区:越写越长。

一开始只是几条导航,后来把 UI 规范、接口约定、测试命令、目录说明、历史决策全都塞进去。最后文件变得很长,AI 反而抓不住重点,人也不愿意维护。

我的做法是:入口只做导航,不做仓库百科。

全局规则可以放一份独立文档;模块规则放在模块附近;验证方式单独维护;产品行为以 OpenSpec 或其他事实源为准;复杂的操作流程,再考虑写成 Skill。

入口文件只负责把这些东西串起来。

你可以把它理解成项目门口的指示牌。指示牌不需要写完整地图,但要告诉你:规则往哪走,验证往哪走,事实源往哪走。

这样做还有一个好处:维护成本低。

当 UI 规范变化时,你改 UI foundation,不需要改入口。验证命令变化时,你改验证文档,不需要把入口重写一遍。入口只要保持导航正确就够了。

有入口以后,协作体感会变

入口文件不会让 AI 变成项目老员工。

但它会带来一个很实在的变化:你少说很多重复的话。

以前每次都要提醒:先看 UI foundation,不要写 raw color,复用共享组件,修完跑验证。现在这些话可以沉到项目里。你只需要在任务里说:“按项目 Agent 入口执行。”

AI 的第一步会从“我猜应该这么改”,变成“我先按入口找规则”。

这一步看起来很小,但对真实项目很重要。因为 AI 出问题,很多时候不是写代码那一刻才出问题,而是它一开始就站错了位置:没读规则,没找事实源,不知道验证方式,直接凭通用经验开干。

这一篇先讲到这里

所以第 1 篇只想讲清楚一件事:如果你希望 AI 在项目里越用越强,先给项目一个清楚的 Agent 入口。

它可以是 AGENTS.md,也可以是 CLAUDE.md,或者是 .cursor/rules/。具体用哪个,取决于你的工具。

它要让 Agent 知道三件事:

  • 进项目以后先看哪里;
  • 改代码时哪些边界不能碰;
  • 改完以后按什么方式验证。

这就是整个 AI 协作体系的第一块地基。

没有入口,AI 每次进项目都像临时接手。有了入口,它至少知道该从哪里开始。

后面几篇再继续讲:入口指向的规则、文档、测试、Skill 和事实源,分别应该怎么放、怎么写、怎么维护。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:塔罗安全学苑 洋洋 洋洋《让 AI 开发项目越来越聪明:入口文件的艺术》

评论:0   参与:  0