在 AI Agent 應用加速落地的今天,開發者和企業普遍面臨三大核心痛點:部署成本高、運維複雜度高、資源利用率低。為應對這些挑戰,AI Agent 與雲原生、Serverless 架構的深度融合正成為行業新趨勢。我們很高興地宣佈,AgentScope 正式集成基於阿里雲函數計算(Function Compute, FC)的全新 Serverless 運行時,為多智能體應用提供“按需啓動、毫秒彈性、零運維”的新一代運行底座。
AgentScope 是什麼?
AgentScope 是一個開源的多智能體應用開發框架,面向構建可觀察、可控制、可擴展的 AI 智能體系統。其核心設計原則是對開發者完全透明:所有提示工程、模型調用、智能體行為及工作流編排均顯式暴露,避免隱式邏輯或深度封裝。
該框架擁有以下特性:
- 透明性優先:所有內部狀態、消息傳遞路徑、工具調用鏈路和模型交互過程均可追蹤與審計,確保行為可解釋、可調試。
- 實時介入:實現ReAct智能體,原生支持任務執行過程中的實時中斷與自定義中斷處理邏輯,允許用户隨時中斷智能體的回覆,介入智能體的執行,適用於需要人工干預或動態策略調整的場景。
- 增強智能能力:提供統一的工具管理接口、長期記憶控制機制以及智能化 RAG(檢索增強生成)支持,提升智能體的上下文感知與知識利用能力。
- 模型無關架構:抽象統一的模型接入層允許同一套智能體邏輯無縫切換不同大語言模型(如 GPT、Claude、通義千問、Llama 系列等),降低模型遷移成本。
- 模塊化“樂高式”設計:智能體、工具、提示模板、記憶模塊、工作流節點等組件高度解耦,支持獨立開發、組合複用與靈活替換。
- 原生多智能體支持:採用顯式消息傳遞機制與聲明式工作流編排,明確表達智能體間的協作關係,避免隱式調度帶來的不可控性。
- 高度可定製:支持對工具鏈、提示策略、通信協議、第三方庫集成及可視化界面進行深度定製,適配從原型驗證到生產部署的全週期需求。
AgentScope 旨在為開發者提供一個既具備工程嚴謹性,又保持足夠靈活性的智能體開發基礎設施,推動多智能體系統從實驗走向規模化落地。自開源以來,AgentScope 已獲得社區廣泛認可,GitHub Star 數突破 14,000+。
當前Agent運行時的挑戰
AgentScope Runtime 是一個面向生產環境的智能體運行時框架,聚焦於兩大核心問題:高效、可擴展的智能體部署與安全、隔離的Sandbox工具執行。該運行時提供上下文管理(包括長短期記憶與外部知識庫集成)和多層級沙箱基礎設施,構成一套框架無關的底層支撐系統,可與主流開源智能體框架或自定義實現無縫協同。其設計目標是為服務級智能體應用提供具備完整可觀測性、強安全性與便捷部署能力的基礎運行環境。
AgentScope Runtime實現了雙核心架構:
- 智能體部署運行時(Engine) 提供智能體生命週期管理、會話狀態維護、上下文存儲(短期對話歷史與長期記憶)以及外部知識庫接入能力,並集成沙箱環境調度服務,支撐高併發、多會話的智能體服務部署。
- 工具執行運行時(Sandbox) 基於隔離容器構建的安全執行環境,支持智能體調用各類工具操作,包括文件系統訪問、瀏覽器自動化、GUI 交互及 MCP(Model Context Protocol)工具集成,確保所有副作用行為被嚴格限制在沙箱邊界內,杜絕對宿主系統的潛在風險。
目前,AgentScope 的主流部署模式依賴 Docker + Kubernetes 組合。該方案在功能完備性和集羣管理能力上表現優異,但在實際落地 AI Agent 應用時,暴露出若干結構性瓶頸:
- 持續運行帶來固定成本 容器實例需長期駐留內存以維持智能體狀態和會話上下文,即使在無請求的空閒時段仍持續計費,導致顯著的資源浪費,尤其對間歇性、事件驅動型任務極不友好。
- 靜態資源分配缺乏彈性 資源配額(CPU、內存)通常按預估峯值設定,難以動態適配真實負載。在流量突發時可能因資源不足導致響應延遲或失敗;而在低峯期則大量計算資源閒置,利用率低下。
- 高運維複雜度形成使用門檻 部署和維護一套生產級 K8s 集羣涉及網絡策略配置、服務發現、日誌收集、監控告警、自動擴縮容(HPA)等多項雲原生技能,對中小團隊、獨立開發者或非基礎設施背景的研究人員構成顯著障礙。
這些限制使得許多具備潛力的 Agent 應用停留在實驗階段,難以實現低成本、高可用、快速迭代的規模化部署。
為系統性解決上述問題,AgentScope 正式推出基於阿里雲函數計算(Function Compute, FC) 構建的 Serverless 運行時。該運行時針對 AI Agent 的典型工作負載(如會話保持、工具調用、狀態依賴)進行深度優化,在保留功能完整性的同時,徹底重構資源使用與運維模型。
Serverless運行時的核心優勢:
- ✅按量付費,成本可精細化控制 計費粒度精確至毫秒級函數執行時間與內存消耗,空閒期間零費用。對於低頻調用或突發型 Agent 任務,可有效降低成本。
- ✅毫秒級彈性伸縮,自動應對負載波動 無需預設實例數量或手動擴縮容,平台根據併發請求數自動調度計算資源,瞬時支撐從 1 到數千 QPS 的流量突增,保障服務 SLA。
- ✅零運維,聚焦核心邏輯開發 開發者無需關心底層服務器、容器鏡像、K8s 配置或網絡拓撲,僅需關注智能體邏輯、工具集成與業務流程編排,大幅縮短上線週期。
此外,Serverless 運行時通過 會話親和(Session Affinity)機制在無狀態函數架構下有效支持有狀態的 Agent 交互場景,兼顧彈性與一致性。
這一演進標誌着 Agent 運行時正從“重資產、高運維”的傳統模式,邁向“輕量化、自動化、經濟高效”的雲原生新範式,為 AI Agent 的大規模商業化落地掃清基礎設施障礙。
Serverless運行時集成能力詳解
Engine 能力拓展
Serverless 運行時深度集成 AgentScope 的核心執行引擎(AgentScope Runtime Engine),在保留原有編程模型的基礎上,為開發者提供面向雲原生環境的無縫部署體驗。關鍵能力包括:
- 本地代碼一鍵構建與依賴打包 開發者僅需在本地項目目錄中執行
deploy()方法,運行時即可自動分析 Python 依賴,構建包含用户代碼、自定義工具及第三方庫的可執行包,並上傳至阿里雲函數計算(FC)——該服務已深度集成於百鍊 ModelStudio 平台,實現從開發到託管的一站式閉環。 - 一鍵部署生成 HTTPS Endpoint 部署完成後,系統自動分配全局唯一的 HTTPS 端點(Endpoint),支持標準 RESTful 調用。外部系統(如 Web 前端、移動端或第三方服務)可通過該接口直接觸發智能體執行,無需額外配置網關或反向代理。
- Header-Based Session 親和性保障 為支持有狀態交互(如多輪對話、工具鏈連續調用),Serverless 運行時引入基於 HTTP 請求頭的會話綁定機制。客户端通過在請求中攜帶Session ID請求頭,平台將確保同一 Session ID 的所有後續請求路由至同一函數實例(或關聯的沙箱上下文),從而維持內存狀態、臨時文件或瀏覽器會話的一致性。
- 繼承 Serverless 核心優勢 所有通過 Engine 部署的智能體天然享有 Serverless 架構的三大特性:按實際執行時間計費、毫秒級自動擴縮容、零基礎設施運維,顯著降低運營複雜度與總體擁有成本(TCO)。
Sandbox 運行時全面支持
AgentScope 定義的四大沙箱類型現已完整適配 Serverless 運行時,可在函數計算環境中安全、高效地執行各類操作:
- ✅ BaseSandbox:提供隔離的 Python 代碼執行環境,適用於通用腳本運行與邏輯計算
- ✅ FileSystemSandbox:掛載臨時或持久化文件系統,支持文件讀寫、日誌記錄與中間產物存儲
- ✅ BrowserSandbox:內置無頭 Chromium 瀏覽器,實現網頁自動化、數據抓取與前端交互模擬
- ✅ GUISandbox:支持圖形界面應用的模擬執行(如桌面軟件自動化),適用於特定領域工具集成
基於阿里雲函數計算(FC)的Serverless運行時,深度集成 AgentScope 的Sandbox運行引擎,其核心特性如下:
- 預熱實例池,消除冷啓動延遲 平台可預先創建並維護一組常用類型的 Sandbox ,在新會話到來時直接複用,提高常駐服務的響應速度。
- 自動注入 Session ID,保障上下文連續性 在首次創建 Sandbox 時,系統自動生成唯一 Session ID 並返回給客户端;後續所有針對該會話的 HTTP 請求均自動攜帶此 ID,確保操作始終作用於同一沙箱實例,保證狀態一致性。
- 全生命週期 Serverless 體驗 每個 Sandbox 實例在會話結束後自動回收資源,計費隨執行結束而終止,同樣遵循 按量付費、毫秒級彈性、零運維 的 Serverless 原則,在安全性、性能與成本之間取得最佳平衡。
通過 Engine 與 Sandbox 的雙重增強,AgentScope 的 Serverless 運行時不僅解決了傳統部署的成本與運維難題,更在保持強隔離與狀態支持的前提下,實現了 AI Agent 應用的高效、安全、經濟化交付。
快速體驗
現在,您就可以將 Agent 應用快速部署到 Serverless 運行時!
部署 Agent 到 Serverless運行時
只需三步:
- 配置相關環境變量
# 確保設置環境變量
export DASHSCOPE_API_KEY="your-dashscope-api-key"
export ALIBABA_CLOUD_ACCESS_KEY_ID="your-access-key-id"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="your-access-key-secret"
export MODELSTUDIO_WORKSPACE_ID="your-workspace-id"
# 可選的OSS專用憑證
export OSS_ACCESS_KEY_ID="your-oss-access-key-id"
export OSS_ACCESS_KEY_SECRET="your-oss-access-key-secret"
- 定義好您的AgentApp
# -*- coding: utf-8 -*-
# pylint:disable=wrong-import-position, wrong-import-order
import asyncio
import os
from agentscope.agent import ReActAgent
from agentscope.model import DashScopeChatModel
from agentscope_runtime.engine.agents.agentscope_agent import AgentScopeAgent
from agentscope_runtime.engine.runner import Runner
from agentscope_runtime.engine.schemas.agent_schemas import (
MessageType,
RunStatus,
AgentRequest,
)
from agentscope_runtime.engine.services.context_manager import (
ContextManager,
)
from agentscope_runtime.sandbox.tools.function_tool import function_tool
from others.other_project import version
@function_tool()
def weather_search(query: str) -> str:
if "sf" in query.lower() or "san francisco" in query.lower():
result = "It's 60 degrees and foggy."
else:
result = "It's 90 degrees and sunny."
return result
agent = AgentScopeAgent(
name="Friday",
model=DashScopeChatModel(
"qwen-turbo",
api_key=os.getenv("DASHSCOPE_API_KEY"),
),
agent_config={
"sys_prompt": "You're a helpful assistant named Friday.",
},
agent_builder=ReActAgent,
tools=[
weather_search,
],
)
print(f"AgentScope Runtime with dependencies version: {version}")
async def run():
# Create a request
request = AgentRequest(
input=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "杭州天氣如何?",
},
],
},
],
)
runner = Runner(
agent=agent,
context_manager=ContextManager(),
# context_manager=None # Optional
)
async for message in runner.stream_query(request=request):
# Check if this is a completed message
if (
message.object == "message"
and MessageType.MESSAGE == message.type
and RunStatus.Completed == message.status
):
all_result = message.content[0].text
print(message)
print(f"📝 Agent response: {all_result}")
if __name__ == "__main__":
asyncio.run(run())
- 配置部署相關代碼,將您的代碼部署到Serverless運行時上
import asyncio
import os
from agentscope_runtime.engine.deployers.modelstudio_deployer import (
ModelstudioDeployManager,
OSSConfig,
ModelstudioConfig,
)
from agent_app import app # 導入已配置的 app
async def deploy_to_modelstudio():
"""將 AgentApp 部署到阿里雲 ModelStudio"""
# 配置 OSS 和 ModelStudio
deployer = ModelstudioDeployManager(
oss_config=OSSConfig(
access_key_id=os.environ.get("ALIBABA_CLOUD_ACCESS_KEY_ID"),
access_key_secret=os.environ.get("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
),
modelstudio_config=ModelstudioConfig(
workspace_id=os.environ.get("MODELSTUDIO_WORKSPACE_ID"),
access_key_id=os.environ.get("ALIBABA_CLOUD_ACCESS_KEY_ID"),
access_key_secret=os.environ.get("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
dashscope_api_key=os.environ.get("DASHSCOPE_API_KEY"),
),
)
# 執行部署
result = await app.deploy(
deployer,
deploy_name="agent-app-example",
telemetry_enabled=True,
requirements=["agentscope", "fastapi", "uvicorn"],
environment={
"PYTHONPATH": "/app",
"DASHSCOPE_API_KEY": os.environ.get("DASHSCOPE_API_KEY"),
},
)
print(f"✅ 部署到 ModelStudio:{result['url']}")
print(f"📦 製品:{result['artifact_url']}")
return result
if __name__ == "__main__":
asyncio.run(deploy_to_modelstudio())
📚 詳細文檔請參考:部署指南
快速啓動 Sandbox
- 安裝
agentscope-runtime
pip install agentscope-runtime
由於agentscope-runtime仍在初期快速迭代中,建議採用源碼安裝方式
git clone https://github.com/agentscope-ai/agentscope-runtime.git
cd agentscope-runtime
pip install .
- 配置環境變量
# Service settings
HOST="0.0.0.0"
PORT=8000
WORKERS=1
DEBUG=False
# Runtime Manager settings
DEFAULT_SANDBOX_TYPE=base
POOL_SIZE=0
AUTO_CLEANUP=True
CONTAINER_PREFIX_KEY=agent-runtime-container-
CONTAINER_DEPLOYMENT=agentrun
DEFAULT_MOUNT_DIR=
STORAGE_FOLDER=runtime_sandbox_storage
PORT_RANGE=[49152,59152]
# FC 相關賬户信息
FC_ACCOUNT_ID=<your-account-id>
FC_ACCESS_KEY_ID=<your-access-key-id>
FC_ACCESS_KEY_SECRET=<your-access-key-secret>
FC_REGION_ID=cn-hangzhou
# 規格配置
FC_CPU=2.0
FC_MEMORY=2048
# 網絡配置
FC_VPC_ID=<your-vpc-id>
FC_VSWITCH_IDS=[<your-vswitch-id>]
FC_SECURITY_GROUP_ID=<your-security-group-id>
# 前綴
FC_PREFIX=agentscope-sandbox
# 日誌配置
FC_LOG_PROJECT=<your-sls-log-project>
FC_LOG_STORE=<your-sls-log-store>
- 運行命令,啓動沙箱服務器
runtime-sandbox-server --config fc.env
- 使用您的沙箱
from agentscope_runtime.sandbox import BaseSandbox
# 連接到遠程服務器(替換為您的實際服務器地址和端口)
with BaseSandbox(
base_url="http://127.0.0.1:8000",
) as sandbox:
# 正常使用沙箱
print(box.list_tools())
print(box.run_ipython_cell(code="print('hi')"))
print(box.run_shell_command(command="echo hello"))
input("Press Enter to continue...")
📚 詳細文檔請參考:沙箱部署指南
邁向“省錢又好用”的 AI 運行時
AI Agent 的運行時基礎設施正經歷一場深刻的演進:從早期追求“能跑起來”的基礎可用性,到關注開發體驗與功能完備性的“好用”階段,如今正加速邁向兼顧性能、安全與經濟性的“省錢用”新範式。
AgentScope 與 Serverless 架構的深度集成,正是這一演進的關鍵實踐。通過將智能體部署與工具執行全面遷移至基於阿里雲函數計算(FC)的 Serverless 平台,不僅大幅降低了對容器編排、集羣運維等雲原生技能的依賴,更從根本上重構了資源使用模型——從“為閒置付費”轉向“為實際執行付費”,使中小團隊乃至個人開發者也能以極低成本運行生產級 Agent 應用。
Serverless 所提供的毫秒級彈性、自動擴縮容、強隔離沙箱與零運維特性,恰好契合 AI Agent 應用典型的負載特徵:間歇性調用、狀態依賴性強、工具執行風險高、成本敏感度高。我們堅信,Serverless 將成為 AI Agent 應用的最佳運行時。
未來,AgentScope 將持續深化與主流雲服務的協同,進一步優化會話管理、冷啓動延遲、多模態工具支持等關鍵路徑,並推動更多開源智能體項目採納 Serverless 範式,構建一個開放、高效、經濟的 Agent 運行生態,讓複雜智能體系統的開發與部署如同調用普通 API 一樣簡單可靠。
讓每一個智能體,都能輕盈運行在雲端。