Ai-Agent

理论知识

agent的定义:

大模型时代的 AI Agent = LLM × (规划+记忆+工具)

Al Agent是一种能够感知环境、进行决策和执行动作的智能实体。

运行过程:接受用户输入 → 推理 + 记忆检索 → 工具调用 → 更新状态 → 再次行动

  • 接受外部输入:(例如用户查询)
  • 结合短期和长期记忆进行推理:(例如利用 CoT、ReAct 等推理框架)
  • 调用外部工具或数据库:(如检索增强生成 RAG、搜索引擎、API 接口等)
  • 更新状态并决定下一步行动:(例如基于策略调整决策)
  • 持续执行,直到任务完成或达到终止条件。
    ![[file-20250609163836448.png]]

基本组件

  • 推理/规划方法:包括 Prompting、CoT(思维链)、ReAct、ToT(思维树)、Reflection 等
  • 记忆机制:短期记忆(Working Memory)、长期记忆(Episodic/Semantic Memory)等
  • 工具使用:RAG、搜索引擎、API(如天气、票价)、计算模块等

推理/规划

推理:从已知知识出发,进行思考分析和推到,得到新的结论或判断

规划:在特定目标或任务的引导下,设计和选择执行步骤的过程(划分出一些子目标)

提升推理、规划的方法:提示工程、改进模型or系统结构、改进学习范式

提示词工程:
通过精心设计的 prompt,我们可以引导语言模型进行分步骤思考自我验证甚至反思决策

CoT:

  • 逐步采样中间推理步骤
    ![[file-20250609164802513.png]]
  • 计算最终答案
    ![[file-20250609164812232.png]]
    CoT方法在提示词输入时,给出CoT的形式输入<输入,思维链,输出>示例

self-consistency:

  • k次思维链采样:
    ![[file-20250609164901767.png]]
  • 多数投票选择最终答案
    ![[file-20250609164916459.png]]

ToT:先分步骤,然后每个步骤多个结果,在每一步的多个结果中进行选择后再进行下一步,输出多个结果。(开销更大,效果好)
![[file-20250609165102709.png]]

至此,上面都没有使用到环境的反馈;下面的方法会考虑到环境反馈。

ReAct:(现在agent系统易出现)

ReAct执行流程:

  • 任务理解:首先对任务进行理解,提取关键信息。
  • 推理阶段:对任务进行推理以生可能的解决方案或路径。
  • 行动阶段:ReAct框架根据推理的结果采取实际的行动。。
  • 反馈和调整:一旦采取行动后,系统会根据反馈调整策略。
    ![[file-20250609165250304.png]]

Reflection:把agent执行流程建模为一个MDP过程
一种通过自我反思之前采取的action,获得一些反思后的experience,作为接下来行动的prompt。
![[file-20250609165558360.png]]

记忆机制

可以建立知识库等。
![[file-20250609165731672.png]]

工具使用

openai:function call
下面就call了Temperature这个函数
![[file-20250609170120491.png]]

Multi-agent

![[file-20250609170408061.png]]

  • 优势
    • 职责分离、并行协作、可扩展性强
    • 可模拟合作/竞争/辩论关系
  • 通信方式
    • 合作、辩论、竞争
  • 通信结构
    • 层级/中心化/去中心化/共享信息池
  • 推荐框架
    • LangGraph(支持流程控制、图结构建模)
    • AutoGen(对话协作易用)
    • CrewAI(任务分配与团队协作
    • LlamaIndex(专注RAG与文档问答)

总体架构

agent所处环境种类:

  • sandbox
  • 真实物理环境
  • 无环境(无需环境或文本环境)

agent profile来源:

  • 预定义(人工生成)
  • 模型生成
  • 根据真实数据集派生(例如,数据集中存在某一个虚拟人物的详细介绍,直接把这个赋予给agent)

multi-agent的通信:
通信范式:

  • 合作
  • 辩论
  • 竞争

通信结构:

  • 层级结构
  • 去中心化结构
  • 中心化结构
  • 共享信息池
    ![[file-20250609170835134.png]]

框架介绍

![[file-20250609171055819.png]]
langAgent:状态机

AutoGen:开创性的多智能体对话式ai应用框架
![[file-20250609171501144.png]]
![[file-20250609171515308.png]]
![[file-20250609171520859.png]]
CrewAI:编排角色扮演、自主ai智能体框架
![[file-20250609171537987.png]]
![[file-20250609171525806.png]]
![[file-20250609171636066.png]]

LangGraph:基于图结构的智能体开发框架
![[file-20250609171711424.png]]
![[file-20250609171715931.png]]
![[file-20250609171729603.png]]

实验任务

尝试利用开源的框架(推荐LangGraph、可以不造轮子)设计一个多智能体系统,要求:

  • 场景/任务不限(任务求解、场景模拟、效率工具等)

  • 包含Agent推理/规划方法的实现(ToT、ReAct、Reflection 等)

  • 设计2种以上记忆机制(长期记忆、短期记忆)

  • 使用2种以上的工具(rag检索、搜索引擎、计算工具等)也可自己定义工具。

  • 说明1:尽量在已有的框架下去设计这些要素,这样可以避免无用的劳动。

  • 说明2:模型api的使用推荐:
    https://dashscope.console.aliyun.com/billing

多智能体系统中智能体数目>=4

  • 每个智能体的功能有良好定位
  • 每个智能体应该有适宜的提示词适配自己的任务
  • 智能体间分工和运行流程合理
  • 在系统中应至少实现一种智能体的推理/规划方法
  • 在系统中设计智能体的长期记忆和短期记忆
  • 在系统中至少使用两种类型以上的工具调用
  • 请至少包含以上工作,成绩按照工作量和任务场景下的实现效果进行评判

langGraph使用文档:
概述
百炼:
百炼控制台

提交要求

ddl 2025 7月6日

实现

实现目标

旅游规划助手:从用户的模糊需求出发,生成详细可行的旅游行程,结合搜索、天气、预算等多方面信息,体现智能体之间的协同和推理能力

系统架构:

Agent名称 功能简介 使用的推理方法
UserIntentAgent 理解用户需求(出发地、偏好、预算等) ReAct
DestinationAgent 通过 RAG 检索 + 搜索引擎获取推荐目的地及热门景点 ReAct
ItineraryAgent 使用 Tree-of-Thought 规划行程(日程安排、景点组合) ToT
InfoToolAgent 获取实时天气、票价、交通等外部信息 ReAct
BudgetPlannerAgent 分析成本并优化路线以满足预算(住宿、交通、门票等) Reflection
SummaryAgent 汇总为旅行计划PDF或markdown文档,供用户保存 无(简单组合

工具使用:

  • RAG
    • 用于景点介绍、用户意图对话历史向量检索。
  • 搜索引擎工具
    • 实时获取票价、天气、景点开放时间。
  • 计算工具(LangChain Math工具链)
    • 计算预算、路线距离、时间总和等。
  • 自定义工具(天气查询API、自建票价API)

记忆机制:

  • 短期记忆
    • 存储本轮对话内容、当前用户需求、暂存行程
    • 用 LangChain 的 ConversationBufferMemory 管理。
  • 长期记忆
    • 存储用户历史偏好(城市、预算、交通方式等)
    • 景点介绍、城市数据使用向量数据库(FAISS + RAG)
    • 每个Agent访问记忆时有不同的过滤机制

构建基本聊天机器人

安装

1
pip install -U langgraph langsmith

尝试使用提供的与openai兼容的来调用并与大模型进行对话。


Ai-Agent
https://pqcu77.github.io/2025/06/09/ai-agent/
作者
linqt
发布于
2025年6月9日
许可协议