Doramagic 项目包 · 项目说明书
LazyLLM 项目
LazyLLM:构建多智能体 LLM 应用的最简、最懒方式。
Overview & System Architecture
LazyLLM 是一个面向多智能体(Multi-Agent)应用的开发与部署框架,核心定位是"用搭积木的方式构建 AI 应用"。项目的设计目标涵盖四个维度:便捷的 AI 应用组装流程、一键部署复杂应用、跨平台兼容(裸机、Slurm 集群、公有云等)以及对不同模型与框架(在线服务、本地推理、微调框架、向量库、关系库)提供统一的开发者体验 README.md。
继续阅读本节完整说明和来源证据。
1. 系统定位与设计目标
LazyLLM 是一个面向多智能体(Multi-Agent)应用的开发与部署框架,核心定位是"用搭积木的方式构建 AI 应用"。项目的设计目标涵盖四个维度:便捷的 AI 应用组装流程、一键部署复杂应用、跨平台兼容(裸机、Slurm 集群、公有云等)以及对不同模型与框架(在线服务、本地推理、微调框架、向量库、关系库)提供统一的开发者体验 README.md。
在 v0.7.1 版本中,Agent 模块、文档解析服务与启动系统经历了重大重构,并新增了 Elasticsearch、OceanBase 等存储后端以及 SiliconFlow、MiniMax 等在线模型提供方,同时引入了综合缓存系统以提升性能 README.md。这些演进都围绕"在不破坏向后兼容性的前提下扩展生态"这一目标展开。
2. 核心架构
LazyLLM 的架构以 Module 为最小可调度单元,以 Flow 为数据流编排机制,以 ActionModule 提供训练/部署的副作用通道。下图展示了一个典型的应用从配置到运行的纵向分层:
graph TD
A[用户入口: WebModule / CLI / Engine] --> B[Module 抽象层]
B --> C[Flow 编排: Pipeline / Parallel / IFS / Loop]
C --> D[子 Module: TrainableModule / OnlineChatModule / UrlModule / ServerModule]
D --> E[ActionModule: 训练或部署副作用]
E --> F[资源层: 本地推理框架 / 在线 API / 向量库 / 关系库]
B -.工具注册.-> G[toolsManager / ModuleTool]
B -.技能加载.-> H[skill_manager / skill_hub]- Module 抽象层:所有可调用对象都被包装为
Module,提供统一的start()/wait()/update()接口。 - Flow 编排层:
Pipeline、Parallel、Diverter、Warp、IFS、Loop等预定义 Flow 负责在 Module 之间搬运数据 README.md。 - ActionModule 副作用通道:当某个子 Module 需要训练或部署时,
ActionModule接管其生命周期管理 README.md。 - 资源层:屏蔽底层推理框架(vllm/lightllm)、在线 API、向量库的差异,对上层提供统一调用语义 README.md。
3. 关键模块体系
下表汇总了 README 中列出的核心 Module 类型及其能力差异(是否支持训练/部署/包装/服务化):
| Module 类型 | 主要职责 | 训练 | 部署 | 包装 | 服务化 |
|---|---|---|---|---|---|
| TrainableModule | 可训练模型基类,所有支持的模型均为其子类 | ✅ | ✅ | ✅ | ✅ |
| OnlineChatModule | 在线聊天模型的微调与推理 | ✅ | ✅ | ✅ | ✅ |
| OnlineEmbeddingModule | 在线 Embedding 推理 | ❌ | ✅ | ✅ | ✅ |
| ServerModule | 将函数/Flow/Module 包装为 API | ❌ | ✅ | ✅ | ✅ |
| WebModule | 启动多轮对话 Web 界面 | ❌ | ✅ | ❌ | ✅ |
| UrlModule | 包装任意 URL 访问外部服务 | ❌ | ❌ | ✅ | ✅ |
| ActionModule | 训练/部署 TrainableModule 子模块 | ✅ | ✅ | — | — |
资料来源:README.md
4. Agent 与工具/技能生态
Agent 子系统是 LazyLLM 0.7.x 重点重构的对象。ReactAgent 基于 FunctionCall + Loop 组合实现 ReAct 范式:LLM 输出 tool_calls 时进入下一轮迭代,返回字符串时触发 Loop 终止条件 reactAgent.py。历史消息通过 locals['_lazyllm_agent']['workspace'] 隔离存储,避免并发请求间的状态泄漏 AGENTS.md。
工具与技能侧的双层结构:
- Tools(工具):通过
ModuleTool继承或@register('tool')装饰器注册,toolsManager解析 docstring + 类型注解生成 Pydantic schema toolsManager.py。例如write_file内置工具支持overwrite|append模式与目录创建 file_tool.py。 - Skills(技能):通过
skill_hub从 GitHubowner/repo[/path]安装,调用 Git Trees API 递归列出文件并下载到本地 skill_hub.py。skill_manager强制要求在使用read_reference/run_script前必须先get_skill获取 SKILL.md 内容 skill_manager.py。
社区反馈 #1035 反映 OnlineModule(type='image_editing') 当前接口不支持图文交错内容,这属于在线多模态模块层面的待完善项。
5. 部署与 CLI 接口
CLI 入口在 main.py 中路由到 install / deploy / run / skills / review / review-local 六个子命令。其中:
lazyllm deploy <model>支持按模型启动推理服务,README 中以 vLLM 为例说明--tp(张量并行)等参数;可通过LAZYLLM_VLLM_SKIP_CHECK_KW=True绕过参数白名单校验 cli/README.md。lazyllm review与lazyllm review-local提供 PR 级与本地 git 仓库的 AI 代码审查,支持--base main与--no-uncommitted等参数 review.py。
模型侧的 prompt 模板与对话协议(如 chatglm3、glm-4、internlm2、deepseek-r1 的 tool_start_token / stop_words)由 model_mapping.py 统一维护。
6. Prompt 模板与数据来源
内置的 prompt 模板主要来自两个开源数据集:awesome-chatgpt-prompts-zh(MIT 协议,124 条中文 prompt)和 prompts.chat(CC0-1.0 协议,1192 条英文 prompt)。这些数据仅做了字段归一化与格式微调,未对原始内容做整体改写 prompts_actor/README.md。
社区反馈 #655 指出部分教程文档的标题未被正确编译,这是文档构建流水线层面的常见问题,与核心架构无关,但在阅读 Learn / CookBook 系列时需要留意。
See Also
- Agent 体系与 ReAct 循环
- Flow 编排参考
- Module 体系总览
- CLI 部署与代码审查
资料来源:README.md
RAG: Document Loading, Stores, and Retrieval
LazyLLM 的 RAG(Retrieval-Augmented Generation)模块为多模态、多知识库场景下的检索增强生成提供了端到端的基础设施。该模块围绕 Document 核心抽象组织数据流,覆盖从原始数据接入、向量化存储到多路召回与重排序的完整链路。RAG 模块的关键项目括:横向扩展的 RAG 节点、宏问答(macro Q&A)跨库能力、至少一种开源知识图...
继续阅读本节完整说明和来源证据。
概述
LazyLLM 的 RAG(Retrieval-Augmented Generation)模块为多模态、多知识库场景下的检索增强生成提供了端到端的基础设施。该模块围绕 Document 核心抽象组织数据流,覆盖从原始数据接入、向量化存储到多路召回与重排序的完整链路。RAG 模块的关键项目括:横向扩展的 RAG 节点、宏问答(macro Q&A)跨库能力、至少一种开源知识图谱框架集成,以及对 20+ 文档类型的切分策略支持。资料来源:README.md
整体架构
RAG 模块的核心由三层组成:文档加载层、节点与存储层、检索与重排序层。三者通过 Document、Retriever、Reranker 三个高阶类解耦,便于用户按需替换组件。
flowchart LR
A[原始数据<br>PDF/Markdown/CSV] --> B[Readers<br>文档加载]
B --> C[Document<br>节点组管理]
C --> D[Splitter<br>切分策略]
D --> E[Embedding<br>向量化]
E --> F[Vector Store / Map Store]
F --> G[Retriever<br>多路召回]
G --> H[Reranker<br>重排序]
H --> I[LLM 生成回答]文档加载(Document Loading)
LazyLLM 的文档加载通过 lazyllm.tools.rag.readers 包实现,支持 PDF、Markdown、CSV、Docx 等多种格式。每个 Reader 负责将原始文件解析为统一的 DocNode 列表,便于后续统一处理。例如 pdfReader.py 提供基于 PDF 解析的节点生成能力。资料来源:lazyllm/tools/rag/readers/pdfReader.py
Document 是用户接入数据的入口对象,典型用法如下:
from lazyllm import Document, SentenceSplitter, Retriever, Reranker
import lazyllm
documents = Document(
dataset_path="your data path",
embed=lazyllm.OnlineEmbeddingModule(),
manager=False,
)
manager=False 表示由用户显式管理节点组;设为 True 时,框架会自动管理并暴露后台管理界面。资料来源:README.md
文档存储与节点组(Stores & Node Groups)
存储层负责把解析后的 DocNode 写入不同的后端。LazyLLM 通过 create_node_group 方法支持多种切分与存储策略并行存在:
documents.create_node_group(
name="sentences",
transform=SentenceSplitter,
chunk_size=1024,
chunk_overlap=100,
)
每个节点组可以独立配置切分器、嵌入模型和后端存储。系统支持 bm25_chinese 等基于词频的稀疏检索后端以及基于 Embedding 的稠密向量库。V0.7 版本已支持 Elasticsearch 与 OceanBase 作为新的存储供应商,进一步扩展生态。资料来源:README.md
检索与重排序(Retrieval & Re-ranking)
检索阶段由 Retriever 类承担,支持按节点组、相似度算法与 TopK 等参数灵活配置:
prl.retriever1 = Retriever(
documents, group_name="sentences",
similarity="cosine", topk=3,
)
prl.retriever2 = Retriever(
documents, "CoarseChunk", "bm25_chinese", 0.003, topk=3,
)
多个 Retriever 可以通过 parallel().sum 进行结果合并,召回阶段常用“向量 + BM25”双路召回以兼顾语义匹配与关键词匹配。资料来源:README.md
重排序阶段由 Reranker 实现,常用 ModuleReranker 加载 bge-reranker-large 等模型:
ppl.reranker = Reranker(
"ModuleReranker",
model="bge-reranker-large",
topk=1,
) | bind(query=ppl.input)
最终将排序后的节点内容拼装为 prompt 上下文,交给 LLM 生成回答:
ppl.formatter = (
lambda nodes, query: dict(
context_str="".join([node.get_content() for node in nodes]),
query=query,
)
) | bind(query=ppl.input)
ppl.llm = lazyllm.OnlineChatModule(stream=False).prompt(
lazyllm.ChatPrompter(prompt, extra_keys=["context_str"])
)
资料来源:README.md
关键参数对照
| 组件 | 关键参数 | 说明 |
|---|---|---|
Document | dataset_path, embed, manager | 数据路径、嵌入模型、是否托管节点组 |
create_node_group | name, transform, chunk_size, chunk_overlap | 节点组名称、切分器、块大小与重叠 |
Retriever | group_name, similarity, topk | 检索节点组、相似度算法、返回数量 |
Reranker | model, topk | 重排模型与最终返回数量 |
常见使用模式与失败模式
- 多路召回合并:通过
parallel().sum聚合多个 Retriever 的结果,再交给 Reranker 统一排序,是 V0.6 起推荐的混合检索范式。资料来源:README.md - 多知识库横向扩展:V0.6 起,RAG 模块已支持宏问答跨库能力,便于企业级多源知识整合。资料来源:README.md
- 结构化数据处理:V0.7 起支持 CSV 等相对结构化文本的处理。资料来源:README.md
- 社区问题提示:在 Issue #655 中,有用户反馈教程文档的部分标题未正确编译,提示在使用示例代码时需结合当前版本的官方文档与示例库进行对照验证。资料来源:Issue #655
See Also
- 训练与部署:TrainableModule 与 WebModule 使用指南
- Agent 与 FunctionCall 机制:lazyllm/tools/agent/AGENTS.md
- 项目主文档:README.md
资料来源:README.md
Multi-Agent Systems: ReAct, ReWOO, Plan-and-Solve, Function Calling, MCP & Memory
LazyLLM 的多智能体系统位于 lazyllm/tools/agent/ 目录,提供四类开箱即用的 Agent(ReactAgent、PlanAndSolveAgent、ReWOOAgent、FunctionCallAgent)以及统一的工具注册与记忆管理机制。所有 Agent 共享 LazyLLMAgentBase 基类与 FunctionCall 这一核心执行单元,...
继续阅读本节完整说明和来源证据。
Multi-Agent Systems: ReAct, ReWOO, Plan-and-Solve, Function Calling & Memory
概述
LazyLLM 的多智能体系统位于 lazyllm/tools/agent/ 目录,提供四类开箱即用的 Agent(ReactAgent、PlanAndSolveAgent、ReWOOAgent、FunctionCallAgent)以及统一的工具注册与记忆管理机制。所有 Agent 共享 LazyLLMAgentBase 基类与 FunctionCall 这一核心执行单元,使得不同推理范式在数据流、错误处理与工具调用上保持一致 资料来源:lazyllm/tools/agent/__init__.py:1-30。在 v0.7.1 版本中,Agent 模块经历了重大重构,代码可维护性与清晰度显著提升 资料来源:README.md。
Agent 类型与适用场景
| Agent | 工作方式 | 适用场景 |
|---|---|---|
ReactAgent | 推理→行动→观察循环,直至给出最终答案 | 需要多步推理与工具调用的一般任务 |
PlanAndSolveAgent | Planner 拆解子任务,Solver 按计划执行 | 需先规划再执行的复杂任务 |
ReWOOAgent | Planner 生成蓝图,Worker 并行收集证据,Solver 综合 | 适合并行信息收集类任务 |
FunctionCallAgent | 直接选择并调用工具(已弃用,推荐使用 ReactAgent) | 简单单次工具调用 |
资料来源:lazyllm/tools/agent/AGENTS.md:23-32。
FunctionCall 核心执行流
所有 Agent 都通过 FunctionCall 完成"LLM 推理 + 工具调用"的单轮执行,其内部流程如下:
flowchart TD
A[input] --> B[_build_history<br/>构造历史消息]
B --> C[LLM 推理<br/>输出 content 或 tool_calls]
C --> D{是否存在 tool_calls?}
D -- 是 --> E[ToolManager 执行工具]
E --> F[返回 dict<br/>继续循环]
D -- 否 --> G[返回 str<br/>终止循环]ReactAgent 将 FunctionCall 包装在 Loop 内,并以 stop_condition=lambda x: isinstance(x, str) 控制终止:返回 dict(含 tool_calls)则继续,返回 str(最终答案)则停止 资料来源:lazyllm/tools/agent/AGENTS.md:62-72。ReWOOAgent 则在 pipeline 中依次执行 planner_pre_action → planner → worker_evidences → solver_pre_action → solver,并用 ifs 决定是否走工具分支 资料来源:lazyllm/tools/agent/rewooAgent.py:1-25。
工具注册与函数调用 Schema
工具通过 register 装饰器或 ModuleTool 子类注册,由 ToolManager 统一管理:负责将工具注册到临时组、生成 LLM 所需的 tools_description(OpenAI function calling 格式),并执行具体工具调用 资料来源:lazyllm/tools/agent/toolsManager.py。
工具函数的 docstring 格式必须严格遵循如下规范,否则 LLM 无法正确调用:
def my_tool(param1: str, param2: int = 5) -> str:
'''简短描述(用于 description 字段)
Args:
param1 (str): 参数说明。
param2 (int): 参数说明,默认 5。
Returns:
str: 返回值说明。
'''
- 首行:工具的简短描述(映射为
description) Args:块:每个参数的类型与说明(映射为parameters.properties)- 完整类型注解(映射为
parameters.properties.type)
资料来源:lazyllm/tools/agent/AGENTS.md:100-120。
记忆管理与并发安全
FunctionCall 将对话历史写入 locals['_lazyllm_agent']['workspace'](而非实例变量),从而保证在并发请求下不同用户的上下文互不泄露:
workspace = locals['_lazyllm_agent']['workspace']
workspace.setdefault('history', [])
workspace['history'].append({'role': 'user', 'content': input})
资料来源:lazyllm/tools/agent/AGENTS.md:74-81。当 ReactAgent 达到 max_retries 上限且仍未成功时,会尝试从历史中调用 _force_summarize_from_history 强制总结作为兜底 资料来源:lazyllm/tools/agent/reactAgent.py。
Skills 与持久化扩展
SkillManager 提供可持久化的技能管理能力,配合 install_skill 可从 agentskillhub 或 GitHub 安装预制技能:
from lazyllm.tools.agent import install_skill
install_skill('agentskillhub:username/skill-slug')
install_skill('github:owner/repo/path/to/skill')
资料来源:lazyllm/tools/agent/skill_hub.py:1-15、lazyllm/tools/agent/AGENTS.md:140-155。在 ReactAgent 中可通过 skills=True 或 skills=['web_search', 'code_exec'] 等方式加载已安装技能,扩展 Agent 能力边界。
禁止模式与最佳实践
源码 AGENTS.md 明确列出以下禁止项 资料来源:lazyllm/tools/agent/AGENTS.md:165-172:
- 禁止把对话历史存储在 Agent 实例变量中(应使用
locals['_lazyllm_agent']['workspace']) - 禁止省略工具函数的 docstring 或类型注解(schema 生成依赖它们)
- 禁止在工具函数中直接访问
globals(工具应是无状态纯函数) - 禁止在
FunctionCall之外实现工具调用逻辑(应复用FunctionCall) - 禁止重写
__call__(继承ModuleBase的__call__,仅实现forward)
社区方面,issue #1035 反馈了 OnlineModule(type='image_editing') 缺少图文交错输入的支持,反映出多模态工具调用仍是当前社区关注的改进方向 资料来源:Issue #1035。
See Also
- Module System & Flows
- RAG & Document Processing
- Model Deployment & OnlineModule
- CLI & Skills Management
Model Deployment, Online Suppliers & Fine-tuning
LazyLLM 在模型层面提供"统一体验、多端可选"的设计:用户既可以一键拉起本地开源模型(通过 TrainableModule),也可以直接调用各家云端 API(通过 OnlineChatModule、OnlineEmbeddingModule、OnlineModule),并在此之上对模型进行微调与部署。这种统一封装使得同一个上层 Flow 或 Agent 逻辑可以在不修...
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
1. 概览与设计目标
LazyLLM 在模型层面提供"统一体验、多端可选"的设计:用户既可以一键拉起本地开源模型(通过 TrainableModule),也可以直接调用各家云端 API(通过 OnlineChatModule、OnlineEmbeddingModule、OnlineModule),并在此之上对模型进行微调与部署。这种统一封装使得同一个上层 Flow 或 Agent 逻辑可以在不修改业务代码的情况下切换底层模型来源。README.md 中明确指出:项目为不同服务商的在线模型以及本地部署的模型提供"统一的用户体验",并支持模型微调以"持续提升应用性能"。
整套体系包含三条主线:
| 主线 | 入口 | 主要能力 |
|---|---|---|
| 本地训练/推理 | TrainableModule | 自动选择微调框架、内置微调、推理服务启动 |
| 在线 API 调用 | OnlineChatModule / OnlineEmbeddingModule / OnlineModule | 多供应商 Chat、Embedding、文生图、图像编辑 |
| 命令行一键部署 | lazyllm deploy | 单进程启动服务,参数受控 |
资料来源:README.md
2. 部署方式与命令入口
2.1 CLI 部署
lazyllm deploy 是面向运维场景的轻量入口,其命令分发位于 lazyllm/cli/main.py:sys.argv[1] 取值为 install | deploy | run | skills | review | review-local,分发到对应子命令。deploy 子命令的典型用法在 lazyllm/cli/README.md 中给出,支持 --port 指定端口、--tp 指定张量并行度等参数。
# 启动基础服务
lazyllm deploy llama2 --port=8000
# 使用张量并行
lazyllm deploy llama2 --tp=2
对于 vLLM 后端,lazyllm/cli/README.md 中描述了"参数限制策略":默认仅放行经过校验的安全参数,以避免误用;当用户显式设置 LAZYLLM_VLLM_SKIP_CHECK_KW=True 后才会解除限制,并提示用户自行保证参数正确性。这种"白名单 + 可绕过"的设计兼顾了稳定性与灵活性。
2.2 模块化部署
在 Python API 层面,README.md 总结了若干核心 Module:
ServerModule:将任意函数、Flow 或 Module 包装为 API 服务;WebModule:拉起多轮对话 Web 服务,例如lazyllm.WebModule(chat).start().wait();TrainableModule:承载可训练/可微调的本地模型;UrlModule:将任意 URL 包装为 Module 以访问外部服务。
这些 Module 通过统一的 start() / wait() 接口暴露生命周期,因此 lazyllm deploy 与 Python 中的 WebModule(...).start().wait() 在用户体验上保持一致。
资料来源:README.md、lazyllm/cli/README.md、lazyllm/cli/main.py
3. 在线模型供应商与模型注册
3.1 Module 类型矩阵
README.md 给出了在线模块的能力矩阵(节选):
| Module | 训练/微调 | 推理 | 部署 | 说明 |
|---|---|---|---|---|
OnlineChatModule | ✅ | ✅ | ✅ | 集成在线模型的微调与推理服务 |
OnlineEmbeddingModule | ❌ | ✅ | ✅ | 集成在线 Embedding 推理服务 |
OnlineModule(扩展类型) | — | ✅ | — | 涵盖文生图、图像编辑等扩展能力(社区 Issue #1035 即针对 type='image_editing' 提出"图文交错"内容支持请求) |
社区上下文显示,v0.7.1 起新增了 SiliconFlow、MiniMax 等在线供应商,并扩展了新的存储后端(Elasticsearch、OceanBase)。这意味着 OnlineChatModule / OnlineEmbeddingModule 在供应商层是插件式扩展的。
3.2 模型注册与 Prompt 适配
在线与本地模型共享一份模型注册表,集中在 lazyllm/components/utils/downloader/model_mapping.py。该文件包含三块内容:
- Prompt 模板(
prompt_keys):为 chatglm3、glm-4、internlm、internlm2、deepseek、llama、qwen 等模型族声明sos / soh / soa / eos / stop_words等会话控制符。例如glm-4注册了tool_start_token='✿FUNCTION✿: '、tool_args_token='✿ARGS✿: '、tool_end_token='\n',从而兼容其工具调用语法。 - 模型来源(
model_provider):将模型名映射到 HuggingFace 与 ModelScope 的owner/repo,例如internlm -> (internlm, Shanghai_AI_Laboratory)。 - 多模态模型:注册
stable-diffusion-3.5-large、flux.1-dev、cogview4-6b、wan2_1-t2v-1_3b-diffusers等文生图/视频模型,以及pp-ocrv4_server/pp-ocrv5_server等 OCR 模型(download_by_other=True表示由其它渠道拉取)。
由于这份映射同时驱动本地下载与在线供应商的 Prompt 拼装,新增模型时只需在该文件中补全条目即可。
资料来源:lazyllm/components/utils/downloader/model_mapping.py、README.md
4. 模型微调与 ActionModule
README.md 中列出了两类与微调相关的 Module:
TrainableModule:所有受支持模型都视作TrainableModule,可通过ActionModule对其子模块进行训练/微调;并能根据微调场景"自动选择最佳微调框架与模型切分策略"。OnlineChatModule:同样具备微调能力,因为它"集成了在线模型的微调与推理服务"。
这一设计让"先用在线 API 验证 POC,再切换到本地开源模型做微调"成为平滑的迁移路径,不需要重写上层 Flow 或 Agent 代码。
5. 部署与 Agent/Skill 的协同
部署能力与 Agent、Skill 体系是相互补全的。在 lazyllm/tools/agent/AGENTS.md 中,ReactAgent 包装 FunctionCall 形成一个 Loop,循环条件是返回值从 dict(带 tool_calls)变为 str(最终答案)。Loop 的 count=self._max_retries 决定最大工具调用次数,超出后会注入 _FORCE_SUMMARIZE_MSG 强制收尾——这条规则与 lazyllm/tools/agent/reactAgent.py 中的提示模板相对应。
部署好的模型既可以作为 Agent 内的 llm,也可以通过 ToolManager 暴露为工具(见 lazyllm/tools/agent/file_tool.py 中 read_file / write_file 等通过 @register('tool', ...) 注册的工具)。更进一步,用户可以通过 lazyllm/tools/agent/skill_hub.py 的 install_skill 从 GitHub 拉取远端 Skill 目录(按 SKILL.md 加载工作流),从而把外部能力以"技能"形式挂到本地部署好的模型上。
flowchart LR
A[TrainableModule 本地模型] -->|ActionModule 微调| B[ServerModule API]
C[OnlineChatModule / OnlineModule] -->|HTTP| B
B --> D[ReactAgent + FunctionCall]
E[Skill Hub GitHub 拉取] -->|SKILL.md| D
F[ToolManager 注册工具] -->|tool_calls| D
D -->|start / wait| G[WebModule 对话界面]6. 常见问题与失败模式
- CLI 部署参数被拒:vLLM 默认启用参数白名单,需设置
LAZYLLM_VLLM_SKIP_CHECK_KW=True才能使用未登记参数,详见 lazyllm/cli/README.md。 - 在线图像编辑接口能力受限:社区 Issue #1035 反馈
OnlineModule(type='image_editing')暂不支持"图文交错"内容,这是当前已知的扩展点。 - 模型未注册:调用一个未在
model_mapping.py中登记的模型名会导致下载或 Prompt 模板缺失;新增模型必须先在 lazyllm/components/utils/downloader/model_mapping.py 中补齐prompt_keys与source。 - Agent 工具调用死循环:
ReactAgent达到max_retries时会强制注入停止消息;若用户未设置合理的max_retries,长任务会过早截断。
See Also
- Agent System Overview
- Flow 与 Pipeline 设计
- RAG 与文档解析
- CLI 工具总览
资料来源:README.md
失败模式与踩坑日记
保留 Doramagic 在发现、验证和编译中沉淀的项目专属风险,不把社区讨论只当作装饰信息。
假设不成立时,用户拿不到承诺的能力。
新项目、停更项目和活跃项目会被混在一起,推荐信任度下降。
风险会影响是否适合普通用户安装。
用户无法判断遇到问题后是否有人维护。
Pitfall Log / 踩坑日志
项目:LazyAGI/LazyLLM
摘要:发现 6 个潜在踩坑项,其中 0 个为 high/blocking;最高优先级:能力坑 - 能力判断依赖假设。
1. 能力坑 · 能力判断依赖假设
- 严重度:medium
- 证据强度:source_linked
- 发现:README/documentation is current enough for a first validation pass.
- 对用户的影响:假设不成立时,用户拿不到承诺的能力。
- 证据:capability.assumptions | https://github.com/LazyAGI/LazyLLM | README/documentation is current enough for a first validation pass.
2. 维护坑 · 维护活跃度未知
- 严重度:medium
- 证据强度:source_linked
- 发现:未记录 last_activity_observed。
- 对用户的影响:新项目、停更项目和活跃项目会被混在一起,推荐信任度下降。
- 证据:evidence.maintainer_signals | https://github.com/LazyAGI/LazyLLM | last_activity_observed missing
- 严重度:medium
- 证据强度:source_linked
- 发现:no_demo
- 证据:downstream_validation.risk_items | https://github.com/LazyAGI/LazyLLM | no_demo; severity=medium
4. 安全/权限坑 · 存在评分风险
- 严重度:medium
- 证据强度:source_linked
- 发现:no_demo
- 对用户的影响:风险会影响是否适合普通用户安装。
- 证据:risks.scoring_risks | https://github.com/LazyAGI/LazyLLM | no_demo; severity=medium
5. 维护坑 · issue/PR 响应质量未知
- 严重度:low
- 证据强度:source_linked
- 发现:issue_or_pr_quality=unknown。
- 对用户的影响:用户无法判断遇到问题后是否有人维护。
- 证据:evidence.maintainer_signals | https://github.com/LazyAGI/LazyLLM | issue_or_pr_quality=unknown
6. 维护坑 · 发布节奏不明确
- 严重度:low
- 证据强度:source_linked
- 发现:release_recency=unknown。
- 对用户的影响:安装命令和文档可能落后于代码,用户踩坑概率升高。
- 证据:evidence.maintainer_signals | https://github.com/LazyAGI/LazyLLM | release_recency=unknown
来源:Doramagic 发现、验证与编译记录