传统软件出现问题时,开发者通常会检查日志、调用链、数据库记录和监控指标。
哪一个接口失败。
哪一条请求超时。
哪个服务返回异常。
哪一步开始偏离预期。
这些信息共同构成了软件系统的可观测性。
但当ChatGPT开始分析需求,Codex开始读取代码、修改文件、运行命令,Pro开始支撑更长、更复杂的开发任务后,新的问题出现了:
AI完成了很多操作,开发者却不一定知道它为什么这样做。
它读取过哪些文件?
根据什么结论修改代码?
调用过哪些工具?
哪一步出现错误?
为什么放弃原来的方案?
最终结果建立在哪些假设上?
AI能够执行任务,不代表执行过程天然透明。
这背后对应的是AI工程中的另一项核心能力:可观测性工程。
一、最终结果无法代表完整过程
开发者让Codex修复一个接口问题,最后可能只看到:
已完成修改,测试通过。
这句话看起来很完整,却缺少大量关键信息:
- 实际修改了哪些文件;
- 是否读取了无关模块;
- 测试覆盖了哪些场景;
- 是否跳过了失败命令;
- 是否改变了原有接口行为;
- 是否新增了依赖;
- 哪些风险仍然没有解决。
结果正确,不代表过程可靠。
尤其在复杂项目中,AI可能通过一个不合理的方法暂时让测试通过。
例如:
- 放宽断言;
- 删除异常检查;
- 修改测试数据;
- 绕过权限判断;
- 用默认值掩盖真实错误。
如果只看最终状态,开发者很难发现这些变化。
因此,AI任务不能只有“完成”或“失败”。
还必须能够解释:
任务是怎样完成的。
二、传统日志为什么不够
普通日志记录的是系统事件:
- 接口被调用;
- 数据写入成功;
- 测试执行失败;
- 命令返回错误。
但AI Agent还存在一层更复杂的决策过程。
它不仅执行动作,还会:
- 理解任务;
- 选择文件;
- 判断优先级;
- 调整计划;
- 放弃某个方案;
- 根据反馈继续修改。
所以AI可观测性不能只记录命令结果。
还需要记录三类信息。
决策信息
AI为什么选择这个方案?
依据的是用户要求、项目代码,还是自己形成的推断?
执行信息
它读取了什么、修改了什么、调用了什么工具?
状态信息
当前任务处于分析、修改、测试、修复,还是等待人工确认?
只有这三类信息能够被追踪,开发者才可能真正理解AI任务。
三、什么是AI可观测性工程
AI可观测性工程,是对任务理解、工具调用、状态变化和验证结果进行持续记录。
完整链路可以表示为:
用户目标
↓
ChatGPT分析与规划
↓
Codex读取文件
↓
工具调用与代码修改
↓
测试结果
↓
状态更新
↓
人工审查
每一个阶段都应该留下可以检查的证据。
它至少需要回答六个问题:
- 当前目标是什么;
- AI使用了哪些上下文;
- AI为什么采取当前动作;
- 实际执行了哪些操作;
- 执行结果是否符合预期;
- 下一步为什么继续或停止。
可观测性不是让AI输出更多文字。
而是让关键决策和工程动作能够被准确追踪。
四、第一层:文件与工具调用记录
Codex进入项目后,首先需要记录它接触了哪些资源。
例如:
- 读取了哪些目录;
- 打开了哪些文件;
- 修改了哪些代码;
- 执行了哪些命令;
- 调用了哪些测试;
- 是否访问了外部服务。
如果一个任务只要求修改登录接口,Codex却读取并修改了支付模块,这就是值得审查的异常信号。
工具调用范围越透明,开发者越容易发现任务是否越界。
五、第二层:任务状态变化
一个复杂任务通常会经历:
待分析
方案设计
代码修改
测试执行
错误修复
人工审查
等待合并
每次状态变化都应该有明确原因。
例如:
从代码修改进入测试执行,因为目标文件已经完成修改。
或者:
从测试执行返回错误修复,因为权限测试仍然失败。
如果状态变化无法解释,任务就容易出现跳步。
测试还没有完成,AI却宣布任务结束。
风险还没有确认,代码却进入合并阶段。
可观测性让开发者看到任务现在在哪里,也能发现它是否跳过了关键步骤。
六、第三层:决策依据
AI最难观察的部分,不是它执行了什么,而是它为什么这样执行。
例如,Codex决定重构一个函数,可能基于:
- 用户明确要求;
- 项目现有规范;
- 测试失败信息;
- 自己推断的最佳实践。
这四种依据的可信度并不相同。
可靠的AI任务应该区分:
已确认事实。
项目内证据。
用户约束。
AI推断。
尚未验证的假设。
如果AI把推断当成事实,后续任务就可能建立在错误基础上。
所以可观测性不仅要记录动作,还要暴露关键假设。
七、第四层:验证结果必须可追溯
“测试通过”不是完整结果。
开发者还需要知道:
- 运行了哪些测试;
- 哪些测试没有运行;
- 使用了什么环境;
- 测试覆盖了哪些修改;
- 是否存在跳过项;
- 是否发生过失败后重试。
例如,Codex运行了5个单元测试并全部通过,并不能证明整个系统没有回归问题。
如果修改涉及公共接口,还可能需要:
- 集成测试;
- 回归测试;
- 权限测试;
- 并发测试;
- 兼容性检查。
验证信息越完整,合并判断越可靠。
八、ChatGPT、Codex与Pro如何进入可观测链路
ChatGPT:解释与总结层
ChatGPT可以帮助开发者:
- 总结当前任务目标;
- 整理关键决策;
- 区分事实和推断;
- 解释任务为什么发生变化;
- 输出阶段性状态报告。
它让复杂过程变得更容易理解。
Codex:执行与记录层
Codex需要记录:
- 文件读取;
- 代码变更;
- 命令调用;
- 测试结果;
- 错误信息;
- 下一步建议。
它不只负责执行,还要为执行过程留下证据。
Pro:长任务持续层
Pro可以支撑更长、更复杂的任务链。
但任务越长,越容易出现:
- 决策依据丢失;
- 中间状态混乱;
- 工具调用数量增加;
- 多次修改难以追踪。
因此,Pro扩大任务能力的同时,也提高了可观测性要求。
任务越复杂,过程越需要透明。
九、为什么可观测性会成为AI开发基础设施
未来AI可能同时承担:
- 需求分析;
- 代码修改;
- 测试生成;
- 故障修复;
- 文档更新;
- PR审查。
当执行范围越来越大,开发者不可能只检查最终输出。
还需要一条完整的工程轨迹:
AI理解了什么。
AI决定了什么。
AI执行了什么。
AI验证了什么。
AI遗漏了什么。
人类确认了什么。
没有这条轨迹,AI越自动化,系统越难审查。
可观测性不是额外负担。
它是AI能够进入真实工程环境的基础条件。
结语
ChatGPT帮助理解和解释任务。
Codex负责进入项目执行操作。
Pro支撑更复杂、更持续的协作流程。
但当AI开始真正参与软件开发,开发者需要看到的不只是最终答案。
还包括任务的目标、决策、工具调用、状态变化和验证证据。
传统软件通过日志理解系统行为。
AI开发也需要通过可观测性理解Agent行为。
AI能够完成任务,只代表它具备执行能力。
开发者能够看清它如何完成任务,才代表这套系统真正具备工程可信度。