AgentScope 拥抱函数计算 FC,为 Agent 应用提供 Serverless 运行底座

作者:靖苏

在 AI Agent 应用加速落地的今天,开发者和企业普遍面临三大核心痛点:部署成本高、运维复杂度高、资源利用率低 。为应对这些挑战,AI Agent 与云原生、Serverless 架构的深度融合正成为行业新趋势。我们很高兴地宣布,AgentScope 正式集成基于阿里云函数计算(Function Compute, FC)的全新 Serverless 运行时,为多智能体应用提供"按需启动、毫秒弹性、零运维"的新一代运行底座。

AgentScope 是什么?

AgentScope [ 1] 是一个开源的多智能体应用开发框架,面向构建可观察、可控制、可扩展的 AI 智能体系统。其核心设计原则是对开发者完全透明:所有提示工程、模型调用、智能体行为及工作流编排均显式暴露,避免隐式逻辑或深度封装。

该框架拥有以下特性:

  • 透明性优先: 所有内部状态、消息传递路径、工具调用链路和模型交互过程均可追踪与审计,确保行为可解释、可调试。
  • 实时介入: 实现 ReAct 智能体,原生支持任务执行过程中的实时中断与自定义中断处理逻辑,允许用户随时中断智能体的回复,介入智能体的执行,适用于需要人工干预或动态策略调整的场景。
  • 增强智能能力: 提供统一的工具管理接口、长期记忆控制机制以及智能化 RAG(检索增强生成)支持,提升智能体的上下文感知与知识利用能力。
  • 模型无关架构: 抽象统一的模型接入层允许同一套智能体逻辑无缝切换不同大语言模型(如 GPT、Claude、通义千问、Llama 系列等),降低模型迁移成本。
  • 模块化"乐高式"设计: 智能体、工具、提示模板、记忆模块、工作流节点等组件高度解耦,支持独立开发、组合复用与灵活替换。
  • 原生多智能体支持: 采用显式消息传递机制与声明式工作流编排,明确表达智能体间的协作关系,避免隐式调度带来的不可控性。
  • 高度可定制: 支持对工具链、提示策略、通信协议、第三方库集成及可视化界面进行深度定制,适配从原型验证到生产部署的全周期需求。

AgentScope 旨在为开发者提供一个既具备工程严谨性,又保持足够灵活性的智能体开发基础设施,推动多智能体系统从实验走向规模化落地。自开源以来,AgentScope 已获得社区广泛认可,GitHub Star 数突破 14,000+

当前 Agent 运行时的挑战

AgentScope Runtime [ 2] 是一个面向生产环境的智能体运行时框架,聚焦于两大核心问题:高效、可扩展的智能体部署与安全、隔离的 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 运行时

只需三步:

  1. 配置相关环境变量
ini 复制代码
# 确保设置环境变量
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"
  1. 定义好您的 AgentApp
ini 复制代码
# -*- 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())
  1. 配置部署相关代码,将您的代码部署到 Serverless 运行时上
ini 复制代码
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())

📚 详细文档请参考:部署指南 [ 3]

快速启动 Sandbox

  1. 安装 agentscope-runtime

    pip install agentscope-runtime

由于 agentscope-runtime 仍在初期快速迭代中,建议采用源码安装方式。

bash 复制代码
git clone https://github.com/agentscope-ai/agentscope-runtime.git
cd agentscope-runtime
pip install .
  1. 配置环境变量
ini 复制代码
# 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>
  1. 运行命令,启动沙箱服务器
arduino 复制代码
runtime-sandbox-server --config fc.env
  1. 使用您的沙箱
python 复制代码
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...")

📚 详细文档请参考:沙箱部署指南 [ 4]

迈向"省钱又好用"的 AI 运行时

AI Agent 的运行时基础设施正经历一场深刻的演进:从早期追求"能跑起来"的基础可用性,到关注开发体验与功能完备性的"好用"阶段,如今正加速迈向兼顾性能、安全与经济性的"省钱用"新范式。

AgentScope 与 Serverless 架构的深度集成,正是这一演进的关键实践。通过将智能体部署与工具执行全面迁移至基于阿里云函数计算(FC)的 Serverless 平台,不仅大幅降低了对容器编排、集群运维等云原生技能的依赖,更从根本上重构了资源使用模型------从"为闲置付费"转向"为实际执行付费" ,使中小团队乃至个人开发者也能以极低成本运行生产级 Agent 应用。

Serverless 所提供的毫秒级弹性、自动扩缩容、强隔离沙箱与零运维特性,恰好契合 AI Agent 应用典型的负载特征:间歇性调用、状态依赖性强、工具执行风险高、成本敏感度高。我们坚信,Serverless 将成为 AI Agent 应用的最佳运行时。

未来,AgentScope 将持续深化与主流云服务的协同,进一步优化会话管理、冷启动延迟、多模态工具支持等关键路径,并推动更多开源智能体项目采纳 Serverless 范式,构建一个开放、高效、经济的 Agent 运行生态,让复杂智能体系统的开发与部署如同调用普通 API 一样简单可靠。

让每一个智能体,都能轻盈运行在云端。

相关链接:

1\] AgentScope [github.com/agentscope-...](https://link.juejin.cn?target=https%3A%2F%2Fgithub.com%2Fagentscope-ai%2Fagentscope%2F "https://github.com/agentscope-ai/agentscope/") \[2\] AgentScope Runtime [github.com/agentscope-...](https://link.juejin.cn?target=https%3A%2F%2Fgithub.com%2Fagentscope-ai%2Fagentscope-runtime "https://github.com/agentscope-ai/agentscope-runtime") \[3\] 部署指南 [runtime.agentscope.io/zh/advanced...](https://link.juejin.cn?target=https%3A%2F%2Fruntime.agentscope.io%2Fzh%2Fadvanced_deployment.html%23method-4-modelstudio-deployment "https://runtime.agentscope.io/zh/advanced_deployment.html#method-4-modelstudio-deployment") \[4\] 沙箱部署指南 [runtime.agentscope.io/en/sandbox/...](https://link.juejin.cn?target=https%3A%2F%2Fruntime.agentscope.io%2Fen%2Fsandbox%2Fadvanced.html%23optional-function-compute-fc-settings "https://runtime.agentscope.io/en/sandbox/advanced.html#optional-function-compute-fc-settings")

相关推荐
草帽lufei10 小时前
Prompt Engineering基础实践:角色设定/约束条件等技巧
openai·agent
贾维思基10 小时前
告别RPA和脚本!视觉推理Agent,下一代自动化的暴力解法
人工智能·agent
程序猿DD15 小时前
Anthropic 如何评估 AI Agent
agent
饭勺oO16 小时前
AI 编程配置太头疼?ACP 帮你一键搞定,再也不用反复折腾!
ai·prompt·agent·acp·mcp·skills·agent skill
AGI杂货铺16 小时前
零基础也能快速搭建的Deep Agents
ai·langchain·llm·agent·deepagent
AlienZHOU16 小时前
MCP 是最大骗局?Skills 才是救星?
agent·mcp·vibecoding
Glink17 小时前
从零开始编写自己的AI账单Agent
前端·agent·ai编程
进阶的鱼17 小时前
一文助你了解Langchain
python·langchain·agent
曲幽18 小时前
重构FastAPI生产部署:用异步网关与无服务器计算应对高并发
python·serverless·fastapi·web·async·httpx·await·asyncio
Study99619 小时前
大语言模型的详解与训练
人工智能·ai·语言模型·自然语言处理·大模型·llm·agent