跳到主要内容

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(),这个技能内部可能调用了读文件、语法分析、逻辑比较、生成报告等多个原子工具

技能的核心要素

  • 能力描述
  • 参数规范
  • 执行逻辑
  • 结果解析