OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  Langroid — 面向多智能体协作的轻量级 LLM 应用框架

Langroid — 面向多智能体协作的轻量级 LLM 应用框架

 
  cedarx ·  2026-03-20 11:00:22 · 4 次点击  · 0 条评论  

Langroid 是一个由 CMU 和 UW-Madison 的研究人员开发的直观、轻量、可扩展且设计精良的 Python 框架,用于轻松构建基于 LLM 的应用程序。
你可以设置智能体(Agent),为其配备可选组件(LLM、向量存储和工具/函数),分配任务,并让它们通过交换消息协作解决问题。
这种多智能体范式灵感来源于 Actor 框架(但你无需了解它!)。

Langroid 是对 LLM 应用开发的全新尝试,其设计充分考虑了简化开发者体验;它不使用 Langchain 或任何其他 LLM 框架,并且可以与几乎所有 LLM 协同工作。

🔥 ✨ 可选的 Claude Code 插件 可用于加速 Langroid 开发,它内置了模式和最佳实践。

🔥 阅读(进行中)的 Langroid 架构概述Langroid 快速导览

🔥 MCP 支持:通过 Langroid 简单的 MCP 工具适配器,允许任何 LLM 智能体利用 MCP 服务器的功能,该适配器将服务器的工具转换为 Langroid 的 ToolMessage 实例。

📢 公司正在生产环境中使用/适配 Langroid。以下是一段引用:

Nullify 使用 AI 智能体进行安全的软件开发。它能发现、优先处理和修复漏洞。在评估了 CrewAI、Autogen、LangChain、Langflow 等框架后,我们内部已在生产环境中适配了 Langroid 的多智能体编排框架。我们发现 Langroid 在易用性和灵活性方面远优于这些框架。Langroid 的 Agent 和 Task 抽象非常直观、设计精良,提供了极佳的开发者体验。我们希望以最快的方式将产品投入生产。使用其他框架可能需要数周,但使用 Langroid 我们在几分钟内就取得了良好的结果。强烈推荐!
-- Jacky Wong, Nullify AI 负责人。

🔥 查看 LanceDB 团队的这篇 Langroid 介绍 博客文章。

🔥 刚刚发表于 ML for Healthcare (2024):一个基于 Langroid 的多智能体 RAG 系统,用于药物警戒,参见 博客文章

我们欢迎贡献:查看 贡献指南 了解可以贡献的内容。

你正在构建 LLM 应用程序,需要为你的公司获取 Langroid 方面的帮助,或者希望根据公司用例优先开发 Langroid 功能吗?
Prasad Chalasani 可提供咨询(顾问/开发)服务:pchalasani at gmail dot com。

也可以通过 GitHub Sponsors 接受赞助。

有问题、反馈或想法?加入我们的 Discord

Langroid 编码快速一览

这只是一个预览;还有更多功能,如函数调用/工具、多智能体协作、结构化信息提取、DocChatAgent(RAG)、SQLChatAgent、非 OpenAI 的本地/远程 LLM 等。向下滚动或查看文档了解更多。
查看 Langroid 快速入门 Colab,它逐步构建了一个使用 OpenAI ChatCompletion API 的双智能体信息提取示例。
另请查看这个 版本,它使用 OpenAI Assistants API 代替。

🔥 刚刚发布!示例 脚本展示了如何使用 Langroid 多智能体和工具,仅使用本地 LLM(Mistral-7b-instruct-v0.2)从文档中提取结构化信息。

import langroid as lr
import langroid.language_models as lm

# 设置 LLM
llm_cfg = lm.OpenAIGPTConfig( # 或使用 OpenAIAssistant 来使用 Assistant API
  # 任何通过 OpenAI 兼容 API 服务的模型
  chat_model=lm.OpenAIChatModel.GPT4o, # 或者,例如 "ollama/mistral"
)
# 直接使用 LLM
mdl = lm.OpenAIGPT(llm_cfg)
response = mdl.chat("What is the capital of Ontario?", max_tokens=10)

# 在智能体中使用 LLM
agent_cfg = lr.ChatAgentConfig(llm=llm_cfg)
agent = lr.ChatAgent(agent_cfg)
agent.llm_response("What is the capital of China?") 
response = agent.llm_response("And India?") # 维护对话状态

# 将智能体包装在 Task 中,与用户(或其他智能体)运行交互循环
task = lr.Task(agent, name="Bot", system_message="You are a helpful assistant")
task.run("Hello") # 用户说 "Hello" 开始

# 2-智能体聊天循环:教师智能体向学生智能体提问
teacher_agent = lr.ChatAgent(agent_cfg)
teacher_task = lr.Task(
  teacher_agent, name="Teacher",
  system_message="""
    Ask your student concise numbers questions, and give feedback. 
    Start with a question.
    """
)
student_agent = lr.ChatAgent(agent_cfg)
student_task = lr.Task(
  student_agent, name="Student",
  system_message="Concisely answer the teacher's questions.",
  single_round=True,
)

teacher_task.add_sub_task(student_task)
teacher_task.run()

🔥 更新/发布

点击展开 - **2025年8月:** - [0.59.0](https://github.com/langroid/langroid/releases/tag/0.59.0) 完成 Pydantic V2 迁移 - 验证速度提升 5-50 倍,采用现代 Python 模式,100% 向后兼容。 - **2025年7月:** - [0.58.0](https://github.com/langroid/langroid/releases/tag/0.58.0) Crawl4AI 集成 - 使用 Playwright 进行基于浏览器的网页爬取,适用于 JavaScript 密集型网站,无需 API 密钥(感谢 @abab-dev!)。 - [0.57.0](https://github.com/langroid/langroid/releases/tag/0.57.0) 用于交互式任务可视化的 HTML 日志记录器 - 包含可折叠条目、自动刷新和持久 UI 状态的自包含 HTML 日志。 - **2025年6月:** - [0.56.0](https://github.com/langroid/langroid/releases/tag/0.56.0) `TaskTool` 用于将任务委托给子智能体 - 使智能体能够生成具有特定工具和配置的子智能体。 - [0.55.0](https://github.com/langroid/langroid/releases/tag/0.55.0) 基于事件的任务终止,使用 `done_sequences` - 使用事件模式声明式地完成任务。 - [0.54.0](https://github.com/langroid/langroid/releases/tag/0.54.0) Portkey AI Gateway 支持 - 通过统一 API 访问 200 多个供应商的模型,支持缓存、重试和可观测性。 - **2025年3-4月:** - [0.53.0](https://github.com/langroid/langroid/releases/tag/0.53.0) MCP 工具支持。 - [0.52.0](https://github.com/langroid/langroid/releases/tag/0.52.0) 多模态支持,即允许 PDF、图像输入到 LLM。 - [0.51.0](https://github.com/langroid/langroid/releases/tag/0.51.0) `LLMPdfParser`,将 `GeminiPdfParser` 泛化为直接用 LLM 解析文档。 - [0.50.0](https://github.com/langroid/langroid/releases/tag/0.50.0) 结构感知的 Markdown 分块,分块通过章节标题得到增强。 - [0.49.0](https://github.com/langroid/langroid/releases/tag/0.49.0) 支持轻松切换到 LiteLLM 代理服务器。 - [0.48.0](https://github.com/langroid/langroid/releases/tag/0.48.0) Exa 爬虫,Markitdown 解析器。 - [0.47.0](https://github.com/langroid/langroid/releases/tag/0.47.0) 支持 Firecrawl URL 抓取器/爬虫 - 感谢 @abab-dev。 - [0.46.0](https://github.com/langroid/langroid/releases/tag/0.46.0) 支持 LangDB LLM 网关 - 感谢 @MrunmayS。 - [0.45.0](https://github.com/langroid/langroid/releases/tag/0.45.0) 使用 `Marker` 进行 Markdown 解析 - 感谢 @abab-dev。 - [0.44.0](https://github.com/langroid/langroid/releases/tag/0.44.0) 延迟导入以减少启动时间。感谢 @abab-dev。 - **2025年2月:** - [0.43.0](https://github.com/langroid/langroid/releases/tag/0.43.0): `GeminiPdfParser` 用于使用 Gemini LLM 解析 PDF - 感谢 @abab-dev。 - [0.42.0](https://github.com/langroid/langroid/releases/tag/0.42.0): 用于 `pptx,xlsx,xls` 文件的 `markitdown` 解析器,感谢 @abab-dev。 - [0.41.0](https://github.com/langroid/langroid/releases/tag/0.41.0): `pinecone` 向量数据库(感谢 @coretado),`Tavily` 网络搜索(感谢 @Sozhan308),`Exa` 网络搜索(感谢 @MuddyHope)。 - [0.40.0](https://github.com/langroid/langroid/releases/tag/0.40.0): `pgvector` 向量数据库。感谢 @abab-dev。 - [0.39.0](https://github.com/langroid/langroid/releases/tag/0.39.0): `ChatAgentConfig.handle_llm_no_tool` 用于处理 LLM “忘记”使用工具的情况。 - [0.38.0](https://github.com/langroid/langroid/releases/tag/0.38.0): Gemini 嵌入 - 感谢 @abab-dev。 - [0.37.0](https://github.com/langroid/langroid/releases/tag/0.37.0): 新的 PDF 解析器:`docling`, `pymupdf4llm`。 - **2025年1月:** - [0.36.0](https://github.com/langroid/langroid/releases/tag/0.36.0): Weaviate 向量数据库支持(感谢 @abab-dev)。 - [0.35.0](https://github.com/langroid/langroid/releases/tag/0.35.0): 捕获/流式传输推理 LLM(如 DeepSeek-R1, OpenAI o1)的推理内容以及最终答案。 - [0.34.0](https://github.com/langroid/langroid/releases/tag/0.34.0): DocChatAgent 分块增强以改进检索。(与 @dfm88 合作)。 - [0.33.0](https://github.com/langroid/langroid/releases/tag/0.33.3) 从 Poetry 迁移到 uv!(感谢 @abab-dev)。 - [0.32.0](https://github.com/langroid/langroid/releases/tag/0.32.0) DeepSeek v3 支持。 - **2024年12月:** - [0.31.0](https://github.com/langroid/langroid/releases/tag/0.31.0) Azure OpenAI 嵌入。 - [0.30.0](https://github.com/langroid/langroid/releases/tag/0.30.0) Llama-cpp 嵌入(感谢 @Kwigg)。 - [0.29.0](https://github.com/langroid/langroid/releases/tag/0.29.0) 自定义 Azure OpenAI 客户端(感谢 @johannestang)。 - [0.28.0](https://github.com/langroid/langroid/releases/tag/0.28.0) `ToolMessage`:`_handler` 字段用于覆盖 `request` 字段中的默认处理方法名称(感谢 @alexagr)。 - [0.27.0](https://github.com/langroid/langroid/releases/tag/0.27.0) OpenRouter 支持。 - [0.26.0](https://github.com/langroid/langroid/releases/tag/0.26.0) 更新到最新的 Chainlit。 - [0.25.0](https://github.com/langroid/langroid/releases/tag/0.25.0) 智能体和用户响应的真正异步方法(感谢 @alexagr)。 - **2024年11月:** - **[0.24.0](https://langroid.github.io/langroid/notes/structured-output/)**: 支持 `Agent` 在兼容的 LLM 上使用严格的 JSON 模式输出格式,以及 OpenAI 工具 API 的严格模式。(感谢 @nilspalumbo)。 - **[0.23.0](https://langroid.github.io/langroid/tutorials/local-llm-setup/#local-llms-hosted-on-glhfchat)**: 支持托管在 glhf.chat 上的 LLM(例如 `Qwen2.5-Coder-32b-Instruct`)。 - **[0.22.0](https://langroid.github.io/langroid/notes/large-tool-results/)**: 截断大型工具结果的可选参数。 - **[0.21.0](https://langroid.github.io/langroid/notes/gemini/)** 通过 OpenAI 客户端直接支持 Gemini 模型,而不是使用 LiteLLM。 - **[0.20.0](https://github.com/langroid/langroid/releases/tag/0.20.0)** 支持 ArangoDB 知识图谱。 -
4 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私政策 ·  服务条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 44 ms
Developed with Cursor