软件工程过去二十年的主旋律是 continuous。CI 改变了集成,CD 改变了发布,每一次"连续化"都是把一个离散的、依赖人力的环节变成自动的流。
但有一个环节一直没被碰过:生成。
代码是人写的,文档是人写的,测试报告是人整理的,配置文件是人翻着文档一行行填的。这些工程产物,每一个都是手工制作的。AI agent 的出现让我们第一次可以问:如果这些产物都可以从意图自动生成,“手工制作"还应该是默认模式吗?
Ida (Intent Driven Agent) 是围绕这个问题建立的一套工程方法论。它的关注点是有明确技术规格、可被客观验证的工程产出——代码、文档、测试、配置、报告。组织协作和流程博弈不在讨论范围内。
五条核心原则
一、意图是源,产物是派生
人提供目标与约束,一切工程产物——代码、文档、测试、报告、镜像、配置——都是目标的投影,不是独立维护的一等公民。上游意图变了,下游产物自动再生成。
这意味着对"源代码"的理解需要上移一层:真正的"源"不再是代码文件,而是人脑中的意图。代码只是意图的一种编译产物。
二、目标必须合格
不是任何一句话都能成为 Ida 的输入。合格的目标需要满足四个性质:
- 可理解 — agent 能将其拆解为具体动作
- 可达 — 在当前能力范围内可以完成
- 可验证 — 完成后能客观判断对错
- 可分治 — 能拆成小步,平滑推进,每步有可见进展
把模糊的需求加工成合格的目标,是人的第一项工作。这不是降低门槛,恰恰相反——它要求人想得更清楚、表达得更精确。
三、生成是持续的对话
生成过程不是点火后只能旁观的火箭。人可以在任何阶段修正目标、追加约束、对中间产物给出反馈。Agent 也应在关键节点主动暴露状态、请求确认。
意图本身是可以迭代的。好的意图往往是在人与 agent 的多轮交互中逐渐成型的。
四、人与 agent 各司其职
人负责意图的质量,agent 负责产出的质量。
人的工作是定义目标、设定约束、审查产出、做架构决策。Agent 的工作是理解意图、规划路径、生成产物、维护一致性。
这不是"AI 替代人"的叙事,而是分工——就像编译器没有替代程序员,而是让程序员在更高的抽象层上工作。
五、约束是护栏
约束定义了 agent 可以行动的通道——问题空间中允许的路径包络。没有约束的 agent 是危险的,就像没有护栏的高速公路。
实践场景
抽象原则好不好,要看它怎么落地。Ida 文档给出了三个典型场景。
NPI:新机型引入
传统做法:工程师手动编写 baseline 配置、构建镜像、跑验证、写报告,整个流程串行且依赖个人经验。
Ida 的方式:人定义意图——“这个机型需要支持 bookworm,内核用 BSK 6.1,需要通过启动验证和硬件兼容性测试”。Agent 据此生成配置、构建镜像、执行验证、产出报告。验证失败?Agent 根据失败信号调整配置,重新生成。人审查最终产物,做 accept/reject 的决策。
配置、镜像、测试报告——全部从同一个意图派生,任何上游变化都触发下游再生成。
Kernel Patch Backport
上游内核有关键修复,需要回移到内部的多个内核分支。传统做法是逐个分支手动 cherry-pick、解决冲突、编译验证、提交 review。分支越多,重复劳动越多。
Ida 的方式:人定义意图——“将上游 commit abc123 回移到 5.15、6.1、6.6 三个分支,确保编译通过且相关测试不回归”。Agent 对每个分支尝试 backport,解决冲突,跑编译和测试。遇到语义冲突无法自动解决的,暴露给人决策。三个分支并行推进,每个独立可验证。
人的判断力用在刀刃上——审查冲突解决方案,而不是花时间在机械的 cherry-pick 上。
Oncall 诊断
凌晨三点,告警响了:某个集群的机器批量出现内核 panic。
Ida 的方式:人定义意图——“这批机器出现 panic,需要定位根因和影响范围”。Agent 自动收集 crashlog、匹配已知问题模式、查询受影响机器的共性(同一批次硬件?同一个内核版本?同一个配置变更?)、生成诊断报告。
Oncall 工程师做的是判断和决策——确认根因、决定修复方案、批准执行——而不是在半梦半醒中手动敲命令收集信息。
几个关键推论
- 产物是可再生资源 — 重新生成的成本趋近于零,不需要珍惜每一行代码
- 人的价值在判断力 — 不在重复性的产出劳动
- 反馈回路比生成本身更重要 — 测试结果、CI 信号、用户反馈、监控告警,都是驱动再生成的 signal
- 承认边界 — 目标不可验证的、无法分治的问题,不应该硬塞给 agent
我的理解
Ida 不是一个产品或框架,而是一种工程观。它的核心洞察很朴素:当生成成本趋近于零时,工程师的时间应该花在最有杠杆的地方——想清楚自己到底要什么。
这套思路和"编译器让程序员在更高抽象层工作"是同一个逻辑。汇编时代,程序员管理寄存器和跳转指令;高级语言出现后,程序员描述逻辑,编译器负责翻译。Ida 把这个逻辑再推一层:程序员描述意图,agent 负责生成产物。
有意思的是"目标必须合格"这条原则。它拒绝了"AI 什么都能干"的幻觉——agent 不是万能的,人需要把模糊需求加工成可理解、可达、可验证、可分治的目标。这个加工过程本身就是工程能力的体现。
工具会迭代,模型会更新,但这个判断不会过时:人最不可替代的能力,是定义意图。