AI从幻觉到 Coding Agent
内部技术布道 | 2026-05-13 版

AI 为什么会幻觉,以及 Coding Agent 如何把模型变成工程系统

这份材料不是介绍“哪个模型最强”,而是解释一个更实用的问题:LLM 为什么会自信地犯错,工程系统如何用检索、工具、测试、权限、Skill 和 SubAgent 把这种风险压到可控范围。

2017Transformer 论文提出基于 attention 的架构,成为现代 LLM 基础之一。
2023ACM Computing Surveys 系统梳理 NLG 幻觉、检测与缓解方法。
2024+LiveCodeBench、SWE-bench Verified 等推动从片段级走向工程级评估。
2025+OpenAI、Anthropic 公开讨论 agent loop、工具反馈与 coding harness。

为什么现在要讲这件事

AI coding 的关键变化不是“补全更准”,而是模型被放进了能观察、行动、验证的软件工程环境。

适合内部布道的主线:先拆掉“AI 只是聊天”的误解,再解释为什么工具链、流程和验证比单点模型排名更重要。
规则系统人写规则,机器执行,知识难扩展。
机器学习从数据里学模式,但特征和任务仍较固定。
深度学习神经网络学习复杂表示,视觉和语音突破。
Transformer高效建模 token 关系,支撑大规模预训练。
LLM用语言建模目标压缩大量文本和代码模式。
Agent模型连接工具和反馈,开始完成任务。

幻觉不是偶发 Bug,而是生成式模型的结构性风险

LLM 的训练目标使它擅长生成“看起来合理”的延续,但事实正确性需要外部证据、上下文约束和验证机制共同支撑。

证据链来自 Transformer 原论文、GPT-2 语言建模论文、ACM 幻觉综述,以及 OpenAI 对语言模型幻觉的公开研究。
机制

LLM 的基本动作

输入被切成 token,模型根据上下文计算下一个 token 的概率分布。连续选择 token 后,用户看到的是自然语言、代码或结构化结果。

  • 它不是默认先查数据库再回答。
  • 它会把上下文中最像答案的模式补全出来。
  • 当知识稀疏、提示含糊或上下文污染时,错误也会被流畅表达。
Prompt 上下文 + 历史 Transformer attention + 表示学习 概率分布 next token 流畅 ≠ 事实;生成目标 ≠ 真值校验
原因一

知识不完整或过期

训练语料是历史快照,低频事实、新版本 API、内部私有代码都可能不在模型可靠分布里。

原因二

训练和评估激励

如果评测只奖励答对而不奖励承认不确定,模型会倾向于猜测。OpenAI 公开研究把这一点列为关键因素之一。

原因三

上下文与采样

冲突资料、错误提示、过高温度、缺少证据边界,都会让模型沿着“像答案”的方向偏移。

幻觉表现在 coding 中的具体样子有效控制手段
编造事实声称某个依赖、接口、配置项存在,但仓库里没有。先搜索仓库和官方文档,再写结论;引用文件路径或来源。
误读上下文只看相似文件就套用模式,忽略项目约束。读取入口、调用链、测试和约定文件,避免局部猜测。
自信错误补丁能解释得通,但测试、编译或运行失败。强制 inspect-edit-test 循环,把环境反馈纳入下一轮。
引用幻觉给出不存在的论文、参数、版本号或链接。权威来源优先;无法查证时明确标记“不确定”。

避免幻觉靠工程约束,不靠祈祷

一句“不要幻觉”只是软约束。可靠做法是把模型输出放进证据、工具和验证的闭环里。

这部分可直接转成团队使用规范:什么时候必须查证、什么时候必须跑测试、什么时候必须让人审批。
Grounding先接入真实资料:仓库、文档、数据库、网页、日志。
Constraint限定输出格式、字段、来源和不确定性表达。
Tool Use让模型通过工具读取事实,而不是凭记忆猜。
Verification用测试、编译、lint、引用检查验证结果。
Approval对删除、发布、资金、权限等高风险动作保留人工确认。

评估模型:没有单一“最好”,只有任务匹配

内部选型不要只看榜单截图。要把模型能力拆成通用推理、代码、工具调用、长上下文、成本、延迟和安全边界。

Benchmark 是地图,不是地形。尤其是公开 benchmark 会面临污染、饱和、测试缺陷和与业务任务不一致的问题。
评估对象代表 benchmark能说明什么局限
通用知识/推理MMLU-Pro、GPQA跨学科知识和高难推理能力。不等于企业内部任务表现,也不等于工具使用可靠性。
函数级 codingHumanEval、MBPP短函数生成和单元测试通过率。离真实仓库、多文件修改和需求澄清较远。
新鲜代码题LiveCodeBench降低训练污染,覆盖生成、自修复、执行预测等代码能力。仍偏竞赛/题目,不完全代表业务仓库。
真实 issue 修复SWE-bench Verified / Pro仓库级定位、修改和验证能力。公开集会污染;OpenAI 已指出 Verified 对前沿模型区分度下降。
人类偏好LMArena匿名对战下的主观使用体验。偏对话偏好,不能替代工程验收。

Agent 的本质:模型驱动的行动循环

Agent 不是神秘概念。它是一个控制循环:观察环境,推理下一步,通过工具行动,读取反馈,再决定继续或停止。

Anthropic 将 agent 描述为 LLM 在环境反馈循环中使用工具;OpenAI 公开拆解 Codex harness 的 agent loop 和执行逻辑。
LLM reasoning + generation Observe Reason Act Feedback
LLM

生成能力

负责语言理解、代码生成、解释和计划候选项。

Agent

行动循环

决定什么时候读资料、调用工具、修改环境、停止并汇报。

Harness

运行外壳

提供上下文组装、工具协议、权限、状态、日志和错误恢复。

Coding Harness

工程专用外壳

面向仓库、diff、终端、测试、Git、CI 和代码审查做优化。

一个简单 Coding Agent 的原理

主流 AI coding agent 工具的核心不是“自动写代码”,而是把模型放进 inspect-edit-test 的工程循环。

这里不声称知道商业工具私有实现,只抽象公开文档中反复出现的共性结构。
1. 接收目标读取用户需求、项目指令、已有上下文和安全规则。
2. 搜索仓库找入口、调用链、测试、配置和历史约定。
3. 生成补丁按最小改动原则编辑文件,保留 diff 可审查。
4. 运行验证执行测试、构建、lint 或最小复现命令。
5. 反馈迭代失败就读取错误继续修;成功则总结风险和证据。
上下文

不是越多越好

Harness 要选择相关文件、压缩历史、保留约束,否则长上下文会带来噪音和冲突。

权限

行动需要边界

读文件、写文件、跑命令、联网、删除、发布应该有不同权限级别和审批策略。

反馈

测试是事实源

编译器、单测、集成测试、运行日志比模型自我解释更有约束力。

Skill 和 SubAgent:把个人经验变成团队能力

Skill 解决“同类任务反复提示”的问题;SubAgent 解决“任务可拆分、可并行、可独立验证”的问题。

Anthropic 和 Claude Code 文档均公开描述了 skills/subagents 的产品形态;这里抽象为通用 agent 系统设计模式。
Skill

可复用能力包

一组任务说明、脚本、模板、示例和资源。它让 agent 在特定任务上按团队沉淀下来的流程行动。

  • 代码审查 checklist
  • 发布流程和回滚脚本
  • 内部文档写作模板
  • 项目常用命令和边界条件
SubAgent

受限 worker

为一个明确子任务启动的独立 agent,有自己的目标、上下文、工具权限和交付格式。

  • 并行阅读不同模块
  • 独立查外部资料
  • 专门复现测试失败
  • 作为 reviewer 验证主 agent 结论

内部落地建议:把 AI 当成可验证的工程协作者

不要把 agent 当成无监督实习生,也不要只把它当代码补全。正确姿势是给边界、给资料、给验证、给可回滚的工作单元。

这套原则能直接用于团队规范、AI coding 培训和代码仓库中的 AGENTS.md / CLAUDE.md / skill 文档。
任务定义

小而可验收

把需求拆成明确输入、输出、约束、验收命令和风险边界。

证据优先

结论必须能追溯

涉及事实、API、版本、外部政策时,必须引用官方文档或代码位置。

最小改动

降低回归面

让 agent 优先做局部、可审查、可回滚的补丁,而不是顺手大重构。

自动验证

每轮都有反馈

能跑测试就跑测试;不能跑时说明原因,并给出替代验证。

权限治理

高风险动作审批

删除、发布、迁移数据、发外部消息、改权限等必须人工确认。

经验沉淀

用 Skill 固化流程

把成功经验写成 skill、模板、检查清单和项目指令,减少下次从零提示。

权威资料与推荐阅读

下面的资料用于支撑本文的核心论点,优先选择论文、官方文档和 benchmark 官方页面。

发布前如果要加模型排行榜或具体分数,建议当天重新核对,因为模型与 benchmark 状态变化很快。
Transformer 基础Attention Is All You Need,Vaswani et al., 2017。
语言建模目标OpenAI GPT-2 与 “Language Models are Unsupervised Multitask Learners”。
幻觉综述Survey of Hallucination in Natural Language Generation,ACM Computing Surveys, 2023。
幻觉成因OpenAI: Why language models hallucinate,以及同名论文。
Claude Code 工具与 loopClaude Code agent loop docstools reference
模型评估MMLU-ProGPQALiveCodeBench