Easy agent building, for no one but YOU: Create deployable complex agents using simple, Pythonic style interface with natural control flow.
import railtracks as rt
# Define a tool (just a function!)
def get_weather(location: str) -> str:
return f"It's sunny in {location}!"
# Create an agent with tools
agent = rt.agent_node(
"Weather Assistant",
tool_nodes=(rt.function_node(get_weather)),
llm=rt.llm.OpenAILLM("gpt-4o"),
system_message="You help users with weather information."
)
# Run it
flow = rt.Flow(name="Weather Flow", entry_point=agent)
result = await flow.invoke("What's the weather in Paris?")
print(result.text) # "Based on the current data, it's sunny in Paris!"That's it. No complex configurations, no learning proprietary syntax. Just Python.
# Write agents like regular functions
@rt.function_node
def my_tool(text: str) -> str:
return process(text)
|
# Any function becomes a tool
agent = rt.agent_node(
"Assistant",
tool_nodes=(my_tool, api_call)
)
|
# Smart parallelization built-in
# with interface similar to asyncio
result = await rt.call(agent, query)
|
railtracks viz # See everything
|
π¦ Installation
pip install railtracks railtracks[cli]β‘ Your First Agent in 5 Min
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-4o"),
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
)
text_flow.invoke("How many 'r's are in 'strawberry'?")π Visualize Agent locally with a simple command
railtracks init # Setup visualization (one-time)
railtracks viz # See your agent in actionA lightweight agentic LLM framework for building modular, multi-LLM workflows with a focus on simplicity and developer experience.
| Feature | Railtracks |
|---|---|
| π Python-first, no DSL | β |
| π Built-in visualization | β |
| β‘ Zero setup overhead | β |
| π LLM-agnostic | β |
Switch between providers effortlessly:
# OpenAI
rt.llm.OpenAILLM("gpt-4o")
# Anthropic
rt.llm.AnthropicLLM("claude-3-5-sonnet")
# Local models
rt.llm.OllamaLLM("llama3")Works with OpenAI, Anthropic, Google, Azure, and more! Check out our neatly crafted docs.
|
Use existing tools or create your own:
|
Debug and monitor with ease:
|
|
Documentation Complete guides & API reference |
Quickstart Up and running in 5 minutes |
Examples Real-world implementations |
Discord Get help & share creations |
Contributing Help make us better |
pip install railtracks[cli]You grow, we grow - Railtracks will expand with your ambitions.
Made with lots of β€οΈ and β by the βRailtracksβ team β’ Licensed under MIT β’ Report Bug β’ Request Feature
