원클릭으로
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 직업 분류 기준
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.
| 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)