Agent: 构建复杂应用的代理系统

333 阅读2分钟

ReAct: Reasoning + Acting

image.png

Reasoning only 推理能力

  • 不断的将复杂的问题 拆解成小问题 不断的进行推理
  • chain of thought

Acting only

  • 大模型 针对环境的操作
    • 环境反馈给大模型 即Observations
    • 这里就形成了一个环 大模型 --> 环境 --> 大模型 不断的执行动作拿到反馈
  • 让大模型 和环境交互 变得更有价值
  • 代表
    • saycan
    • webgpt

ReAct 将这两者结合在一起

ReAct Prompt

通过Prompt 跟大模型交互

ReAct Prompt 由 few-shot task-solving trajectories 组成,

  • 包括
    • 人工编写的文本推理过程 Reasoning部分
    • 动作 Acting部分
    • 以及对动作的环境观察 Observations部分

ReAct Prompt 设计直观灵活,并在各种任务上实现了最先进的少样本性能,从QA到在线购物

benchmark测试结果对比

横坐标是 测试模型(场景) 纵坐标是提示方式(prompt) image.png

前四种prompt ReAct的性能最好

supervised Imitation Learning SOTA 做了微调预训练 这个成本太高

注意: 提升链路

预训练 --> 微调--> RAG知识库 --> prompt提示词工程

预训练 微调 成本太高 先把prompt做好

ReAct 在获取新数据方面的优势(HotpotQA 示例)

Reason-only baseline (即思维链)由于没有与外部环境接触以获取和更新知识,而且必须依赖有限的内部知识,因此容易受 到错误信息(红色标记)的影响。
Act-only baseline 缺乏推理能力方面问题,在这种情况下,尽管具有与ReAct相同的行动和观察,但无法综合得出最终答案。 相比之下,ReAct通过可解释且真实可信的轨迹来解决任务

image.png

LangChain 实现 react

image.png

LangChain Agents 设计原理

代理的核心思想是使用LLM来选择一系列要执行的动作。

  • 在链式结构(Chains)中,一系列动作执行是硬编码的(SequentialChain和RouterChain也仅实现了面向过程)。
  • 在代理(Agents)中,语言模型被用作推理引擎,以确定应该采取哪些动作以及执行顺序。

image.png

输入部分

  • user input 用户输入
  • completion 大模型产生的结果
  • context 历史上下文信息

提示词策略

  • ReAct
  • self ask with search
  • function call

agent excuter 代理运行时

实现逻辑 不断的执行nex action 不断的校验是否完成了所有的任务

每次循环都会重新 基于 上一次执行的结果 重新计算新的下一步动作 image.png

分类

  • Plan and execute agent
  • babyAGI
  • AutoGPT