Documentation Index
Fetch the complete documentation index at: https://docs.orxhestra.com/llms.txt
Use this file to discover all available pages before exploring further.
Attaching a planner in YAML is a single line — see Composer → agents::agents:
bot:
type: llm
planner:
type: task # or plan_react
Planners inject planning instructions into the system prompt before each LLM call and can post-process the response.
from orxhestra import BasePlanner, ReadonlyContext, LlmRequest, LlmResponse
class MyPlanner(BasePlanner):
def build_planning_instruction(
self, ctx: ReadonlyContext, request: LlmRequest
) -> str | None:
return "Think step by step before acting. Plan before calling tools."
def process_planning_response(
self, ctx: ReadonlyContext, response: LlmResponse
) -> LlmResponse | None:
return None # no post-processing needed
PlanReActPlanner
A built-in planner that enforces structured planning tags - the agent must emit a /*PLANNING*/ block before reasoning and a /*FINAL_ANSWER*/ block to conclude.
from orxhestra import PlanReActPlanner, LlmAgent
agent = LlmAgent(
name="PlanningAgent",
model=model,
tools=[...],
planner=PlanReActPlanner(),
)
TaskPlanner
Maintains a task board in ctx.state and injects its current status into the system prompt. Pairs with ManageTasksTool so the agent can create, update, complete, and list tasks.
from orxhestra import TaskPlanner, LlmAgent
planner = TaskPlanner()
agent = LlmAgent(
name="ProjectAgent",
model=model,
tools=[planner.get_manage_tasks_tool()],
planner=planner,
instructions=(
"Track your work with manage_tasks. "
"Initialize tasks at the start. Mark each complete when done."
),
)
The agent can call manage_tasks with actions: initialize, list, create, update, complete, remove.