Agent 概念和基础
Agent概念
Agent 中文叫“智能体”,是指能够一定程度自主行动以完成任务的系统。能根据明确任务目标,自主调用工具、访问数据库、执行步骤并完成任务。
不同于传统“输入-输出”的简单问答,它强调多步骤规划、工具使用、状态更新与决策能力,所有这些都不需要持续的人工指导。
任务分解
任务分解是构建Agent的关键技能,其核心思想是:
- 观察人类行为
- 拆解步骤
- 评估可行性
- 迭代优化
通过不断观察和分析人类如何完成任务,Agent能够学习到有效的步骤分解方法,并在实际应用中不断优化其策略,以更高效地完成任务。
基本组件
- 模型
- 大型语言模型(LLM),文本生 成、工具使用决策、信息提取等,擅长文本处理
- 其他AI模型(如视觉模型、语音模型等)
- 工具
- 编写并运行代码工具,执行Bash命令,脚本,访问外部接口
- 操作计算机,网页搜索,获取实时天气数据、发送邮件等
Agent设计模式
- 反思(Reflection):Agent在执行过程中不断评估自己的行为和结果,进行自我反思和调整,以优化任务完成的效率和效果
- 工具使用(Tool Use):Agent能够识别何时需要使用工具,并选择合适的工具来完成特定任务
- 计划(Planning):Agent能够制定详细的计划来完成复杂任务,分解任务为多个步骤,并按照计划执行
- 多智能体协作(Multi-agent Collaboration):多个Agent能够协同工作,共同完成复杂任务,分工合作,互相支持和补充
使用工具
工具使用Tool Use
工具即函数,模型自主决策关键在于,模型拥有自主决策权。它不再是被动地根据内部知识库生成答案,而是能主动判断:在当前情境下,是否需要、以及应该调用哪个工具来完成任务。就像 人类借助锤子、扳手等工具能完成徒手无法做到的事情一样,语言模型通过调用“函数工具”,也能突破自身训练数据和能力的限制,变得无比强大
创建工具Creating a Tool
LLM 本身并不会直接执行代码或调用函数,它被训练的核心能力是生成文本。如今的主流语言模型都经过直接训练去使用工具,没有训练就必须得写提示词来告诉模型如何使用工具
开发者不再需要像过去那样在提示词中硬编码特定的触发语法(如全大写的“FUNCTION”),而是只需向 LLM 提供工具的描述和可用性,模型会自行决定何时调用
MCP(Model Context Protocol)
MCP (Model Context Protocol,模型上下文协议)是由 Entropy 提出的一个标准,旨在为大型语言模型(LLM)提供一种标准化的方式来访问外部工具和数据源。
目的:解决开发者在构建智能体式应用时,需要为每个应用重复编写代码来集成不同工具(如 Slack, GitHub, Google Drive 等)的痛点
现状:该协议已被许多公司和开发者广泛采用,形成了一个活跃的生态系统
技能(Skill)
技能(Skill)是工具(Tool)的进阶形态。如果说“工具”是螺丝刀或扳手,那么“技能”就是“修理一台咖啡机”的完整能力。它是将一个或多个工具、特定的领域知识、以及复杂的执行逻辑封装在一起的“高阶函数”。
虽然在底层技术上它们都依赖于函数调用,但在应用层面有显著区别:
- 工具(Tool):侧重于单一、原子的功能。例如:read_file()
- 技能(Skill):侧重于解决具体问题的能力。例如:code_reviewer(),这个技能内部可能调用了读文件、语法分析、逻辑比较、生成报告等多个原子工具
技能的核心要素
- 能力描述
- 参数规范
- 执行逻辑
- 结果解析