Skip to main content

Railtracks

Railtracks


PyPI Version Python Versions Monthly Downloads License GitHub Stars

What is Railtracks?

Railtracks is a Python framework for building agentic systems. Agent behavior, tools, and multi-step flows are defined entirely in standard Python using the control flow and abstractions you already know.

import railtracks as rt


# Define a tool (just a function!)
def get_weather(location: str) -> str:
    """Get the current weather for a location."""
    return f"It's sunny in {location}!"


# Create an agent with tools
agent = rt.agent_node(
    "Weather Assistant",
    # Alternatively, use @rt.function_node at def time
    tool_nodes=[rt.function_node(get_weather)],
    llm=rt.llm.OpenAILLM("gpt-5.4-mini"),
    system_message="You help users with weather information.",
)

# Run it
flow = rt.Flow(name="Weather Flow", entry_point=agent)
result = flow.invoke("What's the weather in Paris?")
# or `await flow.ainvoke("What's the weather in Paris?")` in an async context
print(result.text)  # "Based on the current data, it's sunny in Paris!"

Execution order, branching, and looping are expressed using standard Python control flow.

Why Railtracks?

Pure Python

# Write agents like regular functions
@rt.function_node
def my_tool(text: str) -> str:
    return process(text)
  • No YAML, no DSLs, no magic strings
  • Compatible with standard debuggers
  • Full IDE autocomplete and type checking

Tool-First Architecture

# Any function becomes a tool
agent = rt.agent_node("Assistant", tool_nodes=[my_tool, api_call])
  • Automatic function-to-tool conversion
  • Seamless API and database integration
  • MCP protocol support

Familiar Interface

# Native Async support
result = await rt.call(agent, query)
  • Standardized call interface, consistent with asyncio patterns
  • Built-in validation, error handling, and retries
  • Automatic parallelization management

Built-in Observability

Railtracks includes a visualizer for inspecting agent runs and evaluations in real-time, run completely locally with no signups required.

See the Observability documentation for setup and usage.

Quick Start

Installation
pip install 'railtracks[visual]'
Set your API key

Railtracks loads a local .env file on import, save your provider keys there:

echo "OPENAI_API_KEY=sk-..." >> .env
Your First Agent
import railtracks as rt


# 1. Create tools (just functions with decorators!)
@rt.function_node
def count_characters(text: str, character: str) -> int:
    """Count occurrences of a character in text."""
    return text.count(character)


@rt.function_node
def word_count(text: str) -> int:
    """Count words in text."""
    return len(text.split())


# 2. Build an agent with tools
text_analyzer = rt.agent_node(
    "Text Analyzer",
    tool_nodes=[count_characters, word_count],
    llm=rt.llm.OpenAILLM("gpt-5.4-mini"),
    system_message="You analyze text using the available tools.",
)

# 3. Use it to solve the classic "How many r's in strawberry?" problem
text_flow = rt.Flow(name="Text Analysis Flow", entry_point=text_analyzer)

result = text_flow.invoke("How many 'r's are in 'strawberry'?")
print(result.text)

LLM Support

Railtracks integrates with major model providers through a unified interface:

# OpenAI
rt.llm.OpenAILLM("gpt-5.4-mini")

# Anthropic
rt.llm.AnthropicLLM("claude-sonnet-5")

# Local models
rt.llm.OllamaLLM("llama3")

Works with OpenAI, Anthropic, Google, Azure, and more. See the full provider list.

Contributing

Railtracks is developed in the open. Contributions, bug reports, and feature requests are welcome via GitHub Issues.

Quick Start Documentation Examples Join Discord


Licensed under MIT · Made by the Railtracks team

Metadata

Release files for railtracks 1.5.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for railtracks 1.5.3
File Size Uploaded
railtracks-1.5.3.tar.gz 364.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for railtracks 1.5.3
File Interpreter ABI Platform
railtracks-1.5.3-py3-none-any.whl Python 3 none any Details

Total release size: 867.7 kB

Release files / railtracks-1.5.3.tar.gz

Download URL railtracks-1.5.3.tar.gz
Size 364.7 kB
Tags Source
SHA-256 checksum
How to use checksums
34cf87c4d4b28a0d7eaeaa5c97cc000d05eed658aafcb922eee19b8b24014b0a
BLAKE2b-256 checksum
How to use checksums
5230277769489d658269d5064908748b5b08e8266ac63ef73e7181e287d5638b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.34.2

Release files / railtracks-1.5.3-py3-none-any.whl

Download URL railtracks-1.5.3-py3-none-any.whl
Size 502.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0c353da66fc153c17a2d9c1529a55d6e193a11d4f1349b642699554d281ba1f0
BLAKE2b-256 checksum
How to use checksums
5babb56c405f9893712a808a6c07aa1c0e4120f2b935e155c759d1c78161ee7d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.34.2

Release history Release notifications | RSS feed

1.115

2 release files

1.5.7

2 release files

1.5.6

2 release files

1.5.5

2 release files

1.5.4

2 release files

This release

1.5.3 This release

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.7

2 release files

1.4.6

2 release files

1.4.5

2 release files

1.4.4

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.10

2 release files

1.3.9

2 release files

1.3.8

2 release files

1.3.7

2 release files

1.3.6

2 release files

1.3.5

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.7

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.27

2 release files

1.1.26

2 release files

1.1.25

2 release files

1.1.23

2 release files

1.1.22

2 release files

1.1.21

2 release files

1.1.20

2 release files

1.1.19

2 release files

1.1.18

2 release files

1.1.17

2 release files

1.1.14

2 release files

1.1.11

2 release files

1.1.10

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page