前言
本系列是本人对于agent的一点自己的认识,所以打算做一个系列的文章,讲述agent的组成与设计。
讲述:Agent Loop核心循环 + Agent Harness运行控制层,共同组成的一个agent
Agent的核心
相信其实AI很多技术栈和框架出来后,其实细心观察还是会发现,agent的核心其实是循环, 不管是 LangChain、LlamaIndex、AutoGen、ReAct自定义原生 Agent,所有框架底层全部绕不开Agent Loop(智能体循环),这也是 Agent 和普通单次 Prompt 问答最本质的分界线 :
- 普通大模型调用:单次输入→单次输出,流程直接中断,模型无法自主行动;
- Agent 循环:形成闭环往复,拥有自主迭代能力,完整流程: 接收上下文 → 模型推理思考 → 输出工具调用意图 → 执行外部工具 → 收集工具结果 → 回填上下文,再次思考 只要存在工具调用、多轮自主决策、分步完成复杂任务,就一定依赖循环驱动。
市面上所有 Agent 框架,本质只是对这套循环做封装优化,那么封装优化什么呢:
有的封装 工具解析、流式输出
有的封装权限,安全,沙箱,审批
有的封装子智能体,并发,锁
有的封装优化状态,记忆,持久化
有的封装人机交互、中断
在这种种封装之下,就组成一个我们俗称的agent。这个agent经过上面的封装,有了自主调用工具的能力,而且系统上又有沙箱,记忆等等以上的封装知识。
这么看来agent不就是一个被层层包装的循环系统,而LLM大模型就充当以一个类似于提出主意的“员工”,而员工的主意不能直接采纳需要我们的“老板”来审批,安排,分配,也就是“封装”的功能。其实后面这种封装就被 Mitchell Hashimoto 提出的一个概念给概括总结了 这个概念就是:harness。
那么接下来就是顺着话题下来
从 AI 能力本质、框架底层实现来看:循环是 Agent 的底层核心骨架,是区分普通问答和智能体的关键,没有循环就不存在自主分步执行的能力;
从工程生产落地视角:
- 循环只是思考内核,只负责模型推理与工具意图生成;
- 运行控制层 Harness,负责拦截风险、保障可靠、隔离多租户、管控资源,是生产环境必不可少的另一半核心;
循环赋予了agent什么样的能力呢
- 自主分步拆解任务:不用人类一次性把所有细节说清,模型可以一轮一轮分步调查、补充信息;
- 自主纠错补全信息:工具执行失败、缺少参数、数据不足时,循环会让模型重新规划下一步动作;
- 多工具链式组合:自动串联读文件、查接口、跑测试、生成补丁等一系列操作,不用人工分步触发。
如果在通俗一点就是,LLM大模型会思考我们的需求和问题,但是需要不断得获取信息,不断的问我们,不断的尝试,失败后又重新思考规划方向,这就是循环做一件事就是解决需求,循环的目的就是:确定方向是对的,信息是准确得,权限是允许的,总之就是确保解决需求的方式是对的,可以成功的。
两层架构(Agent Loop与Agent Harness)
整个agent系统天然拆两层,二者解耦、单向协作、互不侵入,不存在包含 / 互斥关系:
- Agent Loop(思考层,纯推理) 唯一工作:执行 Agent Loop 循环 :接收上下文→调用模型→解析工具调用意图→把行动请求抛出给外层 Harness;完全不触碰权限、沙箱、存储、队列、租户、审批、限流;只输出 “想干什么”,无权决定 “能不能干”。
- Agent Harness(管控运行层,工程底座) 承接 Loop 输出的所有工具意图,统一完成安全校验、资源调度、持久化、故障兜底、人机治理、多租户隔离; 不参与模型推理逻辑,不修改模型输出内容,只管控模型行为落地真实世界的全链路规则。
第一层固定循环流程(Agent Loop)
- 接收当前任务上下文、上一轮工具执行结果
- 调用大模型推理
- 解析模型输出:区分纯文本回答 / 工具调用请求
- 如果是工具调用:把标准化工具意图抛出给外层 Harness
- 如果得到最终结论:终止循环,输出结果
- 等待 Harness 返回工具执行数据,回到第一步循环思考
核心约束(边界):
- 不感知用户、租户、仓库权限;
- 不区分 OpenAI / Anthropic / Gemini 等模型底层协议差异;
- 不读写数据库、文件、缓存,不管理任务状态;
- 不处理审批、沙箱、超时重试、断连恢复;
- 不控制并发、子智能体、成本限流。
通俗理解:Loop核心 就是只会提需求的实习生,只思考要调用什么工具、下一步怎么做,没有任何操作权限。
第二层核心:Agent Harness(运行控制层,安全调度中枢)
核心定位
承接 Kernel 输出的工具意图,全权管控现实世界所有操作与风险,是生产环境 Agent 的工程核心、安全兜底层。
完整核心职责
- 上下文构建:封装可信租户、用户、资源访问范围,全链路透传权限上下文;
- 工具安全拦截:双层参数校验、五层安全防线、提示注入防护、人工审批、沙箱隔离;
- 资源执行调度:工具并发控制、文件锁、子智能体隔离、租约 + 隔离令牌防脏写;
- 长任务与持久化:事件溯源存储、队列解耦 HTTP、幂等防重复、结果未知状态对账、断线任务保活;
- 多模型管理:多厂商模型统一适配、故障切换合规校验、用量成本统计;
- 人机交互治理:任务规划、缺失信息澄清、分级自主权限、实时中断撤销;
- 记忆合规管控:长期记忆读写过滤、全链路删除清理、检索权限校验;
- 观测与限流:多层资源限额、Fan-out 子任务管控、过载降级、审计留痕。
其实到这里我就差不多讲完关于我agent两层基本架构的理解了,下面是我让豆包根据我的意思,生成的一个直观的图片。