在 AI Agent 应用加速落地的今天,开发者和企业普遍面临三大核心痛点: 部署成本高、运维复杂度高、资源利用率低。为应对这些挑战,AI Agent 与云原生、Serverless 架构的深度融合正成为行业新趋势。我们很高兴地宣布,AgentScope 正式集成基于阿里云函数计算(Function Compute, FC)的全新 Serverless 运行时,为多智能体应用提供“按需启动、毫秒弹性、零运维”的新一代运行底座。
AgentScope 是一个开源的多智能体应用开发框架,面向构建可观察、可控制、可扩展的 AI 智能体系统。其核心设计原则是 对开发者完全透明:所有提示工程、模型调用、智能体行为及工作流编排均显式暴露,避免隐式逻辑或深度封装。
该框架拥有以下特性:
AgentScope 旨在为开发者提供一个既具备工程严谨性,又保持足够灵活性的智能体开发基础设施,推动多智能体系统从实验走向规模化落地。自开源以来,AgentScope 已获得社区广泛认可,GitHub Star 数突破 14,000+。
AgentScope Runtime 是一个面向生产环境的智能体运行时框架,聚焦于两大核心问题: 高效、可扩展的智能体部署与 安全、隔离的 Sandbox 工具执行。该运行时提供上下文管理(包括长短期记忆与外部知识库集成)和多层级沙箱基础设施,构成一套框架无关的底层支撑系统,可与主流开源智能体框架或自定义实现无缝协同。其设计目标是为服务级智能体应用提供具备完整可观测性、强安全性与便捷部署能力的基础运行环境。
AgentScope Runtime 实现了双核心架构:
目前,AgentScope 的主流部署模式依赖 Docker + Kubernetes 组合。该方案在功能完备性和集群管理能力上表现优异,但在实际落地 AI Agent 应用时,暴露出若干结构性瓶颈:
这些限制使得许多具备潜力的 Agent 应用停留在实验阶段,难以实现低成本、高可用、快速迭代的规模化部署。
为系统性解决上述问题,AgentScope 正式推出基于 阿里云函数计算(Function Compute, FC) 构建的 Serverless 运行时。该运行时针对 AI Agent 的典型工作负载(如会话保持、工具调用、状态依赖)进行深度优化,在保留功能完整性的同时,彻底重构资源使用与运维模型。
Serverless 运行时的核心优势:
此外,Serverless 运行时通过 会话亲和(Session Affinity)机制在无状态函数架构下有效支持有状态的 Agent 交互场景,兼顾弹性与一致性。
这一演进标志着 Agent 运行时正从“重资产、高运维”的传统模式,迈向“轻量化、自动化、经济高效”的云原生新范式,为 AI Agent 的大规模商业化落地扫清基础设施障碍。
Serverless 运行时深度集成 AgentScope 的核心执行引擎(AgentScope Runtime Engine),在保留原有编程模型的基础上,为开发者提供面向云原生环境的无缝部署体验。关键能力包括:
deploy() 方法,运行时即可自动分析 Python 依赖,构建包含用户代码、自定义工具及第三方库的可执行包,并上传至阿里云函数计算(FC)——该服务已深度集成于百炼 ModelStudio 平台,实现从开发到托管的一站式闭环。AgentScope 定义的四大沙箱类型现已完整适配 Serverless 运行时,可在函数计算环境中安全、高效地执行各类操作:
基于阿里云函数计算(FC)的 Serverless 运行时,深度集成 AgentScope 的 Sandbox 运行引擎,其核心特性如下:
通过 Engine 与 Sandbox 的双重增强,AgentScope 的 Serverless 运行时不仅解决了传统部署的成本与运维难题,更在保持强隔离与状态支持的前提下,实现了 AI Agent 应用的高效、安全、经济化交付。
现在,您就可以将 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"
# -*- coding: utf-8 -*-# pylint:disable=wrong-import-position, wrong-import-orderimport asyncioimport osfrom agentscope.agent import ReActAgentfrom agentscope.model import DashScopeChatModelfrom agentscope_runtime.engine.agents.agentscope_agent import AgentScopeAgentfrom agentscope_runtime.engine.runner import Runnerfrom 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_toolfrom 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 resultagent = 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())
import asyncioimport osfrom agentscope_runtime.engine.deployers.modelstudio_deployer import (
ModelstudioDeployManager,
OSSConfig,
ModelstudioConfig,)from agent_app import app # 导入已配置的 appasync 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 resultif __name__ == "__main__":
asyncio.run(deploy_to_modelstudio())
📚 详细文档请参考: 部署指南
agentscope-runtimepip install agentscope-runtime
由于 agentscope-runtime 仍在初期快速迭代中,建议采用源码安装方式
git clone https://github.com/agentscope-ai/agentscope-runtime.git cd agentscope-runtime pip install .
# Service settingsHOST="0.0.0.0" PORT=8000 WORKERS=1 DEBUG=False# Runtime Manager settingsDEFAULT_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 Agent 的运行时基础设施正经历一场深刻的演进:从早期追求“能跑起来”的基础可用性,到关注开发体验与功能完备性的“好用”阶段,如今正加速迈向兼顾性能、安全与经济性的“省钱用”新范式。
AgentScope 与 Serverless 架构的深度集成,正是这一演进的关键实践。通过将智能体部署与工具执行全面迁移至基于阿里云函数计算(FC)的 Serverless 平台,不仅大幅降低了对容器编排、集群运维等云原生技能的依赖,更从根本上重构了资源使用模型—— 从“为闲置付费”转向“为实际执行付费”,使中小团队乃至个人开发者也能以极低成本运行生产级 Agent 应用。
Serverless 所提供的毫秒级弹性、自动扩缩容、强隔离沙箱与零运维特性,恰好契合 AI Agent 应用典型的负载特征:间歇性调用、状态依赖性强、工具执行风险高、成本敏感度高。我们坚信, Serverless 将成为 AI Agent 应用的最佳运行时。
未来,AgentScope 将持续深化与主流云服务的协同,进一步优化会话管理、冷启动延迟、多模态工具支持等关键路径,并推动更多开源智能体项目采纳 Serverless 范式,构建一个开放、高效、经济的 Agent 运行生态,让复杂智能体系统的开发与部署如同调用普通 API 一样简单可靠。
让每一个智能体,都能轻盈运行在云端。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69981534/viewspace-3104237/ ,如需转载,请注明出处,否则将追究法律责任。