
An agentic framework for building and deploying autonomous AI agents—built for real-world orchestration, integration, and scale
Code-first Agent Flow Definitions
With Railtracks, you can express intricate logic naturally in Python—just like writing any other Python code making it easy to orchestrate multiple agents and tools working together.
import requestcompletion as rc
from pydantic import BaseModel
class Response(BaseModel):
next_task: Literal["agent_1", "agent_2", "agent_3", "END"]
content: str
model = rc.llm.OpenAI("model_name")
Agent1 = rc.library.structured_llm(Response, model=model, system_message="<...>")
Agent2 = rc.library.structured_llm(Response, model=model, system_message="<...>")
Agent3 = rc.library.structured_llm(Response, model=model, system_message="<...>")
# define your logic in code (not in graph logic)
def orchestrator(query):
current_node = "agent_1"
message_hist = query
while current_node != "END":
if current_node = "agent_1":
agent = Agent1
if current_node = "agent_2"
agent = Agent2
if current_node = "agent_3":
agent = Agent3
response = rc.call_sync(agent, message_hist)
message_hist.append(response.content)
current_node = response.next_task
return response.content
Prebuilt Agents
Railtracks’ simple interface can create agents in minute. Enter your model name, chosen tools, and system prompt. Accelerate team projects with a suite of prebuilt agents for Notion, GitHub, RAG, and more.
import requestcompletion as rc
def get_weather_data(city: str): ...
def get_location(): ...
def get_activities(city: str): ...
def get_date(): ...
SYSTEM_MESSAGE = ""
WeekendPlannerAgent = rc.library.ToolCallLLM(
{get_weather_data, get_location, get_activities, get_date},
model=rc.llm.OpenAI("gpt-4o"),
system_message=""
)
System Visualization
Railtracks eliminates the black box of agentic systems and gives clarity with debugging and logging visualization so that developers can understand an agent’s decision-making with step-by-step tracing
[+73985.732s] RC : INFO - RelevanceModel DONE
[+73985.732s] RC : INFO - START CREATED ToolCallLLM(MCPToolNode(get_pull_request), MCPToolNode(manage_repository_notification_subscription), MCPToolNode(delete_file), MCPToolNode(get_workflow_run), MCPToolNode(get_workflow_run_logs), MCPToolNode(get_pull_request_reviews), MCPToolNode(list_workflow_run_artifacts), MCPToolNode(create_and_submit_pull_request_review), MCPToolNode(add_issue_comment), MCPToolNode(list_branches), MCPToolNode(get_notification_details), MCPToolNode(manage_notification_subscription), MCPToolNode(rerun_failed_jobs), MCPToolNode(cancel_workflow_run), MCPToolNode(get_pull_request_files), MCPToolNode(submit_pending_pull_request_review), MCPToolNode(dismiss_notification), MCPToolNode(list_tags), MCPToolNode(delete_pending_pull_request_review), MCPToolNode(get_job_logs), MCPToolNode(run_workflow), MCPToolNode(create_pull_request_with_copilot), MCPToolNode(list_workflow_runs), MCPToolNode(get_code_scanning_alert), MCPToolNode(update_pull_request_branch), MCPToolNode(create_pull_request), MCPToolNode(list_issues), MCPToolNode(get_pull_request_status), MCPToolNode(search_issues), MCPToolNode(list_pull_requests), MCPToolNode(get_pull_request_diff), MCPToolNode(request_copilot_review), MCPToolNode(create_branch), MCPToolNode(push_files), MCPToolNode(search_repositories), MCPToolNode(list_commits), MCPToolNode(list_workflow_jobs), MCPToolNode(delete_workflow_run_logs), MCPToolNode(list_code_scanning_alerts), MCPToolNode(search_users), MCPToolNode(get_issue), MCPToolNode(list_notifications), MCPToolNode(create_or_update_file), MCPToolNode(get_secret_scanning_alert), MCPToolNode(get_pull_request_comments), MCPToolNode(list_workflows), MCPToolNode(add_pull_request_review_comment_to_pending_review), MCPToolNode(get_workflow_run_usage), MCPToolNode(fork_repository), MCPToolNode(search_pull_requests), MCPToolNode(download_workflow_run_artifact), MCPToolNode(get_me), MCPToolNode(update_pull_request), MCPToolNode(create_repository), MCPToolNode(mark_all_notifications_read), MCPToolNode(get_issue_comments), MCPToolNode(create_issue), MCPToolNode(list_secret_scanning_alerts), MCPToolNode(get_tag), MCPToolNode(search_orgs), MCPToolNode(create_pending_pull_request_review), MCPToolNode(rerun_workflow_run), MCPToolNode(get_file_contents), MCPToolNode(search_code), MCPToolNode(merge_pull_request), MCPToolNode(update_issue), MCPToolNode(get_commit), MCPToolNode(assign_copilot_to_issue))
[+73988.536s] RC : INFO - ToolCallLLM(MCPToolNode(get_pull_request), MCPToolNode(manage_repository_notification_subscription), MCPToolNode(delete_file), MCPToolNode(get_workflow_run), MCPToolNode(get_workflow_run_logs), MCPToolNode(get_pull_request_reviews), MCPToolNode(list_workflow_run_artifacts), MCPToolNode(create_and_submit_pull_request_review), MCPToolNode(add_issue_comment), MCPToolNode(list_branches), MCPToolNode(get_notification_details), MCPToolNode(manage_notification_subscription), MCPToolNode(rerun_failed_jobs), MCPToolNode(cancel_workflow_run), MCPToolNode(get_pull_request_files), MCPToolNode(submit_pending_pull_request_review), MCPToolNode(dismiss_notification), MCPToolNode(list_tags), MCPToolNode(delete_pending_pull_request_review), MCPToolNode(get_job_logs), MCPToolNode(run_workflow), MCPToolNode(create_pull_request_with_copilot), MCPToolNode(list_workflow_runs), MCPToolNode(get_code_scanning_alert), MCPToolNode(update_pull_request_branch), MCPToolNode(create_pull_request), MCPToolNode(list_issues), MCPToolNode(get_pull_request_status), MCPToolNode(search_issues), MCPToolNode(list_pull_requests), MCPToolNode(get_pull_request_diff), MCPToolNode(request_copilot_review), MCPToolNode(create_branch), MCPToolNode(push_files), MCPToolNode(search_repositories), MCPToolNode(list_commits), MCPToolNode(list_workflow_jobs), MCPToolNode(delete_workflow_run_logs), MCPToolNode(list_code_scanning_alerts), MCPToolNode(search_users), MCPToolNode(get_issue), MCPToolNode(list_notifications), MCPToolNode(create_or_update_file), MCPToolNode(get_secret_scanning_alert), MCPToolNode(get_pull_request_comments), MCPToolNode(list_workflows), MCPToolNode(add_pull_request_review_comment_to_pending_review), MCPToolNode(get_workflow_run_usage), MCPToolNode(fork_repository), MCPToolNode(search_pull_requests), MCPToolNode(download_workflow_run_artifact), MCPToolNode(get_me), MCPToolNode(update_pull_request), MCPToolNode(create_repository), MCPToolNode(mark_all_notifications_read), MCPToolNode(get_issue_comments), MCPToolNode(create_issue), MCPToolNode(list_secret_scanning_alerts), MCPToolNode(get_tag), MCPToolNode(search_orgs), MCPToolNode(create_pending_pull_request_review), MCPToolNode(rerun_workflow_run), MCPToolNode(get_file_contents), MCPToolNode(search_code), MCPToolNode(merge_pull_request), MCPToolNode(update_issue), MCPToolNode(get_commit), MCPToolNode(assign_copilot_to_issue)) DONE
[+74025.447s] RC : INFO - START CREATED RelevanceModel
[+74026.451s] RC : INFO - RelevanceModel DONE
[+74026.451s] RC : INFO - START CREATED ToolCallLLM(MCPToolNode(get_pull_request), MCPToolNode(manage_repository_notification_subscription), MCPToolNode(delete_file), MCPToolNode(get_workflow_run), MCPToolNode(get_workflow_run_logs), MCPToolNode(get_pull_request_reviews), MCPToolNode(list_workflow_run_artifacts), MCPToolNode(create_and_submit_pull_request_review), MCPToolNode(add_issue_comment), MCPToolNode(list_branches), MCPToolNode(get_notification_details), MCPToolNode(manage_notification_subscription), MCPToolNode(rerun_failed_jobs), MCPToolNode(cancel_workflow_run), MCPToolNode(get_pull_request_files), MCPToolNode(submit_pending_pull_request_review), MCPToolNode(dismiss_notification), MCPToolNode(list_tags), MCPToolNode(delete_pending_pull_request_review), MCPToolNode(get_job_logs), MCPToolNode(run_workflow), MCPToolNode(create_pull_request_with_copilot), MCPToolNode(list_workflow_runs), MCPToolNode(get_code_scanning_alert), MCPToolNode(update_pull_request_branch), MCPToolNode(create_pull_request), MCPToolNode(list_issues), MCPToolNode(get_pull_request_status), MCPToolNode(search_issues), MCPToolNode(list_pull_requests), MCPToolNode(get_pull_request_diff), MCPToolNode(request_copilot_review), MCPToolNode(create_branch), MCPToolNode(push_files), MCPToolNode(search_repositories), MCPToolNode(list_commits), MCPToolNode(list_workflow_jobs), MCPToolNode(delete_workflow_run_logs), MCPToolNode(list_code_scanning_alerts), MCPToolNode(search_users), MCPToolNode(get_issue), MCPToolNode(list_notifications), MCPToolNode(create_or_update_file), MCPToolNode(get_secret_scanning_alert), MCPToolNode(get_pull_request_comments), MCPToolNode(list_workflows), MCPToolNode(add_pull_request_review_comment_to_pending_review), MCPToolNode(get_workflow_run_usage), MCPToolNode(fork_repository), MCPToolNode(search_pull_requests), MCPToolNode(download_workflow_run_artifact), MCPToolNode(get_me), MCPToolNode(update_pull_request), MCPToolNode(create_repository), MCPToolNode(mark_all_notifications_read), MCPToolNode(get_issue_comments), MCPToolNode(create_issue), MCPToolNode(list_secret_scanning_alerts), MCPToolNode(get_tag), MCPToolNode(search_orgs), MCPToolNode(create_pending_pull_request_review), MCPToolNode(rerun_workflow_run), MCPToolNode(get_file_contents), MCPToolNode(search_code), MCPToolNode(merge_pull_request), MCPToolNode(update_issue), MCPToolNode(get_commit), MCPToolNode(assign_copilot_to_issue))
[+74028.679s] RC : INFO - ToolCallLLM(MCPToolNode(get_pull_request), MCPToolNode(manage_repository_notification_subscription), MCPToolNode(delete_file), MCPToolNode(get_workflow_run), MCPToolNode(get_workflow_run_logs), MCPToolNode(get_pull_request_reviews), MCPToolNode(list_workflow_run_artifacts), MCPToolNode(create_and_submit_pull_request_review), MCPToolNode(add_issue_comment), MCPToolNode(list_branches), MCPToolNode(get_notification_details), MCPToolNode(manage_notification_subscription), MCPToolNode(rerun_failed_jobs), MCPToolNode(cancel_workflow_run), MCPToolNode(get_pull_request_files), MCPToolNode(submit_pending_pull_request_review), MCPToolNode(dismiss_notification), MCPToolNode(list_tags), MCPToolNode(delete_pending_pull_request_review), MCPToolNode(get_job_logs), MCPToolNode(run_workflow), MCPToolNode(create_pull_request_with_copilot), MCPToolNode(list_workflow_runs), MCPToolNode(get_code_scanning_alert), MCPToolNode(update_pull_request_branch), MCPToolNode(create_pull_request), MCPToolNode(list_issues), MCPToolNode(get_pull_request_status), MCPToolNode(search_issues), MCPToolNode(list_pull_requests), MCPToolNode(get_pull_request_diff), MCPToolNode(request_copilot_review), MCPToolNode(create_branch), MCPToolNode(push_files), MCPToolNode(search_repositories), MCPToolNode(list_commits), MCPToolNode(list_workflow_jobs), MCPToolNode(delete_workflow_run_logs), MCPToolNode(list_code_scanning_alerts), MCPToolNode(search_users), MCPToolNode(get_issue), MCPToolNode(list_notifications), MCPToolNode(create_or_update_file), MCPToolNode(get_secret_scanning_alert), MCPToolNode(get_pull_request_comments), MCPToolNode(list_workflows), MCPToolNode(add_pull_request_review_comment_to_pending_review), MCPToolNode(get_workflow_run_usage), MCPToolNode(fork_repository), MCPToolNode(search_pull_requests), MCPToolNode(download_workflow_run_artifact), MCPToolNode(get_me), MCPToolNode(update_pull_request), MCPToolNode(create_repository), MCPToolNode(mark_all_notifications_read), MCPToolNode(get_issue_comments), MCPToolNode(create_issue), MCPToolNode(list_secret_scanning_alerts), MCPToolNode(get_tag), MCPToolNode(search_orgs), MCPToolNode(create_pending_pull_request_review), MCPToolNode(rerun_workflow_run), MCPToolNode(get_file_contents), MCPToolNode(search_code), MCPToolNode(merge_pull_request), MCPToolNode(update_issue), MCPToolNode(get_commit), MCPToolNode(assign_copilot_to_issue)) DONE
Be the First to Build Smarter Agents
Join the Railtracks waitlist and get early access to powerful agent orchestration tools that simplify complex agentic flows.