Lagent:从零搭建你的 Multi-Agent

https://github.com/InternLM/Tutorial/blob/camp4/docs/L2/Agent/task.md

一、Lagent框架中Agent的使用

目标
通过Lagent框架,基于InternLM2.5,搭建一个Web Demo,体验其智能体功能与工具集成能力。


步骤与实现

  1. 环境准备

    • 激活环境:conda activate lagent
    • 确保已获取API授权令牌,并写入环境变量。
  2. 代码实现

    agent_api_web_demo.py中:
    • 集成Lagent工具插件(如ArxivSearch)实现特定功能。
    • 调用GPTAPI类初始化大模型。
    • 使用Streamlit创建Web服务。
  3. 插件与功能

    • Lagent支持多种插件(如谷歌文献检索、Arxiv文献检索等)以增强模型能力。
    • 示例中使用ArxivSearch插件,实现文献检索任务。
  4. 运行与测试

  5. 效果展示

    • 未启用插件:模型无法完成复杂任务(如文献检索)。
    • 启用插件:通过调用ArxivSearch插件,模型成功完成文献检索任务。

Streamlit 界面交互
用户通过 Web 界面输入主题,系统实时展示生成、批评和优化的内容,分步骤呈现:

  • 确保环境变量中正确设置token,否则会报错。
  • API与模型名称需根据使用的服务(如浦语API或硅基流动API)进行调整。Lagent:从零搭建你的 Multi-Agent_第1张图片
  • 二、基于 Lagent 实现自定义 Agent 工具

    通过 Lagent 框架赋予大模型额外能力的流程可以分为以下几个步骤,以天气查询工具为例进行讲解:

    1. 获取 API Key
  • 访问 和风天气 API 文档,创建项目并获取 API Key。
  • 设置环境变量:export weather_token='your_token_here'
  • lagent/actions 文件夹下新增 weather_query.py 文件。
  • 编写 WeatherQuery 类,继承 Lagent 的 BaseAction,并实现 run 方法。
    • 功能逻辑
      1. 输入地点名称或坐标。
      2. 使用 GeoAPI 转换名称为 LocationID(如非经纬度格式)。
      3. 调用 Weather API 获取实时天气数据。
      4. 返回格式化后的天气信息字典。
  • actions/__init__.py 文件中引入新工具 WeatherQuery 并添加到 __all__ 列表。
  • 修改 agent_api_web_demo.py,将 WeatherQuery 加入插件注册列表。
  • 示例代码:
     

    python

    复制代码

    from lagent.actions import ArxivSearch, WeatherQuery action_list = [ ArxivSearch(), WeatherQuery(), ]

  • 运行程序:streamlit run agent_api_web_demo.py
  • 在插件界面输入如“帮我查询南京现在的天气”,验证天气查询功能。
  • 测试多个插件时,模型可根据任务自动调用合适的工具,例如天气查询和文献检索插件。
  • Lagent:从零搭建你的 Multi-Agent_第2张图片
  • Lagent:从零搭建你的 Multi-Agent_第3张图片
  • 三、多智能体博客写作系统的搭建总结

    系统功能概述
    利用 Lagent 构建的多智能体博客写作系统,集成了内容生成与优化能力,分为三个主要步骤:内容生成、批评优化和最终改进。该系统通过两个代理协同工作:

    内容生成代理:根据用户主题生成专业、结构化的初稿。
  • 批评优化代理:审阅内容,提出建设性批评并推荐相关文献,以提高文章质量和可信度。
  • 环境配置:在 Python 环境下创建 multi_agents_api_web_demo.py,加载必要的库和模块,设置 Lagent 环境并集成 Streamlit 界面。
  • 系统核心类
    • 博客生成类:通过 AsyncBlogger 实现写作者和批评者的逻辑交互,包括批评建议解析和文献推荐。
    • 消息钩子:通过 PrefixedMessageHook 添加批评前缀,确保交互内容清晰。
  • 运行逻辑
    • 第一步:写作者生成初稿,基于用户输入主题撰写内容。
    • 第二步:批评者审阅初稿,指出不足并推荐关键词用于文献检索(Arxiv)。
    • 第三步:写作者结合批评意见和文献优化内容,输出高质量的最终稿件。
  • 初稿生成内容。
  • 批评者建议及相关文献推荐。
  • 最终优化内容,包括更具参考价值的扩展信息。


    Lagent:从零搭建你的 Multi-Agent_第4张图片
  • Lagent:从零搭建你的 Multi-Agent_第5张图片
  • Lagent:从零搭建你的 Multi-Agent_第6张图片

你可能感兴趣的:(人工智能)