如何注册一个智能体?
May 15, 2026 · View on GitHub
在OxyGent中,基础的智能体由智能体(Agent)和内部封装的大语言模型(LLM)组成。
对于新用户,您可以使用oxy.HttpLLM方法通过您的api_key注册LLM:
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, # 并发量
timeout=240, # 最大执行时间
),
其中
semaphore参数的详细说明请参见 并行 部分。
接下来,您可以使用oxy.ChatAgent或者oxy.ReActAgent封装您的第一个agent:
oxy.ReActAgent(
name="master_agent",
prompt = master_prompt, # 支持自定义prompt
is_master=True, # 设置为master
llm_model="default_llm",
),
为了使 LLM 和智能体生效,它们需要被添加到 oxy_space 中。
关键概念
oxy_space是一个 Python 列表,包含了系统中所有的 LLM、Agent、Tool 组件。组件之间通过name字符串互相引用。MAS(Multi-Agent System)是运行时容器。async with MAS(oxy_space=...) as mas会注册所有组件并建立引用关系。is_master=True标记入口智能体——用户的消息首先到达它,由它决定如何处理或分发给子智能体。- 更多概念请参考 OxyGent 概念总览。
完整的可运行样例
以下是可运行的完整代码示例:
import asyncio
from oxygent import MAS, oxy
import os
master_prompt = """
你是一个文档分析专家,用户会向你提供文档,请为用户提供简要的文档摘要。
摘要可以是markdown格式。
"""
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,
timeout=240,
),
oxy.ReActAgent(
name="master_agent",
prompt = master_prompt,
is_master=True,
llm_model="default_llm",
),
]
async def main():
async with MAS(oxy_space=oxy_space) as mas:
await mas.start_web_service(
first_query="Hello!"
)
if __name__ == "__main__":
asyncio.run(main())
相关示例
- 单 Agent 示例 — 最简单的 ChatAgent 配置
- ReAct Agent 示例 — 带反思机制的 ReActAgent
- 层级式多 Agent 示例 — 主从 Agent 架构