Lagent 轻量级智能体框架

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

Star 数
★ 2.3k
最近更新
6 个月前
License
Apache-2.0
主语言
Python

30 秒速览

运行形态
代码库 / SDK开发框架
可在哪里用
通用 · 跨平台OpenAI API
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
Python 3.8+GitpipShell / 命令行网络访问本地文件系统
典型场景
开发者需要快速构建一个能解决数学问题的智能体,通过编写 Python 代码并执行。
不适合
  • 需要开箱即用图形界面或聊天机器人的用户
  • 没有 GPU 或本地模型服务资源的团队

这个 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?

从源码安装:\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 有哪些优点和局限?

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

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

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

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Lagent 轻量级智能体框架 当前 43 · 缺口较多 代码库 / SDK免费 + 模型费 ★ 2.3k 6 个月前 Python OpenAI API
ConnectOnion AI Agent 框架 47 · 缺口较多 命令行工具免费 + 模型费 ★ 1.5k 今天 Python OpenAI API · Claude API
Hello-Agents 智能体教程 54 · 缺口较多 网页应用免费 + 模型费 ★ 84k 5 天前 Python OpenAI API
AgentVerse 28 · 缺口较多 命令行工具免费 + 模型费 ★ 5.2k 2 年前 JavaScript OpenAI API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
43/ 100 五分制 2.2 / 5
信任安全 5/29
可靠稳定 8/14
适用触发 12/18
规范维护 8/18
有效结果 7/13
证据核验 3/8
查看各维度的扣分理由
信任安全5 / 29 · 0.9/5

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

可靠稳定8 / 14 · 2.9/5

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

适用触发12 / 18 · 3.3/5

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

规范维护8 / 18 · 2.2/5

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

有效结果7 / 13 · 2.7/5

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

证据核验3 / 8 · 1.9/5

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

风险与缓解建议
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
  • 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 默认动作如IPythonInteractive可执行任意代码,存在安全风险,建议限制权限或增加用户确认。
  • 依赖未固定版本,可能引入不兼容或漏洞,建议锁定版本并定期扫描。
  • 未提供已知限制和版本变更日志,用户难以评估风险。
证据充分度:低 评估于 2026年8月9日 审查版本 0ab2e2f55047
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. agentrl_rc0
  2. v0.5.0rc3
    发布说明摘录
    What's Changed * Update runtime.txt add tenacity by @vansin in https://github.com/InternLM/lagent/pull/280 * Fixed the search API of AsyncDDGS by @braisedpork1964 in https://github.com/InternLM/lagent/pull/281 * [Model] support Claude by @Harold-lkk in https://github.com/InternLM/lagent/pull/283 * fix anthropic by @Harold-lkk in https://github.com/InternLM/lagent/pull/284 * support o1 and claude by @Harold-lkk in https://github.com/InternLM/lagent/pull/285 * Add do_sample in AsyncLMDeployPipeline (lmdeploy_wrapper.py) by @shinkungoo in https://github.com/InternLM/lagent/pull/290 …
    在 GitHub 查看 ↗
  3. v0.5.0rc2 V0.5.0rc2
    发布说明摘录
    What's Changed * Update dependencies by @braisedpork1964 in https://github.com/InternLM/lagent/pull/268 * [Feat] Add Sequential and AsyncSequential agents by @braisedpork1964 in https://github.com/InternLM/lagent/pull/270 * [Fix] Alternative for aioify by @braisedpork1964 in https://github.com/InternLM/lagent/pull/274 * [Feat] Support resetting agent memory recursively or by keypath by @braisedpork1964 in https://github.com/InternLM/lagent/pull/271 * Fix: http agent server by @liujiangning30 in https://github.com/InternLM/lagent/pull/276 …
    在 GitHub 查看 ↗

常见问题

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

对比同类 Agent

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

相关 Agents