什么是 AI Agent?它和直接调用大模型 API 做一次问答有什么本质区别?
⚕️主页 gis分享者⚕️感谢各位大佬 点赞 收藏⭐ 留言 加关注✅!⚕️收录于专栏AI大模型原理和应用面试题文章目录一、AI Agent概念、AI Agent和直接调用大模型 API 做一次问答有什么本质区别1.1 ☘️AI Agent概念1.2 ☘️AI Agent和直接调用大模型 API 做一次问答的本质区别二、扩展知识2.1 ☘️为什么需要 Agent2.2 ☘️Agent 的核心架构2.3 ☘️Agent 的运行循环2.4 ☘️Function Calling 是 Agent 的关键基础设施2.5 ☘️Agent 的常见坑点三、追问一、AI Agent概念、AI Agent和直接调用大模型 API 做一次问答有什么本质区别1.1 ☘️AI Agent概念直接调 API 就是一问一答你发一条 prompt模型回一条 response结束。AI Agent 完全不同它是一个有状态的循环决策系统能感知环境、做规划、调用工具执行动作、观察结果然后自己决定下一步干什么循环往复直到任务完成。1.2 ☘️AI Agent和直接调用大模型 API 做一次问答的本质区别本质区别有三点1Agent 有工具调用能力能操作外部世界比如读写文件、执行代码、查数据库、调第三方接口。单次 API 调用只能返回文本啥也干不了。2Agent 有记忆和上下文知道自己之前干了什么、拿到了什么结果。单次 API 调用是无状态的每次都从零开始。3Agent 有自主决策循环自己规划步骤、迭代推进。单次 API 调用是被动的你问一句它答一句不会主动行动。单次 API 调用流程用户发送 prompt → LLM 处理 → 返回 response结束。Agent 运行流程用户提交任务 → Agent 规划下一步 → 调用工具执行 → 观察执行结果 → 判断任务是否完成 →未完成则回到规划步骤继续循环 → 完成后返回最终结果给用户。二、扩展知识2.1 ☘️为什么需要 Agent单次 API 调用能力有限大模型只能根据你给的 prompt 生成文本没法真正做事。你让 deepseek 帮你改一个 Bug它能告诉你思路但没法自己打开文件、定位代码、跑测试、验证修复。Agent 的出现就是为了弥补这个缺口让大模型从一个只会说话的顾问变成一个能动手干活的助手。2.2 ☘️Agent 的核心架构一个典型的 Agent 系统由三大核心模块组成1大模型作为大脑负责理解任务、制定计划、决定调用什么工具。OpenClaw 支持多家大模型。2工具集作为手脚让 Agent 能操作外部世界。常见工具包括文件读写、终端命令执行、浏览器操作、代码搜索等。OpenClaw 内置了文件读写、Shell 执行、浏览器控制、Web 搜索、记忆检索等 25 个核心工具。3记忆系统作为笔记本维护整个任务的上下文。短期记忆就是当前对话历史长期记忆可以是向量数据库或者文件系统里的持久化信息。2.3 ☘️Agent 的运行循环拿 OpenClaw 的实现来说一次 Agent 运行不是简单的请求响应是一个完整的 turn loop。runEmbeddedPiAgent() 启动 Agent Session 后会在循环中不断解析 LLM 的输出如果模型说我需要读一个文件系统就执行 read 工具把结果喂回模型模型再决定下一步。循环持续到模型输出最终文本回复或触发 context overflow 为止。整个过程就像一个人完成任务想想要干嘛 → 动手做 → 看看结果 → 再想想 → 继续做。单次 API 调用更像问一个问题、拿一个答案没有这种迭代决策过程。2.4 ☘️Function Calling 是 Agent 的关键基础设施Agent 能调用工具靠的是大模型的 Function Calling 能力。OpenAI 在 2023 年 6 月给 GPT 加了这个功能Claude、Gemini 后来也都跟进了。原理很直接你在请求里声明一组工具的 JSON Schema描述每个工具的名称、参数、用途。模型推理时如果觉得需要调工具就会输出一个结构化的工具调用请求包含工具名和参数。你的程序拿到这个请求后执行对应工具再把结果拼回对话历史让模型继续推理。这套机制让 Agent 的实现从靠 prompt 黑魔法解析文本变成了结构化地声明和调用可靠性提升了一个量级。2.5 ☘️Agent 的常见坑点1Token 消耗巨大。每轮循环都要把完整对话历史发给模型10 轮循环下来可能吃掉 3-15 万 token。OpenClaw 一次复杂任务跑下来光 API 费用可能就 2-5 美元。2幻觉导致死循环。模型有时候会幻觉一个不存在的工具调用或者反复执行同一个操作停不下来。好的 Agent 框架都会设置最大循环次数和超时机制来兜底。3上下文窗口溢出。对话历史越滚越长早期的关键信息可能被截断。常见的解决方案是做上下文压缩把早期对话摘要化只保留关键信息。三、追问提问Agent 的工具调用失败了怎么办它会自己处理错误吗回答好的 Agent 框架都有错误处理机制。工具调用失败后错误信息会被当作观察结果喂回大模型模型会根据错误信息决定是重试、换个方式操作还是放弃当前路径换一条思路。比如 OpenClaw 里你让它编辑一个文件如果 diff apply 失败了它会看到报错然后尝试用不同方式重新编辑。但模型也不是万能的连续失败 3-5 次后一般会设重试上限避免无限循环烧 token。提问Agent 和 RAG 有什么关系能结合使用吗回答RAG 本质上可以看作 Agent 的一个工具。RAG 解决的是让模型获取外部知识的问题Agent 解决的是让模型执行复杂任务的问题。一个 Agent 完全可以把向量检索当作自己的工具之一任务中需要查资料时调一下 RAG拿到相关文档再继续推理。LangChain 里的 Retriever 就是这么用的它就是 Agent 工具箱里的一把工具。提问多个 Agent 协作的时候怎么防止它们互相冲突比如两个 Agent 同时改一个文件回答Multi-Agent 系统里资源冲突是绕不开的问题。常见做法有几种 1用消息队列串行化所有对共享资源的操作都排队执行。 2分配明确的职责边界每个 Agent 只能操作自己负责的文件或模块。 3加锁机制类似数据库的悲观锁或乐观锁。 AutoGen 的做法比较简单粗暴用轮流发言机制同一时刻只有一个 Agent 在执行天然避免了并发冲突。CrewAI 则是通过 Task 粒度的分配来隔离每个 Task 绑定一个 AgentTask 之间通过依赖关系串联。提问Agent 的 token 消耗问题有什么好的优化思路回答核心思路就是减少每轮循环送进模型的 token 数。几个方向 1上下文压缩把早期的对话轮次用摘要替代只保留关键信息和最近 2-3 轮的完整内容。OpenClaw 就用了类似策略会对历史消息做裁剪。 2工具结果精简工具返回的原始数据可能很大比如读一个 1000 行的文件可以只截取相关片段喂给模型。 3分层调度简单的工具调用决策用小模型复杂推理才上大模型。 4缓存相同的工具调用结果缓存起来避免重复执行和重复消耗 token。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2470301.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!