开发与工程 pythonmulti-agenttool-usevllmopenai-apilmdeployweb-search

Lagent 轻量级智能体框架

基于PyTorch设计哲学,用直观的层与消息传递方式构建LLM智能体。

FollowAgents 评估 · FARS-2.1
不推荐
43/ 100 五分制 2.2 / 5
1 2 3 4 5 6
1信任安全5 / 29 · 0.9/5

证据显示框架提供钩子机制(如CodeProcessor)允许在动作执行前后修改消息,但未强制最小权限;默认动作如IPythonInteractive可执行任意代码,权限过大。用户确认机制缺失,工具调用自动执行。数据流透明度部分:AgentMessage结构清晰,但未说明数据如何被外部服务处理。敏感数据处理未提及。依赖安全未评估,requirements.txt仅列出文件,无版本锁定或漏洞扫描。外部影响:动作如WebBrowser可发起网络请求,但未提供沙箱或限制。回滚机制未提及。来源归属:README和引用提供了作者信息,但发布者未验证。

2可靠稳定8 / 14 · 2.9/5

自一致性:README中的示例代码与API文档一致,但未验证实际运行。依赖可用性:依赖未固定版本,可能影响可复现性。失败消息:测试覆盖了API错误和超时,但未覆盖所有场景。

3适用触发12 / 18 · 3.3/5

受众和场景:README提供了单智能体、多智能体示例,覆盖多种场景。能力边界:文档说明了工具调用和异步接口,但未明确限制。触发精度:工具调用格式明确,但未验证。环境适配:支持同步和异步,但未说明所有环境要求。

4规范维护8 / 18 · 2.2/5

信息架构:README结构清晰,有目录和示例。安装说明:提供了源码安装命令。命名稳定性:API命名一致,但未提供版本历史。示例和FAQ:有丰富示例,但无FAQ。已知限制:未提及。许可证:Apache-2.0完整。版本变更日志:未提供。维护责任:有贡献者信息,但未明确维护政策。

5有效结果7 / 13 · 2.7/5

输出可用性:示例输出清晰,但未验证。边际价值:提供了多智能体框架,有独特价值。成本效益:未提供性能或资源消耗数据。

6证据核验3 / 8 · 1.9/5

声明可追溯性:README中的示例可追溯到代码,但未验证。跨来源佐证:未提供外部验证。事实与推断分离:文档中示例与推断混合,未明确区分。

证据充分度: 评估于 2026年8月9日 审查版本 0ab2e2f55047
源码中未见的安全控制:执行前用户确认、敏感信息处理、依赖安全审查、回滚或恢复路径
使用前请注意
  • 默认动作如IPythonInteractive可执行任意代码,存在安全风险,建议限制权限或增加用户确认。
  • 依赖未固定版本,可能引入不兼容或漏洞,建议锁定版本并定期扫描。
  • 未提供已知限制和版本变更日志,用户难以评估风险。
评估证据 [1][2][3][4][5][6][7]
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

Lagent 是一个轻量级框架,用于构建基于大语言模型(LLM)的智能体,灵感来自 PyTorch 的设计哲学。它提供了 Agent 类,通过 AgentMessage 进行通信,并采用类似神经网络层的概念来组织工作流。框架内置了多种 LLM 后端(如 VllmModel、GPTAPI、AsyncGPTAPI)和工具(如 IPythonInterpreter、WebBrowser),支持同步和异步接口。其核心特性包括内存管理(Memory)、自定义消息聚合(Aggregator)、灵活的输出格式化(ToolParser)以及工具调用(ActionExecutor)。通过简单的 pip 安装即可使用,并提供了多个示例,包括数学解题智能体、多智能体博客撰写和数据分析可视化等。Apache-2.0 许可。

Lagent 允许用户通过定义 Agent 实例并传递 AgentMessage 来构建智能体。它支持多种 LLM 提供商(如 VllmModel、GPTAPI),并提供工具集成(如 IPythonInterpreter、WebBrowser)。核心流程包括:Agent 接收消息,通过内存记录上下文,使用聚合器格式化消息,调用 LLM 获取响应,并可进一步通过 ActionExecutor 执行工具调用。它支持同步和异步接口(如 AsyncAgent),并允许自定义聚合器、输出解析器和钩子(Hooks)。

  1. 开发者需要快速构建一个能解决数学问题的智能体,通过编写 Python 代码并执行。
  2. 团队希望实现多智能体协作,例如一个作家和一个评论家相互协作改进博客文章。
  3. 研究人员需要从网络检索信息、收集数据并绘制图表,以实现数据可视化流程。
  4. 需要在一个项目中同时使用多种 LLM 提供商,并希望有统一的接口。
  5. 开发者希望利用异步接口进行大规模推理,以充分利用 CPU 和 GPU 资源。

这个 Agent 有哪些优点和局限?

优点
  • 设计理念类似于 PyTorch,易于理解和扩展。
  • 支持多种 LLM 后端(如 Vllm、GPTAPI)和工具(如 IPython、WebBrowser)。
  • 提供同步和异步接口,适应不同规模的推理需求。
  • 灵活的聚合器和输出解析器允许自定义消息格式和工具调用。
局限
  • 需要用户具备一定的 Python 和 LLM 知识。
  • 文档可能不够全面,需要依赖示例代码。
  • 依赖外部 LLM API 或本地模型服务,需要相应的 API 密钥或硬件资源。
  • 异步使用需要确保组件兼容,增加了配置复杂度。

如何安装或部署这个 Agent?

从源码安装:\n``bash\ngit clone https://github.com/InternLM/lagent.git\ncd lagent\npip install -e .\n``

如何使用这个 Agent?

安装后,您可以创建 LLM 实例(如 VllmModel)和 Agent 实例,并传入用户消息以获取响应。例如:\n``python\nfrom lagent.llms import VllmModel\nfrom lagent.agents import Agent\nfrom lagent.schema import AgentMessage\n\nllm = VllmModel(path='Qwen/Qwen2-7B-Instruct')\nagent = Agent(llm)\nuser_msg = AgentMessage(sender='user', content='今天天气情况')\nbot_msg = agent(user_msg)\nprint(bot_msg)\n``\n对于工具使用,可以定义 ActionExecutor 并注册钩子来执行代码。

这个 Agent 与同类方案有什么区别?

与 AutoGen 和 LangGraph 等框架类似,但 Lagent 更轻量,强调 PyTorch 式设计,提供更直观的层和消息传递机制。

常见问题

Lagent 是否支持本地模型?
是的,Lagent 支持通过 VllmModel 使用本地模型,如 Qwen/Qwen2-7B-Instruct。
我可以自定义工具调用吗?
可以,您可以通过编写钩子(Hooks)和自定义聚合器来实现自定义工具调用逻辑。
Lagent 是否支持多智能体协作?
支持,您可以创建多个 Agent 并通过消息传递实现协作,例如博客撰写示例。
部署 Lagent 需要什么硬件?
这取决于所使用的 LLM 后端。如果使用本地模型,则需要足够的 GPU 内存;如果使用 API,则无需本地 GPU。

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents