Build agents in pure Python
Minimal. Extensible. Designed for developers.
Agent Observability
Our Driving Principle: Flows Are Just Python
In Railtracks, agent behavior is defined directly in Python. There is no configuration language and no external graph definition. Execution order, branching, and looping are expressed using standard control flow.
Building a sequential flow is just like any the code you have written in your life.
@function_node
async def flow(user_input):
a = await call(Agent1, user_input)
b = await call(Agent2, a)
c = await call(Agent3, b)
return c
More complex behavior is built by extending this same pattern.
What This Enables
The same flow model supports a range of agent architectures without introducing new abstractions.
Validation Loops
Iterative workflows which allow you to iteratively improve output quality.
Sequential Flows
Programmatically defining sequential and branching steps for an agent.
Orchestrator / Worker
A coordinating agent that delegates work to specialized agents or tools. Coming soon.
Suggested Progression
Most users approach Railtracks in roughly this order:
- Run the Quickstart to see a complete flow.
- Explore one or two architecture examples.
- Use the API reference for details.
Community and Contribution
Railtracks is developed in the open.