应用示例
May 15, 2026 · View on GitHub
展示将 OxyGent 多种功能组合在单个多智能体系统中的完整应用示例。
示例
综合多智能体示例
文件: examples/application/demo.py
本示例是一个将 OxyGent 核心功能整合到一个多智能体应用中的综合演示。它结合了多种工具类型和智能体模式:三个 StdioMCPClient 实例分别提供时间查询(通过 mcp-server-time)、文件操作(通过 @modelcontextprotocol/server-filesystem)和数学运算(通过自定义 mcp_servers/math_tools.py)。一个内联 FunctionHub 定义了返回随机笑话的 joke_tool。一个 ChatAgent("intent_agent")使用内置的意图识别提示词。系统包含三个由主控 ReActAgent 协调的专业智能体:具有自定义输入预处理(func_process_input)和 trust_mode=False 的 time_agent,用于文件系统操作的 file_agent,以及运行自定义 func_workflow 函数的 WorkflowAgent("math_agent")。该工作流函数展示了 OxyGent 的高级 API,包括在智能体层和主控层访问短期记忆、通过 send_message 发送 SSE 消息、通过 oxy_request.call() 进行跨智能体调用、使用自定义参数直接调用 LLM,以及动态查询解析。主控智能体应用了自定义输出格式化函数(func_format_output),为响应添加 "Answer: " 前缀。
核心组件:
HttpLLM-- 低温度参数的 LLM 后端,确保确定性行为ChatAgent("intent_agent")-- 使用内置INTENTION_PROMPT进行意图分类的智能体FunctionHub-- 内联工具集,包含演示@fh.tool装饰器模式的joke_toolStdioMCPClient("time_tools")-- 用于时区感知时间查询的 MCP 客户端StdioMCPClient("file_tools")-- 用于本地文件系统操作的 MCP 客户端StdioMCPClient("math_tools")-- 用于数学计算(如计算圆周率)的 MCP 客户端ReActAgent("master_agent")-- 具有自定义func_format_output和子智能体委派能力的编排器ReActAgent("time_agent")-- 具有自定义func_process_input和非信任模式的时间查询智能体ReActAgent("file_agent")-- 文件操作智能体WorkflowAgent("math_agent")-- 具有自定义func_workflow的智能体,展示记忆访问、SSE 消息推送、跨智能体调用和直接 LLM 调用MAS-- 启动 Web 服务并附带圆周率计算查询的运行时容器