{"id":33525646,"url":"https://github.com/runagent-dev/runagent","last_synced_at":"2026-06-17T12:31:46.595Z","repository":{"id":294857329,"uuid":"965574830","full_name":"runagent-dev/runagent","owner":"runagent-dev","description":"RunAgent simplifies serverless deployment of your AI agents. With a powerful CLI, multi-language SDK support, built-in agent invocation \u0026 streaming suppprt.","archived":false,"fork":false,"pushed_at":"2026-05-02T04:12:20.000Z","size":29268,"stargazers_count":482,"open_issues_count":7,"forks_count":74,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-05-02T06:19:59.440Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://run-agent.ai","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/runagent-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-13T13:18:26.000Z","updated_at":"2026-05-01T02:56:31.000Z","dependencies_parsed_at":"2025-12-07T12:09:55.609Z","dependency_job_id":null,"html_url":"https://github.com/runagent-dev/runagent","commit_stats":null,"previous_names":["runagent-dev/runagent"],"tags_count":37,"template":false,"template_full_name":null,"purl":"pkg:github/runagent-dev/runagent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runagent-dev%2Frunagent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runagent-dev%2Frunagent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runagent-dev%2Frunagent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runagent-dev%2Frunagent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/runagent-dev","download_url":"https://codeload.github.com/runagent-dev/runagent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runagent-dev%2Frunagent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34449277,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-17T02:00:05.408Z","response_time":127,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-11-26T12:00:34.667Z","updated_at":"2026-06-17T12:31:46.589Z","avatar_url":"https://github.com/runagent-dev.png","language":"Python","funding_links":[],"categories":["A01_文本生成_文本对话"],"sub_categories":["大语言对话模型及数据"],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://run-agent.ai/#gh-dark-mode-only\"\u003e\n    \u003cimg src=\"./docs/logo/logo_dark.svg\" width=\"318px\" alt=\"RunAgent logo\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://run-agent.ai/#gh-light-mode-only\"\u003e\n    \u003cimg src=\"./docs/logo/logo_light.svg\" width=\"318px\" alt=\"RunAgent Logo\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch2 align=\"center\"\u003eSecured, reliable AI agent deployment at scale\u003c/h2\u003e\n\n\u003ch4 align=\"center\"\u003eRun your stack. Let us run your agents.\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://docs.run-agent.ai\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Click%20here%20for-RunAgent%20Docs-blue?style=for-the-badge\u0026logo=read-the-docs\" alt=\"Read the Docs\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth align=\"center\"\u003e\u003ca href=\"https://github.com/runagent-dev/runagent-py\"\u003erunagent-py\u003c/a\u003e\u003c/th\u003e\n      \u003cth align=\"center\"\u003e\u003ca href=\"https://github.com/runagent-dev/runagent-js\"\u003erunagent-js\u003c/a\u003e\u003c/th\u003e\n      \u003cth align=\"center\"\u003e\u003ca href=\"https://github.com/runagent-dev/runagent-rs\"\u003erunagent-rs\u003c/a\u003e\u003c/th\u003e\n      \u003cth align=\"center\"\u003e\u003ca href=\"https://github.com/runagent-dev/runagent-go\"\u003erunagent-go\u003c/a\u003e\u003c/th\u003e\n      \u003cth align=\"center\"\u003e\u003ca href=\"https://github.com/runagent-dev/runagent-dart\"\u003erunagent-dart\u003c/a\u003e\u003c/th\u003e\n      \u003cth align=\"center\"\u003e\u003ca href=\"https://github.com/runagent-dev/runagent-csharp\"\u003erunagent-csharp\u003c/a\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://pepy.tech/projects/runagent\"\u003e\n          \u003cimg src=\"https://static.pepy.tech/personalized-badge/runagent?period=total\u0026units=ABBREVIATION\u0026left_color=BLACK\u0026right_color=GREEN\u0026left_text=downloads\" alt=\"PyPI Downloads\"\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://www.npmjs.com/package/runagent\"\u003e\n          \u003cimg src=\"https://img.shields.io/npm/dt/runagent\" alt=\"npm downloads\"\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://crates.io/crates/runagent\"\u003e\n          \u003cimg src=\"https://img.shields.io/crates/d/runagent\" alt=\"Crates.io downloads\"\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://github.com/runagent-dev/runagent-go\"\u003e\n          \u003cimg src=\"https://img.shields.io/github/stars/runagent-dev/runagent-go?style=social\" alt=\"GitHub stars\"\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://pub.dev/packages/runagent\"\u003e\n          \u003cimg src=\"https://img.shields.io/pub/dm/runagent\" alt=\"pub.dev downloads\"\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://www.nuget.org/packages/RunAgent\"\u003e\n          \u003cimg src=\"https://img.shields.io/nuget/dt/RunAgent\" alt=\"NuGet downloads\"\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n      \u003ctr\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003cimg src=\"https://img.shields.io/pypi/v/runagent\" alt=\"PyPI version\"\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003cimg src=\"https://img.shields.io/npm/v/runagent\" alt=\"npm version\"\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003cimg src=\"https://img.shields.io/crates/v/runagent\" alt=\"Crates.io version\"\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://pkg.go.dev/github.com/runagent-dev/runagent-go\"\u003e\n          \u003cimg src=\"https://pkg.go.dev/badge/github.com/runagent-dev/runagent-go.svg\" alt=\"Go Reference\"\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://pub.dev/packages/runagent\"\u003e\n          \u003cimg src=\"https://img.shields.io/pub/v/runagent\" alt=\"pub.dev version\"\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://www.nuget.org/packages/RunAgent\"\u003e\n          \u003cimg src=\"https://img.shields.io/nuget/v/RunAgent\" alt=\"NuGet version\"\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n\u003ch3\u003e🎉 News\u003c/h3\u003e\n\u003ch2\u003eIntroducing OpenClaw, PicoClaw, and ZeroClaw\u003c/h2\u003e\n\n\u003cp\u003e\n  \u003cimg src=\"./docs/logo/openclaw-white.jpg\" alt=\"OpenClaw\" height=\"56\"/\u003e\n  \u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003cimg src=\"./docs/logo/picoclaw.png\" alt=\"PicoClaw\" height=\"56\"/\u003e\n  \u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003cimg src=\"./docs/logo/zeroclaw.png\" alt=\"ZeroClaw\" height=\"56\"/\u003e\n\u003c/p\u003e\n\n\u003c/div\u003e\n\n- **[2026.03] 🚀 [Architecture]** Introducing **OpenClaw**, **PicoClaw** (Go), and **ZeroClaw** (Rust): one unified engine that runs agents both **serverless** and as **24/7 always-on services**.\n- **[2026.03] 🌍 [Milestone]** The first architecture to support **persistent + serverless agent execution in the same engine**, with a single codebase powering both modes.\n\n- **[2025.12] 🎯 [New Product]** Published **RunAgent Pulse – Scheduling \u0026 Orchestration**, a self-hosted “Google Calendar for your AI agents”.\n\n## What is RunAgent-Pulse?\n\n### RunAgent Pulse is a Google Calendar for Your AI Agents \n\nA lightweight, **self-hosted scheduling service** designed for AI agents and developers.  \nSchedule agent executions with **second-level precision**, **natural language scheduling**, and **seamless integration with RunAgent Serverless**.  \nWe’ve unveiled this as a companion project:\n\n- GitHub: [RunAgent-Pulse](https://github.com/runagent-dev/runagent-pulse)\n\nUse it together with this repo to deploy agents (RunAgent) in our serverless cloud and then **orchestrate/schedule** them (Pulse).\n\n---\n\n## What is RunAgent?\n\nRunAgent is an agentic ecosystem that enables developers to build AI agents once in Python using any python agentic frameworks like LangGraph, CrewAI, Letta, LlamaIndex, then access them natively from any programming language. The platform features stateful self-learning capabilities with RunAgent Memory (coming soon), allowing agents to retain context and improve it's action memory over time.\n\n![Animated SVG](./docs/images/runagent_update.svg)\n\n\nRunAgent has multi-language SDK support for seamless integration across TypeScript, JavaScript, Go, and other languages, eliminating the need to rewrite agents for different tech stacks. RunAgent Cloud provides automated deployment with serverless auto-scaling, comprehensive agent security, and real-time monitoring capabilities.\n\n\n## Quick Start\n\n### Installation\n\n```bash\npip install runagent\n```\n\n### Initialize Your First Agent\n\n```bash\n# The basic\nrunagent init my-agent                # Basic template\n\n\n# Also you can choose from various frameworks\nrunagent init my-agent --langgraph    # LangGraph template\nrunagent init my-agent --crewai       # CrewAI template  \nrunagent init my-agent --letta        # Letta template\n```\n\n## Agent Configuration\n\nEvery RunAgent project requires a `runagent.config.json` file that defines your agent's structure and capabilities. \n\nThis configuration file specifies basic metadata (name, framework, version), defines entrypoints for either Python functions or external webhooks, and sets environment variables like API keys. The entrypoints array is the core component, allowing you to expose functions from any Python framework (LangGraph, CrewAI, OpenAI) or integrate external services (N8N, Zapier) through a unified interface accessible from any programming language.\n### Example Configuration\n\n```json\n{\n  \"agent_name\": \"LangGraph Problem Solver\",\n  \"description\": \"Multi-step problem analysis and solution validation agent\",\n  \"framework\": \"langgraph\",\n  \"version\": \"1.0.0\",\n  \"agent_architecture\": {\n    \"entrypoints\": [\n      {\n        \"file\": \"agent.py\",\n        \"module\": \"solve_problem\",\n        \"tag\": \"solve_problem\"\n      },\n      {\n        \"file\": \"agent.py\",\n        \"module\": \"solve_problem_stream\",\n        \"tag\": \"solve_problem_stream\"\n      }\n    ]\n  },\n  \"env_vars\": {\n    \"OPENAI_API_KEY\": \"your-api-key\"\n  }\n}\n```\n\n## Local Development\n\nDeploy and test your agents locally with full debugging capabilities before deploying to RunAgent Cloud.\n\n### Deploy Agent Locally\n\n```bash\ncd my-agent\nrunagent serve .\n```\n\nThis starts a local FastAPI server with:\n- Auto-allocated ports to avoid conflicts\n- Real-time debugging and logging  \n- WebSocket support for streaming\n- Built-in API documentation at `/docs`\n\n### Deploy to RunAgent Cloud\n\nOnce your agent is tested locally, deploy to production:\n\n```bash\n# Authenticate (first time only)\nrunagent setup --api-key \u003cyour-api-key\u003e\n\n# Deploy to cloud\nrunagent deploy --folder .\n```\n\nYour agent will be live globally with automatic scaling, monitoring, and enterprise security. View all your agents and execution metrics in the [dashboard](https://app.run-agent.ai/dashboard).\n\n\n##  **LangGraph Problem Solver Agent (An Example)**\n\n```python\n# agent.py\nfrom langgraph.graph import StateGraph\nfrom typing import TypedDict, List\n\nclass ProblemState(TypedDict):\n    query: str\n    num_solutions: int\n    constraints: List[dict]\n    solutions: List[str]\n    validated: bool\n\ndef analyze_problem(state):\n    # Problem analysis logic\n    return {\"solutions\": [...]}\n\ndef validate_solutions(state):\n    # Validation logic\n    return {\"validated\": True}\n\n# Build the graph\nworkflow = StateGraph(ProblemState)\nworkflow.add_node(\"analyze\", analyze_problem)\nworkflow.add_node(\"validate\", validate_solutions)\nworkflow.add_edge(\"analyze\", \"validate\")\nworkflow.set_entry_point(\"analyze\")\n\napp = workflow.compile()\n\ndef solve_problem(query, num_solutions, constraints):\n    result = app.invoke({\n        \"query\": query,\n        \"num_solutions\": num_solutions,\n        \"constraints\": constraints\n    })\n    return result\n\nasync def solve_problem_stream(query, num_solutions, constraints):\n    async for event in app.astream({\n        \"query\": query,\n        \"num_solutions\": num_solutions,\n        \"constraints\": constraints\n    }):\n        yield event\n```\n\n**🌐 Access from any language:**\n\nRunAgent offers multi-language SDKs : Rust, TypeScript, JavaScript, Go, Dart, C#/.NET, and beyond—so you can integrate seamlessly without ever rewriting your agents for different stacks.\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"16.66%\"\u003e\u003cb\u003ePython SDK\u003c/b\u003e\u003c/td\u003e\n\u003ctd width=\"16.66%\"\u003e\u003cb\u003eJavaScript SDK\u003c/b\u003e\u003c/td\u003e\n\u003ctd width=\"16.66%\"\u003e\u003cb\u003eRust SDK\u003c/b\u003e\u003c/td\u003e\n\u003ctd width=\"16.66%\"\u003e\u003cb\u003eGo SDK\u003c/b\u003e\u003c/td\u003e\n\u003ctd width=\"16.66%\"\u003e\u003cb\u003eDart SDK\u003c/b\u003e\u003c/td\u003e\n\u003ctd width=\"16.66%\"\u003e\u003cb\u003eC# SDK\u003c/b\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd valign=\"top\"\u003e\n\n```python\nfrom runagent import RunAgentClient\n\nclient = RunAgentClient(\n    agent_id=\"lg-solver-123\",\n    entrypoint_tag=\"solve_problem\",\n    local=True\n)\n\nresult = client.run(\n    query=\"My laptop is slow\",\n    num_solutions=3,\n    constraints=[{\n        \"type\": \"budget\", \n        \"value\": 100\n    }]\n)\nprint(result)\n\n# Streaming\nfor chunk in client.run(\n    query=\"Fix my phone\", \n    num_solutions=4\n):\n    print(chunk)\n```\n\n\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\n\n```javascript\nimport { RunAgentClient } from 'runagent';\n\nconst client = new RunAgentClient({\n  agentId: \"lg-solver-123\",\n  entrypointTag: \"solve_problem\",\n  local: true\n});\n\nawait client.initialize();\nconst result = await client.run({\n  query: \"My laptop is slow\",\n  num_solutions: 3,\n  constraints: [{\n    type: \"budget\",\n    value: 100\n  }]\n});\nconsole.log(result);\n\n// Streaming\nfor await (const chunk of client.run({\n  query: \"Fix my phone\",\n  num_solutions: 4\n})) {\n  process.stdout.write(chunk);\n}\n```\n\n\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\n\n```rust\nuse runagent::client::RunAgentClient;\nuse serde_json::json;\nuse futures::StreamExt;\n\n#[tokio::main]\nasync fn main() -\u003e Result\u003c(), Box\u003cdyn std::error::Error\u003e\u003e {\n    let client = RunAgentClient::new(\n        \"lg-solver-123\", \n        \"solve_problem\", \n        true\n    ).await?;\n    \n    let result = client.run(\u0026[\n        (\"query\", json!(\"My laptop is slow\")),\n        (\"num_solutions\", json!(3)),\n        (\"constraints\", json!([{\n            \"type\": \"budget\", \n            \"value\": 100\n        }]))\n    ]).await?;\n    \n    println!(\"Result: {}\", result);\n    \n    // Streaming\n    let mut stream = client.run_stream(\u0026[\n        (\"query\", json!(\"Fix my phone\")),\n        (\"num_solutions\", json!(4))\n    ]).await?;\n    \n    while let Some(chunk) = stream.next().await {\n        print!(\"{}\", chunk?);\n    }\n    \n    Ok(())\n}\n```\n\n\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\n\n```go\npackage main\n\nimport (\n    \"context\"\n    \"fmt\"\n    \"github.com/runagent-dev/runagent-go/pkg/client\"\n)\n\nfunc main() {\n    client, _ := client.New(\n        \"lg-solver-123\", \n        \"solve_problem\", \n        true\n    )\n    defer client.Close()\n\n    result, _ := client.Run(\n        context.Background(), \n        map[string]interface{}{\n            \"query\": \"My laptop is slow\",\n            \"num_solutions\": 3,\n            \"constraints\": []map[string]interface{}{\n                {\"type\": \"budget\", \"value\": 100},\n            },\n        }\n    )\n    fmt.Printf(\"Result: %v\\n\", result)\n\n    // Streaming\n    stream, _ := client.RunStream(\n        context.Background(),\n        map[string]interface{}{\n            \"query\": \"Fix my phone\",\n            \"num_solutions\": 4,\n        }\n    )\n    defer stream.Close()\n\n    for {\n        chunk, hasMore, _ := stream.Next(context.Background())\n        if !hasMore { break }\n        fmt.Print(chunk)\n    }\n}\n```\n\n\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\n\n```dart\nimport 'package:runagent/runagent.dart';\n\nvoid main() async {\n  final client = await RunAgentClient.create(\n    RunAgentClientConfig.create(\n      agentId: \"lg-solver-123\",\n      entrypointTag: \"solve_problem\",\n      local: true,\n    ),\n  );\n\n  final result = await client.run({\n    \"query\": \"My laptop is slow\",\n    \"num_solutions\": 3,\n    \"constraints\": [\n      {\"type\": \"budget\", \"value\": 100}\n    ],\n  });\n  print(result);\n\n  // Streaming\n  await for (final chunk in client.runStream({\n    \"query\": \"Fix my phone\",\n    \"num_solutions\": 4,\n  })) {\n    print(chunk);\n  }\n}\n```\n\n\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\n\n```csharp\nusing RunAgent.Client;\nusing RunAgent.Types;\n\nclass Program\n{\n    static async Task Main()\n    {\n        var config = RunAgentClientConfig\n            .Create(\"lg-solver-123\", \"solve_problem\")\n            .WithLocal(true);\n\n        var client = await RunAgentClient\n            .CreateAsync(config);\n\n        var result = await client.RunAsync(\n            new Dictionary\u003cstring, object\u003e\n            {\n                [\"query\"] = \"My laptop is slow\",\n                [\"num_solutions\"] = 3,\n                [\"constraints\"] = new List\u003cobject\u003e\n                {\n                    new Dictionary\u003cstring, object\u003e\n                    {\n                        [\"type\"] = \"budget\",\n                        [\"value\"] = 100\n                    }\n                }\n            }\n        );\n        Console.WriteLine(result);\n\n        // Streaming\n        await foreach (var chunk in client.RunStreamAsync(\n            new Dictionary\u003cstring, object\u003e\n            {\n                [\"query\"] = \"Fix my phone\",\n                [\"num_solutions\"] = 4\n            }\n        ))\n        {\n            Console.Write(chunk);\n        }\n    }\n}\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n## \u003cb\u003e\u003ccode\u003e🚀 RunAgent Cloud Deployment\u003c/code\u003e\u003c/b\u003e\n\n**Now Available: Production-Ready Cloud Infrastructure**\n\nDeploy to production in seconds with enterprise-grade infrastructure\n\n\u003cbr\u003e\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\" width=\"200\"\u003e\n\u003ca href=\"https://app.run-agent.ai/auth/signin\"\u003e\u003cb\u003eSign Up\u003c/b\u003e\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\" width=\"200\"\u003e\n\u003ca href=\"https://app.run-agent.ai/dashboard\"\u003e\u003cb\u003eDashboard\u003c/b\u003e\u003c/a\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\" width=\"200\"\u003e\n\u003ca href=\"https://docs.run-agent.ai/runagent-cloud/overview\"\u003e\u003cb\u003eDocumentation\u003c/b\u003e\u003c/a\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c/div\u003e\n\nDeploy your agents to RunAgent Cloud with enterprise-grade infrastructure and experience the fastest agent deployment. RunAgent Cloud provides serverless auto-scaling, comprehensive security, and real-time monitoring - all managed for you.\n\n### Get Started with RunAgent Cloud\n\n1. **Sign up** at [app.run-agent.ai](https://app.run-agent.ai/auth/signin)\n2. **Generate API Key**: After signing in, go to **Settings → API Keys → Generate API Key**\n3. **Authenticate CLI**: Configure your CLI with your API key\n4. **Deploy**: Deploy your agents with a single command\n\n```bash\n# Authenticate with RunAgent Cloud\nrunagent setup --api-key \u003cyour-api-key\u003e\n\n# Deploy your agent\nrunagent deploy --folder ./my-agent\n```\n\n### Fastest Agent Deployment\n\nFrom zero to production in seconds. RunAgent Cloud automatically selects the optimal VM image based on your agent's requirements, with deployment typically completing in 30-60 seconds for standard images, or up to 2 minutes for specialized configurations.\n\n### Security-First Architecture\n\nEvery agent runs in its own **isolated sandbox environment**:\n- Complete process isolation\n- Network segmentation  \n- Resource limits and monitoring\n- Zero data leakage between agents\n\n### Dashboard \u0026 Monitoring\n\nThe RunAgent Cloud dashboard provides comprehensive insights into your agents:\n\n- **Agent Execution Metadata** - Detailed information about each execution\n- **Execution Time Tracking** - Monitor performance and optimize accordingly\n- **Agent Management** - View and manage all your deployed agents\n- **Usage Analytics** - Track usage patterns and resource consumption\n- **Real-time Monitoring** - Live status and health checks\n- **Execution History** - Complete audit trail of all agent invocations\n\nAccess your dashboard at [app.run-agent.ai/dashboard](https://app.run-agent.ai/dashboard) after signing in.\n\n### Enterprise-Grade Features\n\nRunAgent Cloud provides:\n\n- **Auto-scaling** - Automatically scales based on demand\n- **Global Edge Distribution** - Low-latency access worldwide\n- **Built-in Monitoring** - Comprehensive analytics and observability\n- **Production-Grade Security** - Enterprise security and compliance\n- **Multiple VM Images** - Automatic image selection optimized for your agent\n- **Serverless Infrastructure** - Zero infrastructure management\n\n---\n\n## 🧠 Persistent Memory: Revolutionary Serverless Memory System\n\nRunAgent introduces **Persistent Memory** - the fastest serverless memory system for AI agents. Unlike traditional stateless serverless architectures, RunAgent enables your agents to maintain context and state across executions, creating truly intelligent and context-aware applications.\n\n### Why Persistent Memory Matters\n\nTraditional serverless functions are stateless by design, meaning each invocation starts fresh with no memory of previous interactions. RunAgent's Persistent Memory breaks this limitation, allowing your agents to:\n\n- **Remember Context** - Maintain conversation history and user preferences across sessions\n- **Learn from Interactions** - Build upon previous executions to improve responses\n- **Stateful Workflows** - Create multi-step processes that remember where they left off\n- **Cross-Language Persistence** - Memory works seamlessly across all SDK languages (Python, JavaScript, Rust, Go, Dart)\n\n### How It Works\n\nPersistent Memory in RunAgent is designed for speed and reliability:\n\n```python\nfrom runagent import RunAgentClient\n\n# Create a client with persistent memory enabled\nclient = RunAgentClient(\n    agent_id=\"my-agent-id\",\n    entrypoint_tag=\"chat\",\n    user_id=\"user123\",           # User identifier for memory isolation\n    persistent_memory=True        # Enable persistent memory\n)\n\n# First interaction - agent learns user preferences\nresult1 = client.run(message=\"I prefer dark mode interfaces\")\n\n# Second interaction - agent remembers the preference\nresult2 = client.run(message=\"What's my UI preference?\")\n# Agent responds: \"You prefer dark mode interfaces\"\n```\n\n### Multi-Language Support\n\nPersistent Memory works identically across all SDKs:\n\n**Python:**\n```python\nclient = RunAgentClient(\n    agent_id=\"agent-id\",\n    entrypoint_tag=\"entrypoint\",\n    user_id=\"user123\",\n    persistent_memory=True\n)\n```\n\n**JavaScript:**\n```javascript\nconst client = new RunAgentClient({\n  agentId: \"agent-id\",\n  entrypointTag: \"entrypoint\",\n  userId: \"user123\",\n  persistentMemory: true\n});\n```\n\n**Rust:**\n```rust\nlet client = RunAgentClient::new(\n    RunAgentClientConfig::new(\"agent-id\", \"entrypoint\")\n        .with_user_id(\"user123\")\n        .with_persistent_memory(true)\n).await?;\n```\n\n**Dart:**\n```dart\nfinal client = await RunAgentClient.create(\n  RunAgentClientConfig.create(\n    agentId: \"agent-id\",\n    entrypointTag: \"entrypoint\",\n    userId: \"user123\",\n    persistentMemory: true,\n  ),\n);\n```\n\n**C#:**\n```csharp\nvar config = RunAgentClientConfig\n    .Create(\"agent-id\", \"entrypoint\")\n    .WithUserId(\"user123\")\n    .WithPersistentMemory(true);\n\nvar client = await RunAgentClient.CreateAsync(config);\n```\n\n### Key Benefits\n\n- ⚡ **Fastest Serverless Memory** - Optimized for low-latency access and updates\n- 🔒 **Secure \u0026 Isolated** - Each `user_id` has isolated memory space\n- 🌐 **Universal** - Works with any framework (LangGraph, CrewAI, Letta, etc.)\n- 📈 **Scalable** - Built on serverless infrastructure that scales automatically\n- 🔄 **Stateful Workflows** - Enable complex multi-turn conversations and workflows\n\n### Use Cases\n\n- **Conversational AI** - Maintain context across multiple user interactions\n- **Personalization** - Remember user preferences and adapt responses\n- **Multi-Step Processes** - Track progress through complex workflows\n- **Learning Systems** - Agents that improve based on interaction history\n- **Session Management** - Maintain state across distributed systems\n\n---\n\n## 📚 Documentation\n\n- **[Getting Started](https://docs.run-agent.ai/get-started/introduction.md)** - Deploy your first agent in 5 minutes\n- **[CLI Reference](https://docs.run-agent.ai/cli/overview.md)** - Complete command-line interface guide  \n- **[SDK Documentation](https://docs.run-agent.ai/sdk/overview.md)** - Multi-language SDK guides\n- **[Framework Guides](https://docs.run-agent.ai/frameworks/overview.md)** - Framework-specific tutorials\n- **[API Reference](https://docs.run-agent.ai/api-reference/introduction.md)** - REST API documentation\n- **[RunAgent Cloud Guide](https://docs.run-agent.ai/runagent-cloud/overview)** - Complete cloud deployment guide\n\n---\n\n## 🧠 Action Memory System (Coming Soon)\n\nBuilding on our Persistent Memory foundation, RunAgent is introducing **Action Memory** - an advanced approach to agent reliability that focuses on *how to remember* rather than *what to remember*.\n\n### How It Will Work\n\n- **Action-Centric**: Instead of storing raw conversation data, it captures decision patterns and successful action sequences\n- **Cross-Language**: Memory persists across all SDK languages seamlessly  \n- **Reliability Focus**: Learns from successful outcomes to improve future decisions\n- **Ecosystem Integration**: Works with any framework - LangGraph, CrewAI, Letta, and more\n\nThis will ensure your agents become more reliable over time, building upon the Persistent Memory system to create truly intelligent, context-aware agents.\n\n---\n\n## Community \u0026 Support\n\n\u003cdiv align=\"center\"\u003e\n\n**[Discord Community](https://discord.gg/Q9P9AdHVHz)** • **[Documentation](https://docs.run-agent.ai)** • **[GitHub](https://github.com/runagent-dev/runagent)**\n\n\u003c/div\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Ready to build universal AI agents?**\n\n[**Get Started with Local Development →**](https://docs.run-agent.ai/get-started/quickstart.md)\n\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/runagent-dev/runagent\"\u003e🌟 Star us on GitHub\u003c/a\u003e •\n  \u003ca href=\"https://discord.gg/Q9P9AdHVHz\"\u003e💬 Join Discord\u003c/a\u003e •\n  \u003ca href=\"https://docs.run-agent.ai\"\u003e📚 Read the Docs\u003c/a\u003e\n\u003c/p\u003e\n\n![Visitor Badge](https://visitor-badge.laobi.icu/badge?page_id=runagent-dev.runagent)\n\n\u003cp align=\"center\"\u003e\n  \u003csub\u003eMade with ❤️ by the RunAgent Team\u003c/sub\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frunagent-dev%2Frunagent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frunagent-dev%2Frunagent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frunagent-dev%2Frunagent/lists"}