{"id":30887679,"url":"https://github.com/agentscope-ai/agentscope-runtime","last_synced_at":"2026-04-20T11:04:11.741Z","repository":{"id":310017822,"uuid":"1037738708","full_name":"agentscope-ai/agentscope-runtime","owner":"agentscope-ai","description":"A production-ready runtime framework for agent apps with secure tool sandboxing, Agent-as-a-Service APIs, scalable deployment, full-stack observability, and broad framework compatibility.","archived":false,"fork":false,"pushed_at":"2026-03-26T08:24:11.000Z","size":90467,"stargazers_count":660,"open_issues_count":41,"forks_count":134,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-03-27T02:54:00.966Z","etag":null,"topics":["a2a","agent","agentscope","agno","deployment","docker","kubernetes","langgraph","mcp","modelstudio","runtime","sandbox","serverless"],"latest_commit_sha":null,"homepage":"https://runtime.agentscope.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/agentscope-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"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-08-14T03:43:36.000Z","updated_at":"2026-03-27T02:33:44.000Z","dependencies_parsed_at":"2025-10-15T19:29:20.525Z","dependency_job_id":null,"html_url":"https://github.com/agentscope-ai/agentscope-runtime","commit_stats":null,"previous_names":["agentscope-ai/agentscope-runtime"],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/agentscope-ai/agentscope-runtime","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentscope-ai%2Fagentscope-runtime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentscope-ai%2Fagentscope-runtime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentscope-ai%2Fagentscope-runtime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentscope-ai%2Fagentscope-runtime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agentscope-ai","download_url":"https://codeload.github.com/agentscope-ai/agentscope-runtime/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentscope-ai%2Fagentscope-runtime/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31307461,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["a2a","agent","agentscope","agno","deployment","docker","kubernetes","langgraph","mcp","modelstudio","runtime","sandbox","serverless"],"created_at":"2025-09-08T14:08:34.997Z","updated_at":"2026-04-02T14:01:42.683Z","avatar_url":"https://github.com/agentscope-ai.png","language":"Python","funding_links":[],"categories":["📚 Projects (1974 total)","Design Primitives","⚙️ Implementations \u0026 Libraries"],"sub_categories":["MCP Servers","Task Runners \u0026 Orchestration"],"readme":"\u003cdiv align=\"center\"\u003e\n\n# AgentScope Runtime: A Production-grade Runtime for Agent Applications\n\n[![GitHub Repo](https://img.shields.io/badge/GitHub-Repo-black.svg?logo=github)](https://github.com/agentscope-ai/agentscope-runtime)\n[![WebUI](https://img.shields.io/badge/Try_WebUI-Online-green.svg?logo=googlechrome)](http://webui.runtime.agentscope.io/)\n[![PyPI](https://img.shields.io/pypi/v/agentscope-runtime?label=PyPI\u0026color=brightgreen\u0026logo=python)](https://pypi.org/project/agentscope-runtime/)\n[![Downloads](https://static.pepy.tech/badge/agentscope-runtime)](https://pepy.tech/project/agentscope-runtime)\n[![Python Version](https://img.shields.io/badge/python-3.10%2B-blue.svg?logo=python\u0026label=Python)](https://python.org)\n[![Last Commit](https://img.shields.io/github/last-commit/agentscope-ai/agentscope-runtime)](https://github.com/agentscope-ai/agentscope-runtime)\n[![License](https://img.shields.io/badge/license-Apache%202.0-red.svg?logo=apache\u0026label=License)](LICENSE)\n[![Code Style](https://img.shields.io/badge/code%20style-black-black.svg?logo=python\u0026label=CodeStyle)](https://github.com/psf/black)\n[![GitHub Stars](https://img.shields.io/github/stars/agentscope-ai/agentscope-runtime?style=flat\u0026logo=github\u0026color=yellow\u0026label=Stars)](https://github.com/agentscope-ai/agentscope-runtime/stargazers)\n[![GitHub Forks](https://img.shields.io/github/forks/agentscope-ai/agentscope-runtime?style=flat\u0026logo=github\u0026color=purple\u0026label=Forks)](https://github.com/agentscope-ai/agentscope-runtime/network)\n[![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg?logo=githubactions\u0026label=Build)](https://github.com/agentscope-ai/agentscope-runtime/actions)\n[![Cookbook](https://img.shields.io/badge/📚_Cookbook-English|中文-teal.svg)](https://runtime.agentscope.io)\n[![DeepWiki](https://img.shields.io/badge/DeepWiki-Ask_Devin-navy.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAyCAYAAAAnWDnqAAAAAXNSR0IArs4c6QAAA05JREFUaEPtmUtyEzEQhtWTQyQLHNak2AB7ZnyXZMEjXMGeK/AIi+QuHrMnbChYY7MIh8g01fJoopFb0uhhEqqcbWTp06/uv1saEDv4O3n3dV60RfP947Mm9/SQc0ICFQgzfc4CYZoTPAswgSJCCUJUnAAoRHOAUOcATwbmVLWdGoH//PB8mnKqScAhsD0kYP3j/Yt5LPQe2KvcXmGvRHcDnpxfL2zOYJ1mFwrryWTz0advv1Ut4CJgf5uhDuDj5eUcAUoahrdY/56ebRWeraTjMt/00Sh3UDtjgHtQNHwcRGOC98BJEAEymycmYcWwOprTgcB6VZ5JK5TAJ+fXGLBm3FDAmn6oPPjR4rKCAoJCal2eAiQp2x0vxTPB3ALO2CRkwmDy5WohzBDwSEFKRwPbknEggCPB/imwrycgxX2NzoMCHhPkDwqYMr9tRcP5qNrMZHkVnOjRMWwLCcr8ohBVb1OMjxLwGCvjTikrsBOiA6fNyCrm8V1rP93iVPpwaE+gO0SsWmPiXB+jikdf6SizrT5qKasx5j8ABbHpFTx+vFXp9EnYQmLx02h1QTTrl6eDqxLnGjporxl3NL3agEvXdT0WmEost648sQOYAeJS9Q7bfUVoMGnjo4AZdUMQku50McDcMWcBPvr0SzbTAFDfvJqwLzgxwATnCgnp4wDl6Aa+Ax283gghmj+vj7feE2KBBRMW3FzOpLOADl0Isb5587h/U4gGvkt5v60Z1VLG8BhYjbzRwyQZemwAd6cCR5/XFWLYZRIMpX39AR0tjaGGiGzLVyhse5C9RKC6ai42ppWPKiBagOvaYk8lO7DajerabOZP46Lby5wKjw1HCRx7p9sVMOWGzb/vA1hwiWc6jm3MvQDTogQkiqIhJV0nBQBTU+3okKCFDy9WwferkHjtxib7t3xIUQtHxnIwtx4mpg26/HfwVNVDb4oI9RHmx5WGelRVlrtiw43zboCLaxv46AZeB3IlTkwouebTr1y2NjSpHz68WNFjHvupy3q8TFn3Hos2IAk4Ju5dCo8B3wP7VPr/FGaKiG+T+v+TQqIrOqMTL1VdWV1DdmcbO8KXBz6esmYWYKPwDL5b5FA1a0hwapHiom0r/cKaoqr+27/XcrS5UwSMbQAAAABJRU5ErkJggg==)](https://deepwiki.com/agentscope-ai/agentscope-runtime)\n[![A2A](https://img.shields.io/badge/A2A-Agent_to_Agent-blue.svg?label=A2A)](https://a2a-protocol.org/)\n[![MCP](https://img.shields.io/badge/MCP-Model_Context_Protocol-purple.svg?logo=plug\u0026label=MCP)](https://modelcontextprotocol.io/)\n[![Discord](https://img.shields.io/badge/Discord-Join_Us-blueviolet.svg?logo=discord)](https://discord.gg/eYMpfnkG8h)\n[![DingTalk](https://img.shields.io/badge/DingTalk-Join_Us-orange.svg)](https://qr.dingtalk.com/action/joingroup?code=v1,k1,OmDlBXpjW+I2vWjKDsjvI9dhcXjGZi3bQiojOq3dlDw=\u0026_dt_no_comment=1\u0026origin=11)\n\n[[Cookbook]](https://runtime.agentscope.io/)\n[[Try WebUI]](http://webui.runtime.agentscope.io/)\n[[中文README]](README_zh.md)\n[[Samples]](https://github.com/agentscope-ai/agentscope-samples)\n\n\u003e **Core capabilities:**\n\u003e\n\u003e **Tool Sandboxing** — tool call runs inside a **hardened sandbox**\n\u003e\n\u003e **Agent-as-a-Service (AaaS) APIs** — expose agents as **streaming, production-ready APIs**\n\u003e\n\u003e **Scalable Deployment** — deploy locally, on Kubernetes, or serverless for **elastic scale**\n\u003e\n\u003e \u003cdetails\u003e\n\u003e \u003csummary\u003e\u003cb\u003ePlus\u003c/b\u003e\u003c/summary\u003e\n\u003e\n\u003e \u003cbr\u003e\n\u003e\n\u003e **Full-stack observability** (logs / traces)\n\u003e\n\u003e **Framework compatibility** with mainstream agent frameworks\n\u003e\n\u003e \u003c/details\u003e\n\n\u003c/div\u003e\n\n---\n\n## Table of Contents\n\n\u003e [!NOTE]\n\u003e\n\u003e **Recommended reading order:**\n\u003e\n\u003e - **I want to run an agent app in 5 minutes**: Quick Start (Agent App example) → verify with curl (SSE streaming)\n\u003e - **I care about secure tool execution / automation**: Quick Start (Sandbox examples) → sandbox image registry/namespace/tag configuration → (optional) production-grade serverless sandbox deployment\n\u003e - **I want production deployment / expose APIs**: Quick Start (Agent App example) → Quick Start (Deployment example) → Guides\n\u003e - **I want to contribute**: Contributing → Contact\n\n- [News](#-news)\n- [Key Features](#-key-features)\n- [Quick Start](#-quick-start): From installation to running a minimal Agent API service. Learn the three-stage `AgentApp` development pattern: `init` / `query` / `shutdown`.\n  - [Prerequisites](#prerequisites): Required runtime environment and dependencies\n  - [Installation](#installation): Install from PyPI or from source\n  - [Agent App Example](#agent-app-example): How to build a streaming (SSE) Agent-as-a-Service API\n  - [Sandbox Example](#sandbox-example): How to safely execute Python/Shell/GUI/Browser/Filesystem/Mobile tools in an isolated sandbox\n  - [Deployment Example](#deployment-example): Learn to deploy with `DeployManager` locally or in a serverless environment, and access the service via A2A, Response API, or the OpenAI SDK in compatible mode\n- [Guides](#-guides): A tutorial site covering AgentScope Runtime concepts, architecture, APIs, and sample projects—helping you move from “it runs” to “scalable and maintainable”.\n- [Contact](#-contact)\n- [Contributing](#-contributing)\n- [License](#-license)\n- [Contributors](#-contributors)\n\n---\n\n## 🆕 NEWS\n\n* **[2026-02]** A major architectural refactor of `AgentApp` in **v1.1.0**. By adopting direct inheritance from `FastAPI` and deprecating the previous factory pattern, `AgentApp` now offers seamless integration with the full FastAPI ecosystem, significantly boosting extensibility. Furthermore, we've introduced a **Distributed Interrupt Service**, enabling manual task preemption during agent execution and allowing developers to customize state persistence and recovery logic flexibly. Please refer to the **[CHANGELOG](https://runtime.agentscope.io/en/CHANGELOG.html)** for full update details and migration guide.\n* **[2026-01]** Added **asynchronous sandbox** implementations (`BaseSandboxAsync`, `GuiSandboxAsync`, `BrowserSandboxAsync`, `FilesystemSandboxAsync`, `MobileSandboxAsync`) enabling non-blocking, concurrent tool execution in async program. Improved `run_ipython_cell` and `run_shell_command` methods with enhanced **concurrency and parallel execution** capabilities for more efficient sandbox operations.\n* **[2025-12]** We have released **AgentScope Runtime v1.0**, introducing a unified “Agent as API” white-box development experience, with enhanced multi-agent collaboration, state persistence, and cross-framework integration. This release also streamlines abstractions and modules to ensure consistency between development and production environments. Please refer to the **[CHANGELOG](https://runtime.agentscope.io/en/CHANGELOG.html)** for full update details and migration guide.\n\n---\n\n## ✨ Key Features\n\n- **Deployment Infrastructure**: Built-in services for agent state management, conversation history, long-term memory, and sandbox lifecycle control\n- **Framework-Agnostic**: Not tied to any specific agent framework; seamlessly integrates with popular open-source and custom implementations\n- **Developer-Friendly**: Offers `AgentApp` for easy deployment with powerful customization options\n- **Observability**: Comprehensive tracking and monitoring of runtime operations\n- **Sandboxed Tool Execution**: Isolated sandbox ensures safe tool execution without affecting the system\n- **Out-of-the-Box Tools \u0026 One-Click Adaptation**: Rich set of ready-to-use tools, with adapters enabling quick integration into different frameworks\n\n\u003e [!NOTE]\n\u003e\n\u003e **About Framework-Agnostic**: Currently, AgentScope Runtime supports the **AgentScope** framework. We plan to extend compatibility to more agent development frameworks in the future. This table shows the current version’s adapter support for different frameworks. The level of support for each functionality varies across frameworks:\n\u003e\n\u003e | Framework/Feature                                            | Message/Event | Tool |\n\u003e | ------------------------------------------------------------ | ------------- | ---- |\n\u003e | [AgentScope](https://runtime.agentscope.io/en/quickstart.html) | ✅             | ✅    |\n\u003e | [LangGraph](https://runtime.agentscope.io/en/langgraph_guidelines.html) | ✅             | 🚧    |\n\u003e | [Microsoft Agent Framework](https://runtime.agentscope.io/en/ms_agent_framework_guidelines.html) | ✅             | ✅    |\n\u003e | [Agno](https://runtime.agentscope.io/en/agno_guidelines.html) | ✅             | ✅    |\n\u003e | AutoGen                                                      | 🚧             | ✅    |\n\n---\n\n## 🚀 Quick Start\n\n### Prerequisites\n- Python 3.10 or higher\n- pip or uv package manager\n\n### Installation\n\nFrom PyPI:\n\n```bash\n# Install core dependencies\npip install agentscope-runtime\n\n# Install extension\npip install \"agentscope-runtime[ext]\"\n\n# Install preview version\npip install --pre agentscope-runtime\n```\n\n(Optional) From source:\n\n```bash\n# Pull the source code from GitHub\ngit clone -b main https://github.com/agentscope-ai/agentscope-runtime.git\ncd agentscope-runtime\n\n# Install core dependencies\npip install -e .\n```\n\n### Agent App Example\n\nThis example demonstrates how to create an agent API server using agentscope `ReActAgent` and `AgentApp`.  To run a minimal `AgentScope` Agent with AgentScope Runtime, you generally need to implement:\n\n1. **`Define lifespan`** – Use `contextlib.asynccontextmanager` to manage resource initialization (e.g., state services) at startup and cleanup on exit.\n2. **`@agent_app.query(framework=\"agentscope\")`** – Core logic for handling requests, **must use** `stream_printing_messages` to `yield msg, last` for streaming output\n\n\n```python\nimport os\nfrom contextlib import asynccontextmanager\n\nfrom fastapi import FastAPI\nfrom agentscope.agent import ReActAgent\nfrom agentscope.model import DashScopeChatModel\nfrom agentscope.formatter import DashScopeChatFormatter\nfrom agentscope.tool import Toolkit, execute_python_code\nfrom agentscope.pipeline import stream_printing_messages\nfrom agentscope.memory import InMemoryMemory\nfrom agentscope.session import RedisSession\n\nfrom agentscope_runtime.engine import AgentApp\nfrom agentscope_runtime.engine.schemas.agent_schemas import AgentRequest\n\n# 1. Define lifespan manager\n@asynccontextmanager\nasync def lifespan(app: FastAPI):\n    \"\"\"Manage resources during service startup and shutdown\"\"\"\n    # Startup: Initialize Session manager\n    import fakeredis\n\n    fake_redis = fakeredis.aioredis.FakeRedis(decode_responses=True)\n    # NOTE: This FakeRedis instance is for development/testing only.\n    # In production, replace it with your own Redis client/connection\n    # (e.g., aioredis.Redis)\n    app.state.session = RedisSession(connection_pool=fake_redis.connection_pool)\n\n    yield  # Service is running\n\n    # Shutdown: Add cleanup logic here (e.g., closing database connections)\n    print(\"AgentApp is shutting down...\")\n\n# 2. Create AgentApp instance\nagent_app = AgentApp(\n    app_name=\"Friday\",\n    app_description=\"A helpful assistant\",\n    lifespan=lifespan,\n)\n\n# 3. Define request handling logic\n@agent_app.query(framework=\"agentscope\")\nasync def query_func(\n    self,\n    msgs,\n    request: AgentRequest = None,\n    **kwargs,\n):\n    session_id = request.session_id\n    user_id = request.user_id\n\n    toolkit = Toolkit()\n    toolkit.register_tool_function(execute_python_code)\n\n    agent = ReActAgent(\n        name=\"Friday\",\n        model=DashScopeChatModel(\n            \"qwen-turbo\",\n            api_key=os.getenv(\"DASHSCOPE_API_KEY\"),\n            stream=True,\n        ),\n        sys_prompt=\"You're a helpful assistant named Friday.\",\n        toolkit=toolkit,\n        memory=InMemoryMemory(),\n        formatter=DashScopeChatFormatter(),\n    )\n    agent.set_console_output_enabled(enabled=False)\n\n    # Load state\n    await agent_app.state.session.load_session_state(\n        session_id=session_id,\n        user_id=user_id,\n        agent=agent,\n    )\n\n    async for msg, last in stream_printing_messages(\n        agents=[agent],\n        coroutine_task=agent(msgs),\n    ):\n        yield msg, last\n\n    # Save state\n    await agent_app.state.session.save_session_state(\n        session_id=session_id,\n        user_id=user_id,\n        agent=agent,\n    )\n\n# 4. Run the application\nagent_app.run(host=\"127.0.0.1\", port=8090)\n```\n\nThe server will start and listen on: `http://localhost:8090/process`. You can send JSON input to the API using `curl`:\n\n```bash\ncurl -N \\\n  -X POST \"http://localhost:8090/process\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"input\": [\n      {\n        \"role\": \"user\",\n        \"content\": [\n          { \"type\": \"text\", \"text\": \"What is the capital of France?\" }\n        ]\n      }\n    ]\n  }'\n```\n\nYou’ll see output streamed in **Server-Sent Events (SSE)** format:\n\n```bash\ndata: {\"sequence_number\":0,\"object\":\"response\",\"status\":\"created\", ... }\ndata: {\"sequence_number\":1,\"object\":\"response\",\"status\":\"in_progress\", ... }\ndata: {\"sequence_number\":2,\"object\":\"message\",\"status\":\"in_progress\", ... }\ndata: {\"sequence_number\":3,\"object\":\"content\",\"status\":\"in_progress\",\"text\":\"The\" }\ndata: {\"sequence_number\":4,\"object\":\"content\",\"status\":\"in_progress\",\"text\":\" capital of France is Paris.\" }\ndata: {\"sequence_number\":5,\"object\":\"message\",\"status\":\"completed\",\"text\":\"The capital of France is Paris.\" }\ndata: {\"sequence_number\":6,\"object\":\"response\",\"status\":\"completed\", ... }\n```\n\n### Sandbox Example\n\nThese examples demonstrate how to create sandboxed environments and execute tools within them, with some examples featuring interactive frontend interfaces accessible via VNC (Virtual Network Computing):\n\n\u003e [!NOTE]\n\u003e\n\u003e If you want to run the sandbox locally, the current version supports **Docker (optionally with gVisor)** or **[BoxLite](https://github.com/boxlite-ai/boxlite)** as the backend, and you can switch the backend by setting the environment variable `CONTAINER_DEPLOYMENT` (supported values include `docker` / `gvisor` / `boxlite` etc.; default: `docker`).\n\u003e\n\u003e For large-scale remote/production deployments, we recommend using **Kubernetes (K8s)**, **Function Compute (FC)**, or [**Alibaba Cloud Container Service for Kubernetes (ACK)**](https://computenest.console.aliyun.com/service/instance/create/default?ServiceName=AgentScope%20Runtime%20%E6%B2%99%E7%AE%B1%E7%8E%AF%E5%A2%83) as the backend. Please refer to [this tutorial](https://runtime.agentscope.io/en/sandbox/advanced.html) for more details.\n\n\u003e [!TIP]\n\u003e AgentScope Runtime provides **both synchronous** and **asynchronous** versions for each sandbox type\n\n| Synchronous Class   | Asynchronous Class       |\n| ------------------- | ------------------------ |\n| `BaseSandbox`       | `BaseSandboxAsync`       |\n| `GuiSandbox`        | `GuiSandboxAsync`        |\n| `FilesystemSandbox` | `FilesystemSandboxAsync` |\n| `BrowserSandbox`    | `BrowserSandboxAsync`    |\n| `MobileSandbox`     | `MobileSandboxAsync`     |\n| `TrainingSandbox`   | -                        |\n| `AgentbaySandbox`   | -                        |\n\n#### Base Sandbox\n\nUse for running **Python code** or **shell commands** in an isolated environment.\n\n```python\n# --- Synchronous version ---\nfrom agentscope_runtime.sandbox import BaseSandbox\n\nwith BaseSandbox() as box:\n    # By default, pulls `agentscope/runtime-sandbox-base:latest` from DockerHub\n    print(box.list_tools()) # List all available tools\n    print(box.run_ipython_cell(code=\"print('hi')\"))  # Run Python code\n    print(box.run_shell_command(command=\"echo hello\"))  # Run shell command\n    input(\"Press Enter to continue...\")\n\n# --- Asynchronous version ---\nfrom agentscope_runtime.sandbox import BaseSandboxAsync\n\nasync with BaseSandboxAsync() as box:\n    # Default image is `agentscope/runtime-sandbox-base:latest`\n    print(await box.list_tools_async())  # List all available tools\n    print(await box.run_ipython_cell(code=\"print('hi')\"))  # Run Python code\n    print(await box.run_shell_command(command=\"echo hello\"))  # Run shell command\n    input(\"Press Enter to continue...\")\n```\n\n#### GUI Sandbox\n\nProvides a **virtual desktop** environment for mouse, keyboard, and screen operations.\n\n\u003cimg src=\"https://img.alicdn.com/imgextra/i2/O1CN01df5SaM1xKFQP4KGBW_!!6000000006424-2-tps-2958-1802.png\" alt=\"GUI Sandbox\" width=\"800\" height=\"500\"\u003e\n\n```python\n# --- Synchronous version ---\nfrom agentscope_runtime.sandbox import GuiSandbox\n\nwith GuiSandbox() as box:\n    # By default, pulls `agentscope/runtime-sandbox-gui:latest` from DockerHub\n    print(box.list_tools())  # List all available tools\n    print(box.desktop_url)  # Web desktop access URL\n    print(box.computer_use(action=\"get_cursor_position\"))  # Get mouse cursor position\n    print(box.computer_use(action=\"get_screenshot\"))  # Capture screenshot\n    input(\"Press Enter to continue...\")\n\n# --- Asynchronous version ---\nfrom agentscope_runtime.sandbox import GuiSandboxAsync\n\nasync with GuiSandboxAsync() as box:\n    # Default image is `agentscope/runtime-sandbox-gui:latest`\n    print(await box.list_tools_async())  # List all available tools\n    print(box.desktop_url)  # Web desktop access URL\n    print(await box.computer_use(action=\"get_cursor_position\"))  # Get mouse cursor position\n    print(await box.computer_use(action=\"get_screenshot\"))  # Capture screenshot\n    input(\"Press Enter to continue...\")\n```\n\n#### Browser Sandbox\n\nA GUI-based sandbox with **browser operations** inside an isolated sandbox.\n\n\u003cimg src=\"https://img.alicdn.com/imgextra/i4/O1CN01OIq1dD1gAJMcm0RFR_!!6000000004101-2-tps-2734-1684.png\" alt=\"GUI Sandbox\" width=\"800\" height=\"500\"\u003e\n\n```python\n# --- Synchronous version ---\nfrom agentscope_runtime.sandbox import BrowserSandbox\n\nwith BrowserSandbox() as box:\n    # By default, pulls `agentscope/runtime-sandbox-browser:latest` from DockerHub\n    print(box.list_tools())  # List all available tools\n    print(box.desktop_url)  # Web desktop access URL\n    box.browser_navigate(\"https://www.google.com/\")  # Open a webpage\n    input(\"Press Enter to continue...\")\n\n# --- Asynchronous version ---\nfrom agentscope_runtime.sandbox import BrowserSandboxAsync\n\nasync with BrowserSandboxAsync() as box:\n    # Default image is `agentscope/runtime-sandbox-browser:latest`\n    print(await box.list_tools_async())  # List all available tools\n    print(box.desktop_url)  # Web desktop access URL\n    await box.browser_navigate(\"https://www.google.com/\")  # Open a webpage\n    input(\"Press Enter to continue...\")\n```\n\n#### Filesystem Sandbox\n\nA GUI-based sandbox with **file system operations** such as creating, reading, and deleting files.\n\n\u003cimg src=\"https://img.alicdn.com/imgextra/i3/O1CN01VocM961vK85gWbJIy_!!6000000006153-2-tps-2730-1686.png\" alt=\"GUI Sandbox\" width=\"800\" height=\"500\"\u003e\n\n```python\n# --- Synchronous version ---\nfrom agentscope_runtime.sandbox import FilesystemSandbox\n\nwith FilesystemSandbox() as box:\n    # By default, pulls `agentscope/runtime-sandbox-filesystem:latest` from DockerHub\n    print(box.list_tools())  # List all available tools\n    print(box.desktop_url)  # Web desktop access URL\n    box.create_directory(\"test\")  # Create a directory\n    input(\"Press Enter to continue...\")\n\n# --- Asynchronous version ---\nfrom agentscope_runtime.sandbox import FilesystemSandboxAsync\n\nasync with FilesystemSandboxAsync() as box:\n    # Default image is `agentscope/runtime-sandbox-filesystem:latest`\n    print(await box.list_tools_async())  # List all available tools\n    print(box.desktop_url)  # Web desktop access URL\n    await box.create_directory(\"test\")  # Create a directory\n    input(\"Press Enter to continue...\")\n```\n\n#### Mobile Sandbox\n\nProvides a **sandboxed Android emulator environment** that allows executing various mobile operations, such as tapping, swiping, inputting text, and taking screenshots.\n\n\u003cimg src=\"https://img.alicdn.com/imgextra/i4/O1CN01yPnBC21vOi45fLy7V_!!6000000006163-2-tps-544-865.png\" alt=\"Mobile Sandbox\" height=\"500\"\u003e\n\n##### Prerequisites\n\n- **Linux Host**:\n  When running on a Linux host, this sandbox requires the `binder` and `ashmem` kernel modules to be loaded. If they are missing, execute the following commands on your host to install and load the required modules:\n\n  ```bash\n  # 1. Install extra kernel modules\n  sudo apt update \u0026\u0026 sudo apt install -y linux-modules-extra-`uname -r`\n\n  # 2. Load modules and create device nodes\n  sudo modprobe binder_linux devices=\"binder,hwbinder,vndbinder\"\n  sudo modprobe ashmem_linux\n- **Architecture Compatibility**:\n  When running on an ARM64/aarch64 architecture (e.g., Apple M-series chips), you may encounter compatibility or performance issues. It is recommended to run on an x86_64 host.\n```python\n# --- Synchronous version ---\nfrom agentscope_runtime.sandbox import MobileSandbox\n\nwith MobileSandbox() as box:\n    # By default, pulls 'agentscope/runtime-sandbox-mobile:latest' from DockerHub\n    print(box.list_tools())  # List all available tools\n    print(box.mobile_get_screen_resolution())  # Get the screen resolution\n    print(box.mobile_tap([500, 1000]))  # Tap at coordinate (500, 1000)\n    print(box.mobile_input_text(\"Hello from AgentScope!\"))  # Input text\n    print(box.mobile_key_event(3))  # HOME key event\n    screenshot_result = box.mobile_get_screenshot()  # Get screenshot\n    print(screenshot_result)\n    input(\"Press Enter to continue...\")\n\n# --- Asynchronous version ---\nfrom agentscope_runtime.sandbox import MobileSandboxAsync\n\nasync with MobileSandboxAsync() as box:\n    # Default image is 'agentscope/runtime-sandbox-mobile:latest'\n    print(await box.list_tools_async())  # List all available tools\n    print(await box.mobile_get_screen_resolution())  # Get the screen resolution\n    print(await box.mobile_tap([500, 1000]))  # Tap at coordinate (500, 1000)\n    print(await box.mobile_input_text(\"Hello from AgentScope!\"))  # Input text\n    print(await box.mobile_key_event(3))  # HOME key event\n    screenshot_result = await box.mobile_get_screenshot()  # Get screenshot\n    print(screenshot_result)\n    input(\"Press Enter to continue...\")\n```\n\n\u003e [!NOTE]\n\u003e\n\u003e To add tools to the AgentScope `Toolkit`:\n\u003e\n\u003e 1. Wrap sandbox tool with `sandbox_tool_adapter`, so the AgentScope agent can call them:\n\u003e\n\u003e    ```python\n\u003e    from agentscope_runtime.adapters.agentscope.tool import sandbox_tool_adapter\n\u003e\n\u003e    wrapped_tool = sandbox_tool_adapter(sandbox.browser_navigate)\n\u003e    ```\n\u003e\n\u003e 2. Register the tool with `register_tool_function`:\n\u003e\n\u003e    ```python\n\u003e    toolkit = Toolkit()\n\u003e    Toolkit.register_tool_function(wrapped_tool)\n\u003e    ```\n\n#### Configuring Sandbox Image Registry, Namespace, and Tag\n\n##### 1. Registry\n\nIf pulling images from DockerHub fails (for example, due to network restrictions), you can switch the image source to Alibaba Cloud Container Registry for faster access:\n\n```bash\nexport RUNTIME_SANDBOX_REGISTRY=\"agentscope-registry.ap-southeast-1.cr.aliyuncs.com\"\n```\n\n##### 2. Namespace\n\nA namespace is used to distinguish images of different teams or projects. You can customize the namespace via an environment variable:\n\n```bash\nexport RUNTIME_SANDBOX_IMAGE_NAMESPACE=\"agentscope\"\n```\n\nFor example, here `agentscope` will be used as part of the image path.\n\n##### 3. Tag\n\nAn image tag specifies the version of the image, for example:\n\n```bash\nexport RUNTIME_SANDBOX_IMAGE_TAG=\"preview\"\n```\n\nDetails:\n\n- Default is `latest`, which means the image version matches the PyPI latest release.\n- `preview` means the latest preview version built in sync with the **GitHub main branch**.\n- You can also use a specified version number such as `20250909`. You can check all available image versions at [DockerHub](https://hub.docker.com/repositories/agentscope).\n\n##### 4. Complete Image Path\n\nThe sandbox SDK will build the full image path based on the above environment variables:\n\n```bash\n\u003cRUNTIME_SANDBOX_REGISTRY\u003e/\u003cRUNTIME_SANDBOX_IMAGE_NAMESPACE\u003e/runtime-sandbox-base:\u003cRUNTIME_SANDBOX_IMAGE_TAG\u003e\n```\n\nExample:\n\n```bash\nagentscope-registry.ap-southeast-1.cr.aliyuncs.com/agentscope/runtime-sandbox-base:preview\n```\n\n#### Serverless Sandbox Deployment\n\nAgentScope Runtime also supports serverless deployment, which is suitable for running sandboxes in a serverless environment, e.g. [Alibaba Cloud Function Compute (FC)](https://help.aliyun.com/zh/functioncompute/fc/).\n\nFirst, please refer to the [documentation](https://runtime.agentscope.io/en/sandbox/advanced.html#optional-function-compute-fc-settings) to configure the serverless environment variables. Make `CONTAINER_DEPLOYMENT` to `fc` to enable serverless deployment.\n\nThen, start a sandbox server, use the `--config` option to specify a serverless environment setup:\n\n```bash\n# This command will load the settings defined in the `custom.env` file\nruntime-sandbox-server --config fc.env\n```\nAfter the server starts, you can access the sandbox server at baseurl `http://localhost:8000` and invoke sandbox tools described above.\n\n### Deployment Example\n\nThe `AgentApp` exposes a `deploy` method that takes a `DeployManager` instance and deploys the agent.\n\n* The service port is set as the parameter `port` when creating the `LocalDeployManager`.\n* The service endpoint path is set as the parameter `endpoint_path` to `/process` when deploying the agent.\n\n* The deployer will automatically add common agent protocols, such as **A2A**, **Response API**.\n\nAfter deployment, users can access the service at http://localhost:8090/process:\n\n```python\nfrom agentscope_runtime.engine.deployers import LocalDeployManager\n\n# Create deployment manager\ndeployer = LocalDeployManager(\n    host=\"0.0.0.0\",\n    port=8090,\n)\n\n# Deploy the app as a streaming service\ndeploy_result = await app.deploy(\n    deployer=deployer,\n    endpoint_path=\"/process\"\n)\n```\n\nAfter deployment, users can also access this service using the Response API of the OpenAI SDK:\n\n```python\nfrom openai import OpenAI\n\nclient = OpenAI(base_url=\"http://localhost:8090/compatible-mode/v1\")\n\nresponse = client.responses.create(\n  model=\"any_name\",\n  input=\"What is the weather in Beijing?\"\n)\n\nprint(response)\n```\n\nBesides, `DeployManager` also supports serverless deployments, such as deploying your agent app to [ModelStudio](https://bailian.console.aliyun.com/?admin=1\u0026tab=doc#/doc/?type=app\u0026url=2983030).\n\n```python\nimport os\nfrom agentscope_runtime.engine.deployers.modelstudio_deployer import (\n    ModelstudioDeployManager,\n    OSSConfig,\n    ModelstudioConfig,\n)\n\n# Create deployment manager\ndeployer = ModelstudioDeployManager(\n    oss_config=OSSConfig(\n        access_key_id=os.environ.get(\"ALIBABA_CLOUD_ACCESS_KEY_ID\"),\n        access_key_secret=os.environ.get(\"ALIBABA_CLOUD_ACCESS_KEY_SECRET\"),\n    ),\n    modelstudio_config=ModelstudioConfig(\n        workspace_id=os.environ.get(\"MODELSTUDIO_WORKSPACE_ID\"),\n        access_key_id=os.environ.get(\"ALIBABA_CLOUD_ACCESS_KEY_ID\"),\n        access_key_secret=os.environ.get(\"ALIBABA_CLOUD_ACCESS_KEY_SECRET\"),\n        dashscope_api_key=os.environ.get(\"DASHSCOPE_API_KEY\"),\n    ),\n)\n\n# Deploy to ModelStudio\nresult = await app.deploy(\n    deployer,\n    deploy_name=\"agent-app-example\",\n    telemetry_enabled=True,\n    requirements=[\"agentscope\", \"fastapi\", \"uvicorn\"],\n    environment={\n        \"PYTHONPATH\": \"/app\",\n        \"DASHSCOPE_API_KEY\": os.environ.get(\"DASHSCOPE_API_KEY\"),\n    },\n)\n```\n\nFor more advanced serverless deployment guides, please refer to the [documentation](https://runtime.agentscope.io/en/advanced_deployment.html#method-4-modelstudio-deployment).\n\n---\n\n## 📚 Guides\n\nFor a more detailed tutorial, please refer to: [![Cookbook](https://img.shields.io/badge/📚_Cookbook-English|中文-teal.svg)](https://runtime.agentscope.io)\n\n---\n\n## 💬 Contact\n\nWelcome to join our community on\n\n| [Discord](https://discord.gg/eYMpfnkG8h)                     | DingTalk                                                     |\n| ------------------------------------------------------------ | ------------------------------------------------------------ |\n| \u003cimg src=\"https://gw.alicdn.com/imgextra/i1/O1CN01hhD1mu1Dd3BWVUvxN_!!6000000000238-2-tps-400-400.png\" width=\"100\" height=\"100\"\u003e | \u003cimg src=\"https://img.alicdn.com/imgextra/i4/O1CN014mhqFq1ZlgNuYjxrz_!!6000000003235-2-tps-400-400.png\" width=\"100\" height=\"100\"\u003e |\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions from the community! Here's how you can help:\n\n### 🐛 Bug Reports\n- Use GitHub Issues to report bugs\n- Include detailed reproduction steps\n- Provide system information and logs\n\n### 💡 Feature Requests\n- Discuss new ideas in GitHub Discussions\n- Follow the feature request template\n- Consider implementation feasibility\n\n### 🔧 Code Contributions\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\nFor detailed contributing guidelines, please see  [CONTRIBUTE](cookbook/en/contribute.md).\n\n---\n\n## 📄 License\n\nAgentScope Runtime is released under the [Apache License 2.0](LICENSE).\n\n```\nCopyright 2025 Tongyi Lab\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n\n## ✨ Contributors\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n[![All Contributors](https://img.shields.io/badge/all_contributors-36-orange.svg?style=flat-square)](#contributors-)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/emoji-key/)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/rayrayraykk\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/39145382?v=4?s=100\" width=\"100px;\" alt=\"Weirui Kuang\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eWeirui Kuang\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=rayrayraykk\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/pulls?q=is%3Apr+reviewed-by%3Arayrayraykk\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e \u003ca href=\"#maintenance-rayrayraykk\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"#projectManagement-rayrayraykk\" title=\"Project Management\"\u003e📆\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://www.bruceluo.net/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/7297307?v=4?s=100\" width=\"100px;\" alt=\"Bruce Luo\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eBruce Luo\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=zhilingluo\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/pulls?q=is%3Apr+reviewed-by%3Azhilingluo\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e \u003ca href=\"#example-zhilingluo\" title=\"Examples\"\u003e💡\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/zzhangpurdue\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/5746653?v=4?s=100\" width=\"100px;\" alt=\"Zhicheng Zhang\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eZhicheng Zhang\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=zzhangpurdue\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/pulls?q=is%3Apr+reviewed-by%3Azzhangpurdue\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e \u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=zzhangpurdue\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/ericczq\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/116273607?v=4?s=100\" width=\"100px;\" alt=\"ericczq\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eericczq\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=ericczq\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=ericczq\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/qbc2016\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/22984042?v=4?s=100\" width=\"100px;\" alt=\"qbc\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eqbc\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/pulls?q=is%3Apr+reviewed-by%3Aqbc2016\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/rankesterc\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/114560457?v=4?s=100\" width=\"100px;\" alt=\"Ran Chen\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRan Chen\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=rankesterc\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/jinliyl\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6469360?v=4?s=100\" width=\"100px;\" alt=\"jinliyl\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ejinliyl\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=jinliyl\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=jinliyl\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Osier-Yi\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/8287381?v=4?s=100\" width=\"100px;\" alt=\"Osier-Yi\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eOsier-Yi\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=Osier-Yi\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=Osier-Yi\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/kevinlin09\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/26913335?v=4?s=100\" width=\"100px;\" alt=\"Kevin Lin\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKevin Lin\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=kevinlin09\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://davdgao.github.io/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/102287034?v=4?s=100\" width=\"100px;\" alt=\"DavdGao\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDavdGao\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/pulls?q=is%3Apr+reviewed-by%3ADavdGao\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/FLyLeaf-coder\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/122603493?v=4?s=100\" width=\"100px;\" alt=\"FlyLeaf\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eFlyLeaf\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=FLyLeaf-coder\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=FLyLeaf-coder\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/jinghuan-Chen\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/42742857?v=4?s=100\" width=\"100px;\" alt=\"jinghuan-Chen\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ejinghuan-Chen\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=jinghuan-Chen\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Sodawyx\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/34974468?v=4?s=100\" width=\"100px;\" alt=\"Yuxuan Wu\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eYuxuan Wu\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=Sodawyx\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=Sodawyx\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/TianYu92\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/12960468?v=4?s=100\" width=\"100px;\" alt=\"Fear1es5\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eFear1es5\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/issues?q=author%3ATianYu92\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/ms-cs\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/43086458?v=4?s=100\" width=\"100px;\" alt=\"zhiyong\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ezhiyong\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=ms-cs\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/issues?q=author%3Ams-cs\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/jooojo\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/11719425?v=4?s=100\" width=\"100px;\" alt=\"jooojo\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ejooojo\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=jooojo\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/issues?q=author%3Ajooojo\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://ceshihao.github.io\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/7711875?v=4?s=100\" width=\"100px;\" alt=\"Zheng Dayu\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eZheng Dayu\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=ceshihao\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/issues?q=author%3Aceshihao\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://lokk.cn/about\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/39740818?v=4?s=100\" width=\"100px;\" alt=\"quanyu\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003equanyu\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=taoquanyus\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Littlegrace111\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3880455?v=4?s=100\" width=\"100px;\" alt=\"Grace Wu\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGrace Wu\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=Littlegrace111\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=Littlegrace111\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/pitt-liang\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/8534560?v=4?s=100\" width=\"100px;\" alt=\"LiangQuan\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eLiangQuan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=pitt-liang\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://lishengcn.cn\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/12003270?v=4?s=100\" width=\"100px;\" alt=\"ls\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003els\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=lishengzxc\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#design-lishengzxc\" title=\"Design\"\u003e🎨\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/iSample\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/12894421?v=4?s=100\" width=\"100px;\" alt=\"iSample\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eiSample\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=iSample\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=iSample\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/XiuShenAl\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/242360128?v=4?s=100\" width=\"100px;\" alt=\"XiuShenAl\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eXiuShenAl\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=XiuShenAl\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=XiuShenAl\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/k-farruh\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/33511681?v=4?s=100\" width=\"100px;\" alt=\"Farruh Kushnazarov\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eFarruh Kushnazarov\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=k-farruh\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/fengxsong\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/7008971?v=4?s=100\" width=\"100px;\" alt=\"fengxsong\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003efengxsong\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/issues?q=author%3Afengxsong\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://m4n5ter.github.io\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/68144809?v=4?s=100\" width=\"100px;\" alt=\"Wang\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eWang\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=M4n5ter\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/issues?q=author%3AM4n5ter\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/qiacheng7\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/223075252?v=4?s=100\" width=\"100px;\" alt=\"qiacheng7\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eqiacheng7\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=qiacheng7\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=qiacheng7\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://xieyxclack.github.io/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/31954383?v=4?s=100\" width=\"100px;\" alt=\"Yuexiang XIE\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eYuexiang XIE\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/pulls?q=is%3Apr+reviewed-by%3Axieyxclack\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/RTsama\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/100779257?v=4?s=100\" width=\"100px;\" alt=\"RTsama\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRTsama\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/issues?q=author%3ARTsama\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=RTsama\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://allenli178.top\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/53218750?v=4?s=100\" width=\"100px;\" alt=\"YuYan\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eYuYan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=allenli178\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/rlp2006\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/212365247?v=4?s=100\" width=\"100px;\" alt=\"Li Peng (Yuan Yi)\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eLi Peng (Yuan Yi)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=rlp2006\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=rlp2006\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#example-rlp2006\" title=\"Examples\"\u003e💡\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://dorianzheng.github.io\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/8065637?v=4?s=100\" width=\"100px;\" alt=\"dorianzheng\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003edorianzheng\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/pulls?q=is%3Apr+reviewed-by%3ADorianZheng\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e \u003ca href=\"#platform-DorianZheng\" title=\"Packaging/porting to new platform\"\u003e📦\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/cainiao1992\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/18435004?v=4?s=100\" width=\"100px;\" alt=\"Xiangfang Chen\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eXiangfang Chen\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=cainiao1992\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Eggiverse\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/36877740?v=4?s=100\" width=\"100px;\" alt=\"Zhang Shitian\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eZhang Shitian\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/issues?q=author%3AEggiverse\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=Eggiverse\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Shun-Chu\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/73324318?v=4?s=100\" width=\"100px;\" alt=\"Chuss\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eChuss\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/issues?q=author%3AShun-Chu\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/bcfre\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/209150938?v=4?s=100\" width=\"100px;\" alt=\"bcfre\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ebcfre\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/agentscope-ai/agentscope-runtime/commits?author=bcfre\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n  \u003ctfoot\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" size=\"13px\" colspan=\"7\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/all-contributors/all-contributors-cli/1b8533af435da9854653492b1327a23a4dbd0a10/assets/logo-small.svg\"\u003e\n          \u003ca href=\"https://all-contributors.js.org/docs/en/bot/usage\"\u003eAdd your contributions\u003c/a\u003e\n        \u003c/img\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tfoot\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagentscope-ai%2Fagentscope-runtime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagentscope-ai%2Fagentscope-runtime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagentscope-ai%2Fagentscope-runtime/lists"}