在人工智能领域,多智能体系统(Multi-Agent Systems, MAS)正逐渐成为解决复杂问题的重要手段。然而,传统多智能体系统的开发往往面临诸多挑战,如开发效率低、协作能力弱、扩展性差等。京东开源的 OxyGent 框架,以其高效开发、智能协作和弹性架构等特点,为这些问题提供了全新的解决方案。本文将详细介绍 OxyGent 的核心功能、技术架构以及如何快速上手使用。
一、项目概述
OxyGent 是一个开源的多智能体协作框架,它将工具、模型和智能体抽象为模块化的 Oxy 组件,通过标准化的接口和透明的端到端管道,为开发者提供无缝且无限可扩展的多智能体系统构建、运行和演进能力。OxyGent 的目标是让开发者能够快速将复杂的构想转化为可运行的多智能体团队,极大地简化开发流程,提升开发效率。
二、核心功能
(一)高效开发
模块化设计:OxyGent 采用模块化设计,将工具、模型和智能体抽象为可插拔的 Oxy 组件,类似于乐高积木,开发者可以通过简洁的 Python 接口快速组装智能体,无需复杂的配置文件。
热插拔与复用:Oxy 组件支持热插拔和跨场景复用,开发者可以在运行时动态替换组件,灵活调整系统功能。
一键部署:通过简单的命令即可完成部署,无论是本地环境还是云端,都能轻松实现。
(二)智能协作
动态规划范式:OxyGent 支持动态任务分解,智能体能够实时协商解决方案并适应变化,确保在面对突发情况时能够灵活应对。
链路决策追溯:每一步决策都能自动生成可追溯的决策图,类似于 Git 的版本控制,方便开发者进行审计和回溯。
(三)弹性架构
支持任意拓扑结构:OxyGent 的底层架构支持任意智能体拓扑结构,无论是简单的 ReAct 模式还是复杂的混合规划模式,都能轻松实现。
自动化依赖管理:提供自动化依赖映射和可视化调试工具,帮助开发者优化分布式系统的性能。
(四)持续进化
内置评估引擎:OxyGent 内置评估引擎,能够自动生成训练数据,智能体通过知识反馈循环不断优化自身性能。
透明化学习过程:整个学习过程完全透明,开发者可以随时查看智能体的进化情况。
(五)高扩展性
分布式调度器:OxyGent 的分布式调度器能够实现线性成本增长,同时提供指数级的协作智能提升,轻松应对大规模实时决策和优化任务。
三、技术原理
(一)存储库(Repository)
它就像是一个巨大而有序的知识宝库,承担着统一存储智能体、工具、LLM 模型、数据和系统文件的重要职责。在这个存储库中,所有的资源都被妥善保管,以一种标准化的方式进行组织,方便系统随时调用和管理。
(二)生产框架(Production Framework)
这是一个完整且高效的生产链,涵盖了从注册、构建、运行、评估到进化的全过程。就像一条现代化的生产线,每一个环节都紧密相连,确保智能体系统能够有条不紊地运作。
(三)服务框架(Service Framework)
作为一个完整的业务系统服务器,它为整个系统提供了关键的存储和监控支持。在存储方面,它能够确保系统运行过程中产生的数据和信息得到安全可靠的保存,以便后续的查询和分析。监控功能则如同系统的“眼睛”,实时关注着系统的运行状态,对各个组件的性能、智能体的行为等进行全方位的监测。
(四)工程基础(Engineering Base)
它为OxyGent 框架提供了丰富的外部支持,其中包括数据库和推理引擎等集成模块。数据库作为数据的重要存储和管理工具,能够高效地存储和检索大量的数据,为智能体的决策提供有力的数据支持。推理引擎则负责对数据进行分析和处理,根据预设的规则和模型进行推理,帮助智能体做出更加准确和合理的决策。
四、应用场景
(一)智能客服与虚拟助手
OxyGent 可构建智能客服系统,处理复杂查询、多轮对话和任务执行。智能体通过动态规划范式分解任务、实时协商解决方案,提供高效服务。全链路决策追溯功能便于企业审计和优化,提升客户满意度。
(二)自动化业务流程
OxyGent 实现企业跨部门、跨系统复杂业务流程的自动化。智能体协作完成任务分配、执行和监控,提高流程效率和准确性。例如,在供应链管理中,智能体优化物流路线,降低运营成本。
(三)内容生成与创作
OxyGent 结合多智能体协作,实现多模态内容自动化生成。智能体收集数据、生成新闻稿件或广告文案,内置评估引擎优化内容质量。透明化学习过程便于开发者干预和调整。
(四)决策支持系统
OxyGent 为复杂决策提供智能辅助,智能体分析多维度数据、提出综合建议。动态规划范式评估决策方案,全链路决策追溯功能提供详细依据,助力科学决策。
(五)研发与测试自动化
OxyGent 构建自动化研发辅助工具和测试平台。研发阶段,智能体生成代码框架、提供优化建议;测试阶段,智能体执行测试用例、检测问题。持续进化功能适应新的开发和测试需求。
(六)智能控制与优化
OxyGent 支持工业自动化和智能城市建设中的系统优化和控制。智能体实时监测设备状态、调整参数,优化生产过程;协调交通流量、能源分配,提升城市运行效率。自动化依赖管理和评估引擎助力系统优化性能。
五、快速上手
(一)环境准备
1. 创建并激活 Python 环境(推荐使用 Conda):
conda create -n oxy_env python==3.10
conda activate oxy_env
或者使用[uv](https://astral.sh/uv/):
curl -LsSf https://astral.sh/uv/install.sh | sh
uv python install 3.10
uv venv .venv --python 3.10
source .venv/bin/activate
2. 安装依赖:
pip install -r requirements.txt
brew install coreutils
(二)编写示例代码
以下是一个简单的示例代码,展示了如何使用OxyGent 创建一个多智能体系统:
import os
from oxygent import MAS, Config, oxy, preset_tools
Config.set_agent_llm_model("default_llm")
oxy_space = [
oxy.HttpLLM(
name="default_llm",
api_key=os.getenv("DEFAULT_LLM_API_KEY"),
base_url=os.getenv("DEFAULT_LLM_BASE_URL"),
model_name=os.getenv("DEFAULT_LLM_MODEL_NAME"),
llm_params={"temperature": 0.01},
semaphore=4,
),
preset_tools.time_tools,
oxy.ReActAgent(
name="time_agent",
desc="A tool that can query the time",
tools=["time_tools"],
),
preset_tools.file_tools,
oxy.ReActAgent(
name="file_agent",
desc="A tool that can operate the file system",
tools=["file_tools"],
),
preset_tools.math_tools,
oxy.ReActAgent(
name="math_agent",
desc="A tool that can perform mathematical calculations.",
tools=["math_tools"],
),
oxy.ReActAgent(
is_master=True,
name="master_agent",
sub_agents=["time_agent", "file_agent", "math_agent"],
),
]
async def main():
async with MAS(oxy_space=oxy_space) as mas:
await mas.start_web_service(first_query="What time is it now? Please save it into time.txt.")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
(三)配置LLM 参数
在运行代码之前,需要配置LLM 的相关参数。可以通过环境变量或 `.env` 文件进行配置:
export DEFAULT_LLM_API_KEY="your_api_key"
export DEFAULT_LLM_BASE_URL="your_base_url"
export DEFAULT_LLM_MODEL_NAME="your_model_name"
或者创建一个`.env` 文件:
DEFAULT_LLM_API_KEY="your_api_key"
DEFAULT_LLM_BASE_URL="your_base_url"
DEFAULT_LLM_MODEL_NAME="your_model_name"
(四)运行示例
运行上述代码后,系统将启动一个Web 服务,并处理用户的查询请求。你可以通过访问服务地址查看输出结果。
六、结语
OxyGent 作为京东开源的多智能体协作框架,凭借其高效开发、智能协作和弹性架构等特点,为开发者提供了一个强大的工具,能够快速构建生产就绪的智能系统。无论是在智能客服、自动化业务流程还是复杂决策支持等领域,OxyGent 都能够发挥重要作用。希望本文能帮助你更好地了解和使用 OxyGent,开启智能系统开发的新篇章。
GitHub 仓库:https://github.com/jd-opensource/OxyGent
点亮“关注”,设为“星标”,精彩不迷路!与你携手探索AI的无限可能,精彩内容持续更新!🚀