OxyGent 是京东开源(JD Open Source)推出的一款开源 Python 框架,专注于帮助开发者快速构建生产就绪的智能系统。它通过模块化的 Oxy 组件,统一管理工具、模型和智能体,提供端到端的开发流程。OxyGent 支持快速搭建、部署和优化多智能体系统,具备高扩展性和透明性。最新版本(2025年7月15日)在 GAIA 基准测试中得分 59.14,接近顶级开源系统 OWL 的 60.8。它的设计简化了复杂 AI 系统的开发,适合企业和个人开发者使用。
功能列表
- 模块化开发 :提供标准化的 Oxy 组件,类似乐高积木,支持快速组装智能体,允许热插拔和跨场景复用。
- 智能协作 :支持动态任务分解,智能体可实时协商和适应变化,确保决策可审计。
- 弹性架构 :支持多种智能体拓扑结构(如 ReAct 和混合规划),提供自动化依赖管理和可视化调试工具。
- 持续进化 :内置评估引擎,自动生成训练数据,智能体通过反馈循环不断优化。
- 高扩展性 :分布式调度器实现线性成本增长,支持大规模实时决策和优化。
使用帮助
OxyGent 的核心目标是让开发者专注于业务逻辑,快速构建和部署智能系统。以下是详细的安装和使用指南,涵盖主要功能和操作流程。
安装流程
OxyGent 支持 Python 3.10 环境,可通过 conda
或 uv
安装。以下是具体步骤:
使用 Conda 安装
- 创建并激活虚拟环境:
conda create -n oxy_env python=3.10 conda activate oxy_env
- 安装 OxyGent 包:
pip install oxygent
使用 uv 安装
- 安装 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
- 安装 OxyGent 包:
uv pip install oxygent
开发环境设置
若需要本地开发,额外安装 Node.js 和依赖:
- 下载并安装 Node.js。
- 安装项目依赖:
pip install -r requirements.txt
对于 macOS 用户,可能需安装
coreutils
:brew install coreutils
配置语言模型
OxyGent 需连接大型语言模型(LLM)以运行智能体。配置方式如下:
- 创建
.env
文件,填入 LLM 参数:echo 'DEFAULT_LLM_API_KEY="your_api_key"' > .env echo 'DEFAULT_LLM_BASE_URL="your_base_url"' >> .env echo 'DEFAULT_LLM_MODEL_NAME="your_model_name"' >> .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"
使用方法
OxyGent 提供简单 Python 接口,开发者可通过几行代码实现复杂功能。以下是一个示例脚本 demo.py
,展示如何查询时间并保存到文件:
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="查询时间的工具",
tools=["time_tools"],
),
preset_tools.file_tools,
oxy.ReActAgent(
name="file_agent",
desc="操作文件系统的工具",
tools=["file_tools"],
),
preset_tools.math_tools,
oxy.ReActAgent(
name="math_agent",
desc="执行数学计算的工具",
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="当前时间是多少?请保存到 time.txt 文件。")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
运行示例
- 保存上述代码为
demo.py
。 - 确保已配置 LLM 参数。
- 运行脚本:
python demo.py
- 输出结果:系统将查询当前时间并保存到
time.txt
文件。运行后可通过浏览器访问 web 服务查看结果。
特色功能操作
- 模块化智能体开发 :
- OxyGent 的 Oxy 组件允许开发者快速定义智能体。例如,添加新工具:
oxy.NewTool(name="custom_tool", desc="自定义工具", func=custom_function)
- 智能体支持热插拔,运行时可动态替换工具或模型,无需重启系统。
- OxyGent 的 Oxy 组件允许开发者快速定义智能体。例如,添加新工具:
- 动态任务分解 :
- 主智能体(
master_agent
)可将复杂任务分解为子任务,分配给子智能体。例如,输入“分析销售数据并生成报告”,主智能体会协调math_agent
计算数据、file_agent
保存结果。 - 任务分解过程透明,日志记录每一步决策,开发者可通过
MAS
的监控接口查看。
- 主智能体(
- 可视化调试 :
- OxyGent 提供可视化工具,展示智能体交互和依赖关系。访问
http://localhost:port/debug
查看拓扑图。
- OxyGent 提供可视化工具,展示智能体交互和依赖关系。访问
- 持续优化 :
- 内置评估引擎记录每次任务的执行效果,生成训练数据。例如,数学智能体可通过多次计算优化精度。
- 开发者可手动调整
llm_params
(如temperature
)以优化输出质量。
注意事项
- 确保网络连接稳定,LLM API 需要实时访问。
- 本地开发时,建议分配至少 8GB 内存以支持多智能体运行。
- 参考官方文档(
http://oxygent.jd.com/docs/
)获取更多配置选项。
应用场景
- 企业级 AI 系统开发
OxyGent 适合构建企业级智能系统,如客服机器人或数据分析平台。开发者可快速集成多个智能体,处理复杂业务逻辑。 - 自动化任务处理
个人开发者可使用 OxyGent 自动化日常任务。例如,配置智能体监控文件夹变化并生成报告,节省手动操作时间。 - 实时决策支持
在金融或物流领域,OxyGent 的分布式调度支持实时优化。例如,智能体可动态调整物流路径,降低成本。
QA
- OxyGent 支持哪些语言模型?
支持任何提供 HTTP API 的 LLM,开发者可通过.env
文件配置 API 密钥和模型名称。 - 如何扩展智能体功能?
在oxy_space
中添加新智能体或工具,定义其name
和tools
属性即可。例如,添加天气查询智能体:oxy.ReActAgent(name="weather_agent", desc="查询天气的工具", tools=["weather_tools"])
- 是否适合小型项目?
是的,OxyGent 的模块化设计支持小型项目,单智能体即可运行简单任务,同时也支持扩展到复杂系统。