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. 

Join the waitlist