
目录一、前言二、多智能体系统MAS发展回顾三、LightAgent 的设计理念四、LightAgent 的基本概念1. 智能体2. 记忆3. 工具和工具生成器4. 多智能体协作五、LightAgent 的相关框架六、LightAgent 实操指南一、前言随着大型语言模型LLM的快速发展多智能体系统MAS在软件工程、社会模拟、智能助手等领域取得显著进展。多智能体系统通过多个专业智能体的协同交互实现协作问题解决堪称人工智能领域的范式转变。然而当前通用、稳健且高效的智能体部署平台仍面临诸多挑战 —— 如智能体专业化管理、动态工作流程标准化、LLM 错误容错等且现有框架难以平衡灵活性与简易性阻碍快速部署与可扩展性。LightAgent 作为轻量级却功能强大的智能体框架通过集成内存mem0、工具、思维树ToT等核心功能解决了上述痛点不仅保持极简结构核心代码仅 1000 行还支持多模态数据处理与主流 LLM 兼容且完全开源、可与主流聊天平台无缝集成助力开发者快速构建自学习智能体。图片由 AI 生成二、多智能体系统MAS发展回顾多智能体系统的演进源于分布式人工智能与复杂系统建模领域的进步按时间维度可分为三个关键阶段LightAgent聚焦 “LLM 能力 传统 MAS 原理” 的混合架构已在群体智能、自适应制造系统等实际场景中落地。三、LightAgent 的设计理念LightAgent 以 “轻量级、高适应性、高效率” 为核心设计原则与依赖 LangChain、LlamaIndex 的传统框架形成显著差异具体优势如下1. 全 Python 实现兼容性广完全基于 Python 开发无需依赖任何复杂外部库兼容主流 LLMOpenAI智普 ChatGLMDeepSeekQwen 系列同时支持 OpenAI 流式格式 API 输出可无缝集成主流聊天框架如企业内部聊天系统等。2. 极简架构资源消耗低核心代码库仅 1000 行无复杂第三方库依赖适用于嵌入式设备、低功耗服务器等资源敏感场景运行时保持低延迟毫秒级响应与高处理效率支持实时数据处理如实时客服对话与交互式应用。3. 零繁琐配置易于部署无需复杂配置流程依赖项极少可部署于 Windows、Linux、macOS 等任意操作系统支持云服务器、边缘设备等多种环境依赖项极少配置流程简化仅需几分钟即可完成环境搭建与启动。四、LightAgent 的基本概念1. 智能体定义在人工智能领域智能体指的是由机器学习模型驱动、具备特定任务能力的实体可感知环境、自主行动以达成目标并通过学习 / 知识获取提升性能特性独立运行的同时可根据任务需求与其他智能体交互通过分工互补解决复杂问题如 “数据分析智能体 报告生成智能体” 协同完成业务分析。2. 记忆核心作用上下文支撑记录用户历史交互数据确保多轮对话中上下文连贯如记住用户 “偏好 Excel 格式输出” 的需求自我优化存储智能体过往错误案例与改进策略避免重复犯错如记录 “某 API 调用参数错误” 并自动更新调用逻辑任务追踪在复杂任务中记录各阶段执行过程含用户反馈、操作日志便于后续经验复用。功能细节支持外部存储模块mem0自动保留上下文与历史记录无需人工干预长期记忆随每次交互动态更新智能体自动管理内容确保有效性与一致性定制化用户记忆提升对话个性化体验减少人工干预记忆管理的需求。3. 工具和工具生成器工具定义预定义或动态生成的实用程序帮助智能体突破自身模型局限如通过 “Excel 导出工具” 实现数据可视化通过 “天气 API 工具” 获取实时天气数据框架支持支持手动导入现有工具如 Python 函数、API 接口支持自动化工具生成导入 API 文档后可自动生成对应的领域专用工具如导入电商平台 API 文档自动生成 “订单查询”“库存更新” 等工具面向对象设计提升架构模块化程度便于开发者维护与扩展工具库。4. 多智能体协作系统特性通过 “信息共享 任务分解 协同执行” 形成的有机系统。与简单的智能体聚合不同多智能体系统中的各个智能体之间频繁地交换和共享信息。每个智能体既可以独立完成任务也可以在必要时进行协作。通过任务分解和协同工作多智能体系统能够解决更复杂的问题并通过有效的分工获得互补优势从而更高效地解决问题协作机制基于 LightSwarm 子系统按任务意图自动分配角色如 “需求分析智能体”“代码生成智能体”“测试智能体” 协同开发软件协作优势复杂任务拆解为子任务多智能体并行处理提升效率与准确性智能体间共享经验、讨论新问题避免单智能体局限性与重复错误基于 LightSwarm 子系统实现意图驱动的协作灵活性超越传统群体智能方法。五、LightAgent 的相关框架LightAgent 通过 “集群创建 - 信息同步 - 任务解析 - 执行迭代” 的闭环流程实现多智能体协同任务处理具体步骤如下1. 创建 LightSwarm 集群根据当前任务需求自动注册多个 LightAgent形成协作集群2. 信息同步至内存将任务相关信息如初始需求、上下文数据同步至内存模块确保所有智能体可调用历史 / 上下文3. 任务意图解析与思维树ToT构建解析任务核心需求生成用于问题解决的思维树判断是否需要多智能体协作4. 答案生成与工具调用基于思维树执行任务灵活调用相关工具生成初步输出5. 多轮对话迭代对于需要多轮对话的更复杂任务场景存储历史对话信息迭代优化任务执行过程直至生成最终输出。六、LightAgent 实操指南1. 快速开始通过 pip 命令快速安装 LightAgent 及可选组件# 安装最新版本的LightAgent pip install lightagent # 可选安装若需使用mem0内存模块通过pip安装mem0包 pip install mem0ai2. Hello world 示例代码from LightAgent import LightAgent # 初始化 Agent agent LightAgent(modelqwen3-max, api_keyyour_api_key, base_urlyour_base_url) # 运行 Agent response agent.run(你好你是谁) print(response)3. 通过system提示词设定模型自我认知示例代from LightAgent import LightAgent # 初始化 Agent agent LightAgent( role请记住你是LightAgent一个可以帮助用户完成多工具使用的有用助手。, modelqwen3-max, api_keyyour_api_key, base_urlyour_base_url, ) # 运行 Agent response agent.run(请问你是谁) print(response)4. 使用工具示例代码from LightAgent import LightAgent # 定义工具 def get_weather(city_name: str) - str: Get the current weather for city_name returnf查询结果: {city_name} 天气晴 # 在函数内部定义工具信息 get_weather.tool_info { tool_name: get_weather, tool_description: 获取指定城市的当前天气信息, tool_params: [ {name: city_name, description: 要查询的城市名称, type: string, required: True}, ] } tools [get_weather] # 初始化 Agent agent LightAgent(modelqwen3-max, api_keyyour_api_key, base_urlyour_base_url, toolstools) # 运行 Agent response agent.run(请帮我查询一下上海的天气情况) print(response)5. 使用自动记忆模块示例代码LightAgent 支持外部扩展自定义记忆模块或使用 mem0 作为记忆扩展查看什么是mem0https://github.com/mem0ai/mem0/全自动进行上下文记忆和历史记录管理无需开发人员手动触发添加记忆和记忆查找。通过记忆模块Agent 可以在多轮对话中保持上下文一致性。# 启用记忆模块 from mem0 import Memory from LightAgent import LightAgent from loguru import logger class CustomMemory: def __init__(self): self.memories [] config { vector_store: { provider: milvus, config: { collection_name: test, embedding_model_dims: 1024, url: http://10.3.70.128:19530, db_name: light_agent, token: root:Milvus } }, embedder: { provider: ollama, config: { model: bge-large:335m } }, llm: { provider: ollama, config: { model: qwen2.5:7b, temperature: 0.1, max_tokens: 2000, } } } self.m Memory.from_config(config_dictconfig) def store(self, data: str, user_id): 存储记忆 开发者可以自行修改存储方法的内部实现当前示例为mem0的添加记忆方法 result self.m.add(data, user_iduser_id) return result def retrieve(self, query: str, user_id): 检索相关记忆 开发者可以自行修改检索方法的内部实现当前示例为mem0的查找记忆方法 result self.m.search(query, user_iduser_id) return result agent LightAgent( role请记住你是LightAgent一个可以帮助用户完成多工具使用的有用助手。, modelqwen3-max, api_keyyour_api_key, base_urlyour_base_url, memoryCustomMemory(), # 启用记忆功能 tree_of_thoughtFalse, # 启用思维链 ) # 带记忆的测试 如果需要添加工具可以自行添加tools到agent来实现带记忆的工具调用 user_id user_01 logger.info(\n next conversation ) query 介绍下三亚的有什么好玩的景点身边很多朋友都去三亚旅游了我也想去玩 print(agent.run(query, streamFalse, user_iduser_id)) logger.info(\n next conversation ) query 我想去哪里旅游呢 print(agent.run(query, streamFalse, user_iduser_id))6. 使用工具生成模块示例代码Tools工具生成器是一个用于自动化生成工具代码的模块。它可以根据用户提供的文本描述自动生成相应的工具代码并将其保存到指定的目录中。该功能特别适用于需要快速生成API调用工具、数据处理工具等场景。import os from LightAgent import LightAgent # 初始化LightAgent agent LightAgent( nameAgent A, # 代理名称 instructionsYou are a helpful agent., role请记住你是工具生成器你的任务是根据用户提供的文本描述自动生成相应的工具代码并将其保存到指定的目录中。请确保生成的代码准确、可用并符合用户的需求。, # 工具生成器的角色描述 modeldeepseek-chat, api_keyyour_api_key, base_urlyour_base_url, ) # 示例文本描述 text 新浪股票接口提供了获取股票市场数据的功能包括股票行情、实时交易数据、K线图数据等。 新浪股票接口功能介绍 1、获取股票行情数据 实时行情数据使用实时行情API可以获取股票的最新报价、成交量、涨跌幅等信息。 分钟线行情数据使用分钟线行情API可以获取股票的逐分钟交易数据包括开盘价、收盘价、最高价、最低价等。 2、获取股票历史K线图数据 K线图数据通过K线图API可以获取股票的历史交易数据包括开盘价、收盘价、最高价、最低价、成交量等。可以根据需要选择不同的时间周期和均线周期。 复权数据可以选择获取复权后的K线图数据包括前复权和后复权以便更准确地分析股票的价格变动。 新浪股票接口获取数据示例 1、获取股票行情数据 API地址http://hq.sinajs.cn/list[股票代码] 示例要获取股票代码为sh600519贵州茅台的实时行情数据可以使用以下API地址http://hq.sinajs.cn/listsh600519 通过发送HTTP GET请求到上述API地址你将收到一个包含该股票实时行情数据的响应。 2、获取股票历史K线图数据 API地址http://money.finance.sina.com.cn/quotes_service/api/json_v2.php/CN_MarketData.getKLineData?symbol[股票代码]scale[时间周期]ma[均线周期]datalen[数据长度] 示例要获取股票代码为sh600519贵州茅台的日线K线图数据可以使用以下API地址http://money.finance.sina.com.cn/quotes_service/api/json_v2.php/CN_MarketData.getKLineData?symbolsh600519scale240manodatalen1023 通过发送HTTP GET请求到上述API地址你将收到一个包含该股票历史K线图数据的响应。 # 构建tools目录的路径 project_root os.path.dirname(os.path.abspath(__file__)) tools_directory os.path.join(project_root, tools) # 如果tools目录不存在则创建它 ifnot os.path.exists(tools_directory): os.makedirs(tools_directory) print(fTools目录已创建: {tools_directory}) # 使用agent生成工具代码 agent.create_tool(text, tools_directorytools_directory)7. 多智能体协同示例代码支持类 Swarm 的多智能体协同工作提升任务处理效率。多个 Agent 可以协同完成复杂任务。from LightAgent import LightAgent, LightSwarm # 创建 LightSwarm 实例 light_swarm LightSwarm() # 创建多个 Agent agent_a LightAgent( nameAgent A, debugTrue, log_levelDEBUG, log_fileexample.log, modeldeepseek-chat, api_keyyour_api_key, base_urlyour_base_url, instructions我是代理A是前台接待员, role前台接待员负责接待来访者并提供基本信息指引。每次回答前请前说明自己的身份信息你只能帮助用户引导至其他角色不可以直接回答顾客的业务问题。如果当前不发解决用户的问题请回复对不起当前我无法提供帮助, ) agent_b LightAgent( nameAgent B, debugTrue, log_levelDEBUG, log_fileexample.log, modeldeepseek-chat, api_keyyour_api_key, base_urlyour_base_url, instructions我代理B负责会议室的预定, role会议室预定管理员负责处理1号、2号、3号会议室的预定、取消和查询。每次回答前请前说明自己的身份信息并非常客气的回复用户的提问。, ) agent_c LightAgent( nameAgent C, debugTrue, log_levelDEBUG, log_fileexample.log, modeldeepseek-chat, api_keyyour_api_key, base_urlyour_base_url, instructions我是代理C是技术支持专员负责处理技术问题。每次回答前请说明自己的身份信息并尽可能详细地解答用户的技术问题。如果问题超出我的能力范围请引导用户联系更高级的技术支持。, role技术支持专员负责处理硬件、软件、网络等技术问题的咨询和解决。, ) agent_d LightAgent( nameAgent D, debugTrue, log_levelDEBUG, log_fileexample.log, modeldeepseek-chat, api_keyyour_api_key, base_urlyour_base_url, instructions我是代理D是人力资源专员负责处理人力资源相关的问题。每次回答前请说明自己的身份信息并尽可能详细地解答用户的问题。如果问题需要进一步处理请引导用户联系人力资源部门。, role人力资源专员负责处理员工入职、离职、请假、福利等事务的咨询和处理。, ) # 自动注册代理到 LightSwarm 实例 light_swarm.register_agent(agent_a, agent_b, agent_c, agent_d) # 运行代理 A res light_swarm.run(agentagent_a, query你好我是Alice我需要查询王小明是否已经办理入职, streamFalse) print(res)8. Agent 自我学习Agent 具备独特的场景记忆能力能够精准留存与用户交互过程中的关键信息。同时它拥有强大的从用户对话中汲取知识并进行自我学习的能力在每次对话交流中不断优化自身对各种场景的理解和应对策略从而实现智能水平的持续提升更好地满足用户多样化的需求 。通过这种自我学习机制Agent 能够不断适应复杂多变的任务场景为用户提供更优质、高效且个性化的服务。from LightAgent import LightAgent agent LightAgent( nameAgent A, instructionsYou are a helpful agent., rolePlease remember that you are LightAgent, a useful assistant to help users use multiple tools., # system role description modelqwen3-max, api_keyyour_api_key, base_urlhttp://your_base_url/v1, memoryCustomMemory(), self_learningTrue, # 启用agent自我学习 debugTrue, log_levelDEBUG, log_fileexample.log ) user_id test_user_1 query 我现在有一个采购货款需要转账我的审批流程是怎么样的 agent.run(query, streamFalse, user_iduser_id) query 请记住本公司新规定2025年1月起公司所有采购货款的转账需要先找负责采购的丁总签字再交给财务经历审批财务经历审批后还需要公司总经理审批出纳才能打款转过去。 agent.run(query, streamFalse, user_iduser_id) user_id test_user_2 query 你好我有一笔采购款要转给对方我要怎么申请转账 agent.run(query, streamFalse, user_iduser_id)9. 使用mcp的示例代码import asyncio import json from LightAgent import LightAgent # Initialize Agent agent LightAgent(modelqwen3-max, api_keyyour_api_key, base_urlhttp://your_base_url/v1, debugTrue, log_leveldebug, log_fileexample.log) def read_mcp_settings(): with open(./mcp/lightagent_mcp_settings.json, r) as f: mcp_settings_json json.load(f) return mcp_settings_json # 接入MCP 服务 mcp_settings read_mcp_settings() asyncio.run(agent.setup_mcp(mcp_settingmcp_settings)) # Run Agent response agent.run(Please search the weather in Shanghai., streamFalse) print(response)