ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

1.2.CS146S 第二课:编程 Agent 运行框架要点1.2

1.2.CS146S 第二课:编程 Agent 运行框架要点1.2

CS146S 第二课:编程 Agent 运行框架要点

根据用户提供的课堂文本记录归纳。仅保留原文观点,不补充外部知识;各节附原文时间范围,便于回查。讲者的推测仍按推测表述。

一、本课讲什么?

从上一课的简单 Agent 循环,进一步拆解成熟编程 Agent 外围的运行框架(harness)。

  • 上一课用约 150~200 行代码实现了理解请求、读取和修改文件的基本能力。

  • 本课关注模型外围的系统如何工作,不讨论模型训练及内部参数。

原文位置:07:58~10:20。

二、运行框架包含什么?

模型与工具之间的循环仍是核心,其他组件围绕这个循环提供支持。

  • 核心过程:用户提出请求 → 模型回复或请求工具 → 执行工具 → 把结果交回模型。

  • 外围组件包括系统提示词、配置文件、工具列表、计划模式、技能、子 Agent、钩子和上下文压缩。

  • 这些设计原则也可用于销售、法律、客户支持等领域的 Agent。

原文位置:10:20~16:38。

三、工具、MCP 与请求追踪

工具让模型能够操作外部世界;工具定义也会占用上下文,因此需要控制数量和复杂度。

  • 工具说明要清楚:名称、描述、函数签名等信息会提供给模型,帮助它判断何时调用、如何传参。

  • MCP 用于接入外部工具和资源:课堂演示通过代理捕获请求和响应,在 JSON 中查看消息、工具定义及运行框架注入的信息。

  • 工具越多,上下文负担可能越大:在演示的请求中,加载的 MCP 工具会随请求一起发送。无关内容过多,可能影响任务表现。

  • 优先考虑少而强的工具:讲者以 Bash、SQL 为例,说明少量通用工具也能完成很多操作。

  • 技能采用渐进式披露:先提供少量元数据,需要时再加载完整内容,避免一开始就放入全部信息。

原文位置:16:38~34:30。

四、系统提示词与记忆

系统提示词规定模型怎样行动;记忆则为后续任务提供可继续使用的信息。两者都会影响上下文。

  • 系统提示词由运行框架设置:规定身份、行为边界、环境信息,以及使用记忆等机制的方式,随请求发送。

  • 记忆可以保存在文件中:演示中的提示词规定了记忆的存储位置和写入格式。讲者根据路径推测,该示例中的记忆属于项目级别。

  • 记忆不必等同于系统提示词:讲者将它视为独立的信息块,与其他块一起组成发给模型的提示内容。

  • 复杂检索不一定更好:RAG、GraphRAG 相比直接解析普通文本,未必总有明显优势,应结合任务和基准测试判断。

  • 系统提示词也需要精简:讲者观察到其长度缩短,并推测部分原本需要明确说明的能力已被模型训练吸收。

原文位置:34:30~42:44。

五、CLAUDE.md 与 AGENTS.md

这是用户能够编写的 Agent 配置,用于提供项目背景和工作指引。

  • 系统提示词由运行框架设定;这类配置文件则由用户控制,并被注入模型上下文。

  • 适合包含项目结构、运行测试和启动服务器的必要命令。

  • 保持简洁,避免加入整块代码或过多约束,以免限制模型发挥。

原文位置:42:44~48:03。

六、计划模式

先与用户澄清需求、探索代码和设计方案,最终形成计划文件。

  • 进入计划模式后,运行框架注入专门的提示词,引导模型完成规划。

  • 演示中的流程包括理解需求、探索代码库、设计、评审、形成最终计划和退出计划模式。

  • 示例任务是为待办事项应用增加周期性提醒,如“每周给植物浇水”。

原文位置:48:03~51:14。

七、技能(Skills)

技能把多步操作写成流程,将提示词、工具调用、脚本等组织起来。

  • MCP 工具更接近一次输入—输出操作;技能可以组合多个步骤和工具。

  • 技能既可由用户明确要求调用,也可根据任务上下文主动调用。

  • 课堂用SKILL.md定义“检查代码质量”技能;调用时,运行框架将文件内容加载到上下文中。

原文位置:31:25~32:19、51:14~53:30。

八、子 Agent、钩子与上下文压缩

把部分工作交给独立上下文中的子 Agent,或把长对话压缩成摘要,都有助于管理上下文。

  • 子 Agent:主 Agent 委派任务,子 Agent 在自己的新上下文窗口中工作,完成后返回结果。这样可以并行处理,也减少主上下文承载的探索内容。

  • 上下文压缩:根据专门提示词生成摘要,用摘要替换被总结的上下文;既可以自动触发,也可以手动调用。

  • 钩子:课堂只提及这一组件,没有展开其机制。

原文位置:53:40~57:04。

九、讲者最终想强调什么?

运行框架设计应重视简洁,充分利用底层模型能力,谨慎控制上下文负担。

  • 模型能力与运行框架设计之间存在投入取舍,行业观点会来回变化。

  • 讲者观察到的趋势是工具更少但更强、提示词更短,并更多依赖模型本身的能力。

  • “dumb zone”是模型开始变得不那么有效的非正式说法,避免进入这一状态与上下文工程密切相关。

原文位置:55:25~结尾。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进