SuperAPI AI 工具集

lagent

Lagent 是由 InternLM 开发的轻量级 LLM 智能体构建框架,设计理念受 PyTorch 启发,开发者只需用 Python 风格创建层并定义层间消息传递,即可搭建多智能体应用。框架将模型视为 Agent、记忆视为状态,输入输出消息在每次前向传播时自动加入 Agent 记忆;提供自定义消息聚合、灵活响应格式化、工具调用一致性、双接口(同步/异步)等机制,并附带数学解题、多智能体写作改进、信息检索与绘图等多智能体示例。支持从源码安装,采用 Apache 2.0 许可证。

访问官网

工具介绍

Lagent 是一个用于构建基于大语言模型(LLM)智能体的轻量级框架,由 InternLM 团队开发并开源在 GitHub(https://github.com/InternLM/lagent),采用 Apache 2.0 许可证发布。其设计哲学受 PyTorch 启发,期望借鉴神经网络层的类比使工作流更清晰直观,用户只需以 Python 风格专注于创建层(layer)并定义层之间的消息传递,即可快速搭建多智能体应用。

主要能力与设计要点:

  1. 模型即智能体(Models as Agents):智能体之间使用 AgentMessage 进行通信。

  2. 记忆即状态(Memory as State):每次前向传播时,输入和输出消息都会被加入 Agent 的记忆中。这一操作在 call 而非 forward 中执行,官方资料以伪代码形式展示了该机制。

  3. 查看记忆的两种方式:资料中提及可检查记忆,但未展开具体代码内容。

  4. 清除记忆:可清除本会话(默认 session_id=0)的记忆。

  5. 自定义消息聚合(Custom Message Aggregation):底层会调用 DefaultAggregator 来组装并将 AgentMessage 转换为 OpenAI 消息格式。开发者可以实现一个能接收 few-shots 的简单聚合器。

  6. 灵活响应格式化(Flexible Response Formatting):在 AgentMessage 中,formatted 字段保留用于存储由 output_format 从模型输出解析出的信息。可使用工具解析器(tool parser)。

  7. 工具调用一致性(Consistency of Tool Calling):ActionExecutor 与 Agent 使用相同的通信数据结构,但要求输入 AgentMessage 的内容为包含以下字段的字典:name(工具名称,例如 'IPythonInterpreter'、'WebBrowser.search')、parameters(工具 API 的关键字参数,例如 {'command': 'import math;math.sqrt(2)'}、{'query': ['recent progress in AI']})。可以为消息转换注册自定义钩子。为方便使用,Lagent 提供了 InternLMActionProcessor,适配上述由 ToolParser 格式化的消息。

  8. 双接口(Dual Interfaces):几乎每个组件(LLM、动作、动作执行器等)都有对应的异步变体,标识符前缀为 'Async'。建议调试时使用同步智能体,大规模推理时使用异步智能体,以充分利用空闲的 CPU 和 GPU 资源。但需确保智能体内部一致性,即异步智能体应搭配异步 LLM 和驱动异步工具的异步动作执行器。除非必要,应尽量实现子类的 forward 而非 call;并且始终显式包含 session_id 参数,该参数用于在并发时隔离记忆、LLM 请求和工具调用(例如维护多个独立的 IPython 环境)。

示例应用(资料中列出):

  • 通过编程解决问题的数学智能体(Math agents that solve problems by programming)。
  • 多智能体:通过自我精炼提升写作质量的异步博客智能体(原始 AutoGen 示例)。
  • 多智能体工作流:执行信息检索、数据收集和图表绘制(原始 LangGraph 示例)。

安装方式:从源码安装(Install from source),资料未提供具体安装命令。

适用场景:需要以 Python 方式构建 LLM 智能体、多智能体协作、工具调用、异步大规模推理的研究与开发场景。

限制:资料未说明具体平台兼容性、依赖版本、收费方式或性能指标;部分机制(如查看记忆的两种方式、清除记忆的具体调用)仅提及存在但未给出完整代码;安装命令未在资料中提供。