一键导入
build-agent
Build an LLM agent with orxhestra. Use when creating a new agent, setting up LlmAgent or ReActAgent, or wiring tools to an agent.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Build an LLM agent with orxhestra. Use when creating a new agent, setting up LlmAgent or ReActAgent, or wiring tools to an agent.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | build-agent |
| description | Build an LLM agent with orxhestra. Use when creating a new agent, setting up LlmAgent or ReActAgent, or wiring tools to an agent. |
All agents extend BaseAgent and implement astream(input, *, ctx) returning AsyncIterator[Event].
from orxhestra import LlmAgent
from langchain_core.tools import tool
from langchain_openai import ChatOpenAI
@tool
async def search(query: str) -> str:
"""Search the web."""
return f"Results for: {query}"
agent = LlmAgent(
name="assistant",
model=ChatOpenAI(model="gpt-5.4"),
tools=[search],
instructions="You are a helpful assistant.",
max_iterations=10,
)
# Async streaming
async for event in agent.astream("Hello"):
if event.is_final_response():
print(event.text)
# Sync convenience
result = agent.invoke("Hello")
print(result.text)
| Parameter | Type | Description |
|---|---|---|
name | str | Unique agent name |
model | BaseChatModel | Any LangChain chat model |
tools | list[BaseTool] | Tools available to the agent |
instructions | str | Callable | System prompt (static or dynamic) |
planner | BasePlanner | Optional planning strategy |
output_schema | type | Optional Pydantic model for structured output |
max_iterations | int | Max tool-call loop iterations (default: 10) |
async def dynamic_instructions(ctx):
return f"You are helping user in session {ctx.session_id}."
agent = LlmAgent(
name="dynamic",
model=model,
instructions=dynamic_instructions,
)
Uses with_structured_output() to enforce a typed ReActStep at every iteration. Extends LlmAgent so it inherits instructions, planners, skills, and callbacks.
from orxhestra import ReActAgent
agent = ReActAgent(
name="reasoner",
model=ChatOpenAI(model="gpt-5.4"),
tools=[search],
instructions="Think step by step.", # appended to ReAct prompt
max_iterations=10,
)
from orxhestra import Runner, InMemorySessionService
runner = Runner(
agent=agent,
app_name="my-app",
session_service=InMemorySessionService(),
)
session = await runner.session_service.create_session(app_name="my-app")
async for event in runner.run(
user_message="Hello!",
session_id=session.id,
):
if event.is_final_response():
print(event.text)
Build orxhestra agent trees from declarative YAML orx files. Covers full schema, models, tools, agents, runner, and server.
Expose orxhestra agents as A2A protocol endpoints or connect to remote A2A agents.
Add callbacks to orxhestra agents for logging, monitoring, and error handling. Covers model and tool callbacks.
Add planners to orxhestra agents for structured reasoning. Covers BasePlanner, PlanReActPlanner, and TaskPlanner.
Add dynamic skills to orxhestra agents. Covers Skill, InMemorySkillStore, and skill discovery/loading tools.
Stream events from orxhestra agents including token-by-token output, sub-agent events via AgentTool, and Runner streaming.