ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

小白 0 基础 Agent 开发实战 02:看懂 Agent 开发的三个层次

小白 0 基础 Agent 开发实战 02:看懂 Agent 开发的三个层次 关于作者半旧FDE专注垂类 Agent 开发。做过运动损伤康复、有色金属财报、跨国企业安全月报、小语种新闻自动打标、古文拼音标注、软著申请、模拟演习、智能采购等领域的智能体项目。阿里云专家博主、CSDN 内容合伙人、腾讯云创作之星获 VibeFriends 首届黑客松大赛社区热度 TOP 1。科技向善 OPC 社区创始人之一倡导科技向善创业向实永续发展。坐标佛山希望结识更多朋友一起交流学习。欢迎联系合作与交流。这个教程适合谁这套教程主要面向没有 Agent 开发经验的同学编程基础较少但愿意动手尝试的同学已完成环境准备准备继续认识 Agent 开发体系的同学听过 LangGraph、LangChain、Deep Agents却还分不清它们关系的同学。你不需要一开始就掌握复杂的框架原理。本篇只专注一件事用通俗的语言和例子讲清 Agent Runtime、Agent Framework 和 Agent Harness 三个层次。系列简介这是一个面向零基础学习者的 Agent 开发系列。我们会先用通俗的语言讲清 AI 与 Agent 的基本概念再通过实际操作带你从环境搭建开始一步步运行并开发自己的 Agent。整个系列强调“边学边做”不要求你提前掌握大量编程知识先把程序跑起来再在实践中理解模型、工具、提示词、上下文、记忆和多 Agent 协作等概念。上一篇《小白 0 基础 Agent 开发实战 01先把环境跑起来》中我们准备了 Python、Git、模型 API 和 LangSmith。本文将在这套环境上继续前进。这是系列第 02 篇主题是Agent 开发的三个层次。我们会依次认识 Runtime、Framework 和 Harness并以 LangGraph、LangChain、Deep Agents 为例理解它们分别解决什么问题以及三者怎样配合。参考教程地址Deep Agents 实战——从零构建生产级 AI Agent 的完整指南今天会学到什么完成本篇后你将能够用自己的话解释 Agent Runtime、Agent Framework 和 Agent Harness说清 LangGraph、LangChain 与 Deep Agents 的关系理解为什么三层不是 Agent 身上的三个固定“零件”根据项目需求判断问题主要属于哪一个层次。看懂 Agent 开发的三个层次1. 先校准一个说法Agent 到底由什么组成上一篇中我们把一个基础 Agent 概括为模型、指令与目标、工具、上下文与记忆以及执行循环。这是从 Agent 自身的功能组成来看。Runtime、Framework 和 Harness 则是另一个角度。它们描述的不是 Agent 身上的三个固定“零件”而是开发和运行 Agent 时常见的三个软件层次。因此“一个 Agent 包含 Runtime、Framework 和 Harness”这个说法方向接近但不够严谨。更准确的说法是一个完整的 Agent 工程通常可以从 Runtime、Framework 和 Harness 三个层次来理解。这三个层次也不是行业强制规定。一个简单 Agent 可以直接在 Runtime 上手写不一定使用现成 Framework也可以使用 Framework却不需要现成的 Harness 产品。不同产品还可能把几层能力打包在一起边界并不总是完全相同。 为什么有些资料会说“Agent Model Harness”Harness这个词目前有两种常见用法广义用法把围绕模型的提示词、工具、中间件和运行规则统称为 Harness。按照这个定义给模型套上这套工作环境它才成为能够行动的 Agent产品层用法特指已经把常用能力组装好的“全套型 Agent 开发套件”例如 Deep Agents。两种说法并不冲突只是观察角度不同。为了与参考教程保持一致本文后面说到Agent Harness时主要采用第二种含义。在本系列使用的 LangChain 技术栈中我们可以先这样理解Deep AgentsHarness成套能力 ↓ LangChainFramework开发框架 ↓ LangGraphRuntime运行基础LangSmith 则像一台安装在旁边的“行车记录仪”贯穿这些层次帮助我们观察模型调用、工具调用和任务执行过程。2. 为什么有了大模型还需要这些层次假设我们想做一个“资料整理助手”。你把一批资料交给它希望它完成下面的工作查看有哪些文件逐个阅读并提取重点遇到不懂的内容时搜索资料把大任务拆成多个小步骤汇总结果并生成一份报告。大模型擅长理解和生成文字好比一个聪明的“大脑”。但是只有大脑还不够它怎么打开文件怎么调用搜索工具怎么记住已经处理了哪些资料程序中断后怎么继续执行删除、发送等高风险操作前又怎么等待用户确认当 Agent 从“一问一答”走向一个需要连续执行几十步的任务这些问题就会出现。于是开发者逐渐把相关能力分成了不同层次Runtime 负责让任务运行起来并且尽量运行得可靠Framework 负责让开发者方便地组装模型、工具和执行流程Harness 负责把复杂 Agent 常用的能力提前准备成一套可直接使用的工作环境。它们关注的问题不同但最终都在帮助同一个 Agent 完成任务。3. 底层Agent Runtime——让 Agent 可靠地运行先看最底层的Runtime运行时。“运行时”并不是 Agent 的大脑也不负责替 Agent 回答问题。它更像 Agent 工作时脚下的轨道和交通系统负责维护任务执行的基本秩序。一个简单程序从第一行运行到最后一行结束后就退出了。但 Agent 的执行过程往往不是一条直线。它可能调用模型、选择工具、读取工具结果再回到模型决定下一步还可能暂停等待用户确认或者在中断后从之前的位置继续。因此Runtime 主要关心执行流程下一步该运行哪个节点工具执行后回到哪里状态管理保存消息、工具结果和当前任务进度持久化执行任务意外中断后能够从保存的状态继续流式输出让用户及时看到任务进度而不是一直等待Human-in-the-Loop在关键步骤暂停请人检查或批准后再继续。在本系列中承担 Runtime 角色的是LangGraph。我们可以把它暂时理解成 Agent 世界里的“运行底座”上层负责设计 Agent 会做什么LangGraph 负责让这套流程有序地执行。官方文档也把 LangGraph 称为“底层编排框架和运行时”。这里出现的“框架”是因为它也允许开发者直接设计执行图并不影响我们在三层架构中重点理解它的 Runtime 角色。4. 中间层Agent Framework——让 Agent 更容易开发有了 Runtime我们已经可以让流程运行。但如果每做一个 Agent都要从头编写模型调用、工具格式、消息处理和“模型—工具—模型”的循环开发成本仍然很高。于是就有了Agent FrameworkAgent 框架。Framework 把开发 Agent 时经常重复的部分整理成标准组件例如用统一接口连接不同的大模型把普通函数注册成 Agent 可以调用的工具维护用户消息、模型消息与工具消息实现 Agent 的基本执行循环通过中间件扩展提示词、状态和行为。在本系列中这一层的代表是LangChain。它建立在 LangGraph 的运行能力之上为开发者提供更容易使用的接口。如果说 Runtime 关注的是“任务怎样可靠地跑”那么 Framework 关注的就是“开发者怎样更方便地把 Agent 搭出来”。使用框架后我们不必每次都重新发明轮子但仍然需要自己决定 Agent 要使用哪些工具、遵守什么指令以及如何完成具体业务。5. 上层Agent Harness——提供一套开箱即用的工作环境当我们真的开始开发复杂 Agent又会发现另一类重复工作。例如一个研究助手、编程助手和财报分析助手看起来业务不同却往往都需要读取和保存文件、搜索内容、拆解任务、记录进度必要时还要把子任务交给其他 Agent。只使用 Framework这些能力通常仍要由开发者逐项设计和组合。Agent Harness就是为了解决这类问题。Harness 原意有“成套装备、控制装置”的含义。在 Agent 开发中它不是某一个工具而是围绕模型准备好的一整套工作环境通常包括经过验证的工具、提示词、上下文管理策略和任务编排能力。本系列使用的Deep Agents就处在这一层。它使用 LangChain 的模型、工具和 Agent 能力并运行在 LangGraph 之上。我们不需要手动把所有零件逐个组装就能得到一套适合复杂任务的工作环境。能力通俗理解在 Deep Agents 中的作用虚拟文件系统Agent 的文件柜按需读取、写入、编辑和搜索资料上下文压缩定期整理桌面对过长的历史和工具结果进行转存或总结子 Agent找助手分担工作隔离并处理独立、耗时或资料很多的子任务任务规划墙上的待办清单把复杂任务拆成可追踪的小步骤Memory 与 Skills长期笔记和工作手册保存偏好或按需加载特定领域的方法Human-in-the-Loop重要操作先请示在写文件、执行代码等关键动作前暂停确认这里需要注意**“Deep Agents 支持某项能力”不等于“所有能力默认全部开启”。**截至本文使用的 Deep Agents 0.7.x虚拟文件系统、上下文压缩和通用子 Agent 等属于核心 Harness 能力任务规划从 0.7 起改为按需启用长期记忆、Skills 和人工审批也需要根据项目进行配置。不同版本可能调整默认行为实际开发时应以对应版本的官方文档为准。这就是 Harness 的价值Framework 给我们标准零件Harness 则进一步把常用零件、使用说明和工作方法组合成一个可以直接开工的工作台。6. 用一个比喻理解 Agent 的三层架构假设我们请来一位很聪明的木匠让他做一把椅子。这位木匠会观察、会思考也知道椅子大概应该怎么做。这就像大模型有一个聪明的“大脑”。可是我们不能只把木匠带到一块空地上就指望他马上变出一把椅子。他还需要一个能正常开工的地方、做木工用的工具以及一套整理好的工作环境。第一层Runtime——先让工作坊能够正常开工工作坊要有电机器才能转要有记录本木匠才能记住椅子做到哪一步还要有安全开关遇到危险操作时可以先停下来。如果突然停电来电以后也应该知道刚才做到哪里而不是把所有工作重新做一遍。这就像 Runtime。它不负责设计椅子也不亲自锯木头。它负责的是让工作可以一步一步进行记住目前做到了哪里中途可以暂停之后还能继续遇到危险操作时先停下来请人确认。所以Runtime 就是让整个活儿能够有序、可靠地进行下去的运行底座。第二层Framework——给木匠一套通用工具工作坊可以开工了木匠还需要锤子、锯子、尺子和螺丝刀。这些都是做木工时经常使用的通用工具。有了现成的工具木匠就不需要为了做一把椅子先去炼铁再亲手打造一把锤子。这就像 Framework。它提前准备好了连接大模型、传递消息和调用工具的通用方法。开发者可以拿这些“现成工具”去组装自己的 Agent而不必每次都从零开始。不过只有一箱工具还不等于拥有一间完整的工作坊。工具放在哪里、先做哪一步、木料如何分类仍然需要我们自己安排。所以Framework 就是一套可以反复使用的通用工具。第三层Harness——把整个工作间都布置好现在我们不只给木匠一箱工具而是直接给他一间收拾好的木工房锤子、锯子和尺子已经挂在固定位置木料已经分门别类放好墙上有一块任务板可以记录先做什么、后做什么工作太多时还可以请其他木匠帮忙完成一部分常用的做事方法也已经整理好了。木匠走进来以后不需要先花几天整理房间马上就能开始做比较复杂的家具。这就像 Harness。它不只提供一件件工具还把文件管理、任务规划、子 Agent 协作和上下文管理等常用能力提前组织好。所以Harness 就是一间已经收拾好、进去就能干活的完整工作间。最后用三句话记住它们Runtime保证工作坊能正常运转让活儿不会乱、不会轻易丢Framework提供锤子、锯子、尺子等通用工具Harness把工具、材料和工作流程都整理好让木匠进门就能干活。在本系列中LangGraph 是让任务稳定运行的 RuntimeLangChain 是提供通用开发工具的 FrameworkDeep Agents 则是准备好复杂任务所需能力的 Harness。层次本系列中的代表主要解决的问题可以先记成Runtime运行时层LangGraphAgent 如何可靠、持续地执行任务让它稳稳地跑Framework框架层LangChain如何连接模型、工具、消息和执行循环让它容易搭建Harness成套能力层Deep Agents如何直接获得复杂任务常用的工具与工作方式让它开箱即用7. 三层架构如何一起完成一次任务三层概念分开讲容易理解但程序真正运行时它们是在一起工作的。假设用户说“请阅读这些资料整理一份报告。”一个经过简化的过程是Deep AgentsHarness准备工作环境提供文件工具、上下文管理、子 Agent 以及相应提示词LangChainFramework组织 Agent 循环把用户消息交给模型接收模型提出的工具调用再把工具结果送回模型LangGraphRuntime推动流程运行维护当前状态、执行每一步并在配置后支持流式输出、暂停、恢复和持久化LangSmith 记录过程把模型调用、工具参数、返回结果和耗时记录成 Trace方便我们检查问题。可以把它画成下面这样用户提出任务 ↓ Deep Agents准备完整工作台 ↓ LangChain组织模型与工具反复协作 ↓ LangGraph让每一步可靠地执行 LangSmith在旁边记录整个过程这里的箭头是为了帮助理解层次并不表示每次请求只会从上到下走一遍。真实 Agent 通常会在“模型判断—调用工具—读取结果—继续判断”之间循环很多次直到任务完成。8. 零基础需要把三层都学会吗现在不需要。学习三层架构的目的不是要求我们马上掌握三套复杂 API而是让我们遇到问题时知道应该去哪里找答案Agent 中断后怎样继续、怎样保存状态——先想到 Runtime 和 LangGraph怎样连接模型、注册工具、控制 Agent 循环——先想到 Framework 和 LangChain怎样快速获得文件系统、子 Agent 和上下文管理——先想到 Harness 和 Deep Agents。本系列会先从最上层的 Deep Agents 开始因为它已经替我们准备了大量通用能力。等真正需要修改底层执行流程时再深入 LangChain 和 LangGraph。先学会开车不必第一天就拆发动机。本篇小结这一篇最重要的不是记住三个英文单词而是理解它们分别解决什么问题Agent 自身通常涉及模型、目标与指令、工具、上下文与记忆以及执行循环Runtime、Framework 和 Harness 是理解 Agent 工程的三个常见软件层次而不是每个 Agent 身上的三个固定零件LangGraph 重点解决“怎样可靠地运行”LangChain 重点解决“怎样方便地搭建”Deep Agents 重点解决“怎样开箱即用地处理复杂任务”三层不是互相替代而是从运行底座、开发框架到成套工作环境逐层提供支持。本篇完成清单能解释 Runtime、Framework 和 Harness 的区别能说清 LangGraph、LangChain 和 Deep Agents 的关系知道三层架构与 Agent 自身功能组成的区别能用“木工作坊”的比喻向别人解释三层关系。学习资料系列主教程Deep Agents 实战——从零构建生产级 AI Agent 的完整指南参考章节从 Agent Framework 到 Agent Harness——Deep Agents 的诞生逻辑官方概念说明Runtimes、Frameworks 与 HarnessesDeep Agents 官方概览Deep Agents Overview概念不需要一次全部记住。只要知道每一层主要负责什么以及遇到问题时应该先往哪个层次寻找答案就已经完成了本篇最重要的目标。今日小结这一篇我们认识了 Agent 开发的三个层次Runtime 让任务可靠运行Framework 提供标准化的开发组件Harness 则把复杂任务常用的能力提前组织成一套完整工作环境。下一篇我们将继续理解 Deep Agents 的 Context Engineering并比较 Deep Agents、Claude Agent SDK 与 Codex SDK 的定位和特点。
返回列表