AI Agent 避坑指南:三个月实战踩坑与架构演进
本文整理自 YouTube 视频转录作者分享了独立开发 AI 视频生成 Agent 三个月中经历的架构迭代与深层思考。一、背景一个真实的 AI Agent 项目作者开发了一款自动生成讲解视频的 AI Agent视频中的动画效果均由该 Agent 生成。三个月间历经多次架构推倒重来深刻体会到教科书方案与真实工程之间的巨大鸿沟。 行业每天都在往前冲context engineering → skill → harness engineering…… 但你自己写的 Agent 却慢、笨、不稳定不断跑偏。 每次看到新架构总以为这次能解决所有问题用上之后却发现事情没有变化甚至更差。二、第一版架构Plan Execute 三层结构2.1 初始设计采用业界流行的Plan Execute架构思路直接【第一版架构】 ┌─────────────────────────────┐ │ Main Agent │ │ 负责编排 / Orchestration│ └──────────┬──────────────────┘ │ 分发任务 ┌──────┴──────┐ ▼ ▼ ┌────────┐ ┌────────┐ │ Design │ │ Coding │ │Sub-Agent│ │Sub-Agent│ └────────┘ └────────┘流程说明用户提交任务Main Agent 进行整体规划Orchestration Layer根据任务类型将子任务分发给 Design Sub-Agent 或 Coding Sub-AgentSub-Agent 执行具体工作并返回结果Main Agent 汇总输出2.2 暴露的两个核心问题问题现象描述小改动成本太高改一行代码仍需走完整流程主 Agent → Sub-Agent → 执行架构太重主 Agent 越权本应只负责编排但它忍不住自己下场修改代码提示词约束无效 根本误区把Plan Execute这种工作方式错误翻译成了一种系统架构形态必须有 Planner、必须有 Executor、必须切得工整。三、第一次架构重构Skill 替代 Sub-Agent3.1 Skill 是什么Skill 提示词的动态注入在 Agent 需要某种能力时将对应的 Skill规则/提示词注入到当前上下文而不是新起一个 Sub-Agent。3.2 改造流程对比【改造前Sub-Agent 架构】 用户任务 │ ▼ Main Agent规划 │ ├──→ Design Sub-Agent独立上下文──→ 设计结果 │ ▲ 需要额外传递上下文信息 └──→ Coding Sub-Agent独立上下文──→ 代码结果 问题通信成本高上下文传递复杂 【改造后Skill 注入架构】 用户任务 │ ▼ Main Agent单一上下文 │ 需要设计能力时 ├──→ 注入 Design Skill ──→ 继续执行 │ 需要编码能力时 └──→ 注入 Coding Skill ──→ 继续执行 优势天然继承上下文无通信成本3.3 改造效果✅ 整体性能未下降复杂任务反而有提升✅ Token 开销变小✅ 架构被压平更简单、更顺滑✅ 无需额外设计上下文传递机制 核心结论原来的 Sub-Agent 从一开始就是冗余设计Skill 只是暴露了这个问题而不是替代了 Sub-Agent。四、Long Running Task记忆系统的加入4.1 真实问题的升级从跑通小任务到连续生成100段代码且质量不降这是完全不同量级的挑战——类比双十一高并发与普通电商访问的区别。4.2 加入 To-Do List 记忆系统【Long Running Task 执行流程加入 To-Do List】 ┌──────────────────────────────────────────┐ │ Agent 执行循环 │ │ │ │ Step 1读取 To-Do List确认当前步骤 │ │ ↓ │ │ Step 2执行当前步骤任务 │ │ ↓ │ │ Step 3输出结果 │ │ ↓ │ │ Step 4更新 To-Do List标记已完成 │ │ ↓ │ │ Step 5重申下一步任务Restatement │ │ ↓ │ │ 重复循环直到所有步骤完成 │ └──────────────────────────────────────────┘4.3 仍然出现的三个问题即使有了 To-Do List依然出现问题现象根因步骤被合并/跳过后期把多段代码合并生成像在赶工上下文焦虑规则开始失效前期认真遵守的 Skill 规则后期当空气Skill 被上下文埋掉输出同质化后期代码越来越像前面的复制改写模型模仿前置上下文五、核心机制注意力分布与 Restatement5.1 LLM 的注意力分布规律【大语言模型上下文注意力分布示意】 注意力强度 ▲ │ 高 │ ████ ████ │ ████ System Prompt ████ 最新输出附近 │ ████ ████ 中 │ ░░░░░░░░░░░░░░░░░░░░░░░░ │ ░ 中间段随长度增加注意力越弱░ 低 │ ░░░░░░░░░░░░░░░░░░░░░░░░ └──────────────────────────────────────→ 开头 结尾 (System Prompt) (最新生成内容)关键结论注意力最强System Prompt 开头当前输出附近注意力最弱上下文中间段越长越弱规则失效 ≠ 规则没写进去而是被埋掉看不见了5.2 Restatement 机制Restatement 把重要信息不断重新放回注意力高地【Restatement 工作原理】 每次生成后 ┌─────────────────────────────────────┐ │ ...前99步的输出内容... │ ← 注意力弱区 │ │ │ [当前步骤重申] │ │ - 现在做到第 X 步 │ ← 注意力强区 │ - 下一步是XXX │ ← 注意力强区 │ - 关键规则提醒[Skill核心规则] │ ← 注意力强区 └─────────────────────────────────────┘ ↓ 继续生成 To-Do List 真正的价值不是记录而是每步都在做 Restatement。 静静放在开头、后续不再提的 To-Do List基本没有作用。5.3 两类信息的分类管理信息类型特征放置位置原因静态规则全局适用、不变代码风格、输出格式System Prompt始终可见常驻注意力高地动态信息计划、To-Do List、阶段 Skill上下文尾端不断追加避免破坏 KV Cache确保实时可见5.4 KV Cache 与 System Prompt 修改的代价【KV Cache 机制说明】 正常情况只追加新内容 [缓存✓] [缓存✓] [缓存✓] | [新增内容只算新增部分] ↑ 成本低 修改了 System Prompt改动前面内容 [失效✗] [失效✗] [失效✗] [失效✗] 全部重新计算 ↑ 成本高应避免频繁修改5.5 Restatement 内容的完整性记忆系统不只需要 To-Do List还需要【完整的 Restatement 内容结构】 每步执行后重申内容包括 ├── To-Do List当前进度 下一步 ├── 关键 Findings本次执行的重要发现 ├── Plan整体计划的关键约束 └── 阶段 Skill 核心规则周期性重申 作用 quot;告诉模型下一步是什么quot; quot;告诉模型下一步怎么做quot;六、第二次架构重构Sub-Agent 回归上下文隔离6.1 新问题不该看到的被看到了前面的问题是该看到的信息没被注意到现在的问题反转了模型会模仿已有代码的写法输出越来越同质化创意任务需要每段代码有独立思考但共享上下文让模型照抄前面 这两个方向的问题仅靠 Restatement 解决不了。6.2 Sub-Agent 回归上下文隔离【第二次重构精准上下文注入的 Sub-Agent】 Main Agent持续运行 │ │ 需要生成第 N 段代码时 ▼ ┌──────────────────────────────────────────┐ │ Sub-Agent新鲜上下文窗口 │ │ │ │ 注入内容精准控制 │ │ ✅ To-Do List当前进度 │ │ ✅ Skill 关键规则本次任务规则 │ │ ✅ Plan/Findings必要背景 │ │ ❌ 前 N-1 段代码结果屏蔽 │ │ │ │ → 独立思考输出第 N 段代码 │ └──────────────────────────────────────────┘6.3 新旧 Sub-Agent 的本质区别对比维度第一版 Sub-Agent重构后 Sub-Agent存在理由架构层次分离强迫症式上下文隔离必要的去掉后效果系统变得更轻更好系统变得更差核心价值无冗余给局部任务提供干净的上下文与 Restatement 关系无关结合使用注入需要的屏蔽不该有的七、架构演进全貌【AI Agent 架构演进路线】 第一版Plan Execute 三层 Main Agent ├── Design Sub-Agent └── Coding Sub-Agent 问题重、越权、通信成本高 ↓ 第一次重构Skill 注入压平架构 Main Agent单一上下文 ├── 注入 Design Skill └── 注入 Coding Skill 解决通信成本架构简化 新问题长任务不稳定100步后失控 ↓ 加入记忆系统To-Do List Restatement Main Agent ├── To-Do List步骤追踪 ├── Findings执行发现 ├── Plan全局计划 └── 周期性 Skill 规则重申 解决规则失效、上下文焦虑 新问题输出同质化创意丧失 ↓ 第二次重构Sub-Agent 回归上下文隔离 Main Agent持续上下文 └── Sub-Agent按需调用精准注入上下文 ✅ 注入进度 规则 背景 ❌ 屏蔽前序代码结果 解决输出同质化创意保留八、核心方法论总结8.1 三大核心认知Plan Execute 是工作方式不是架构形态不要把它翻译成必须有 Planner 和 Executor 两个组件注意力管理 信息堆砌重要的信息放到模型注意力能看到的地方开头 结尾而不是塞更多内容架构设计要解决真实问题Sub-Agent 的存在要有必要性上下文隔离而不是为了看起来高级8.2 工程实践清单AI Agent 工程实践 Checklist 上下文管理 □ 静态全局规则 → System Prompt □ 动态信息计划/进度/阶段规则→ 追加到上下文尾端 □ 避免频繁修改 System PromptKV Cache 代价 记忆系统 □ To-Do List每步执行后重申进度和下一步 □ Findings记录执行过程中的重要发现 □ Plan保留全局计划约束 □ 关键 Skill 规则周期性重申不仅告知quot;做什么quot;还告知quot;怎么做quot; Sub-Agent 使用原则 □ 需要上下文隔离时才用不是为了架构好看 □ 精准控制注入内容该有的要有不该有的屏蔽 □ 与 Restatement 结合注入重要状态信息 Skill 使用 □ 提示词动态注入避免冗余 Sub-Agent □ 如需 Sub-Agent与 Restatement 结合使用九、一句话提炼真实的 AI Agent 工程不是把新名词用上就能解决问题而是要搞清楚每个症状背后的根本原因再针对性地设计机制去解决它。