2. 概念¶
本章介绍了AgentScope Runtime的核心概念,它提供了两种主要的使用模式:
智能体部署: 使用引擎模块进行功能完整的智能体部署,包括运行时编排、上下文管理和生产就绪的服务
沙箱工具使用: 独立使用沙箱模块,在您自己的应用程序中进行安全的工具执行和集成
Engine模块概念¶
架构¶
AgentScope Runtime使用模块化架构,包含几个关键组件:
Agent:处理请求并生成响应的核心AI组件(可以是基于LLM的、基于工作流的或自定义实现,如 Langgraph、Agentscope、Agno)
AgentApp: 继承于 FastAPI App,作为应用入口,负责对外提供 API 接口、路由注册、配置加载,并将请求交由 Runner 调用执行
Runner:在运行时编排智能体执行并管理部署
Context:包含智能体执行所需的所有信息
Context & Env Manager:提供额外功能服务管理,如会话历史管理、长期记忆管理、沙箱管理
Deployer:将Runner部署为服务
关键组件¶
1. Agent¶
Agent 是处理请求并生成响应的核心组件。它是一个抽象基类,定义了所有智能体类型的接口。我们将使用 AgentScopeAgent作为主要示例,但相同的部署步骤适用于所有智能体类型。
2. AgentApp¶
AgentApp 是 AgentScope Runtime 中的 应用入口点,继承自 BaseApp(一个扩展了 FastAPI 并可选集成 Celery 的基类),用于将 Agent 部署为可对外提供服务的 API 应用。
它的职责是:
初始化并绑定 Agent 和 Runner,将请求委托给运行时处理
提供标准化的 HTTP API 接口(含健康检查)
支持 Server-Sent Events (SSE) 以及标准 JSON 响应
允许注册中间件、任务队列(Celery)以及自定义路由
管理应用生命周期(支持
before_start/after_finish钩子)
3. Runner¶
Runner 类提供灵活且可扩展的运行时来编排智能体执行并提供部署功能。它管理:
智能体生命周期 +会话管理
流式响应
服务部署
4. Context¶
Context 对象包含智能体执行所需的所有信息:
智能体实例本身
会话信息
用户请求
服务实例
5. Context & Env Manager¶
包含ContextManager和EnvironmentManager:
ContextManager:提供会话历史管理、长期记忆管理EnvironmentManager:提供沙箱生命周期的管理
6. Deployer¶
Deployer 系统提供生产级别的部署功能:
将
runner部署为服务健康检查、监控和生命周期管理
使用SSE的实时响应流式传输
错误处理、日志记录和优雅关闭
沙箱模块概念¶
架构¶
沙箱模块为各种操作提供了一个安全且隔离的执行环境,包括MCP工具执行、浏览器自动化和文件系统操作。该架构围绕三个主要组件构建:
Sandbox(沙箱): 提供隔离和安全的容器化执行环境
Tools(工具):在沙箱内执行的类似函数的接口
沙箱类型¶
系统支持多种沙箱类型,每种都针对特定用例进行了优化:
1. BaseSandbox(基础沙箱)¶
用途: 基本Python代码执行和shell命令
使用场景: 基础工具执行和脚本编写的必需品
能力: IPython环境、shell命令执行
2. GuiSandbox (GUI沙箱)¶
用途:具有安全访问控制的图形用户界面(GUI)交互与自动化
使用场景:用户界面测试、桌面自动化、交互式工作流程
功能:模拟用户输入(点击、键盘输入)、窗口管理、屏幕捕获等
3. FilesystemSandbox(文件系统沙箱)¶
用途: 具有安全访问控制的文件系统操作
使用场景: 文件管理、文本处理和数据操作
能力: 文件读写、目录操作、文件搜索和元数据等
4. BrowserSandbox(浏览器沙箱)¶
用途: Web浏览器自动化和控制
使用场景: 网页抓取、UI测试和基于浏览器的交互
能力: 页面导航、元素交互、截图捕获等
5. TrainingSandbox(训练沙箱)¶
用途:智能体训练和评估环境
使用场景: 基准测试和性能评估
能力: 环境分析、训练数据管理
工具模块¶
类函数接口¶
工具设计采用直观的类函数接口,在抽象沙箱复杂性的同时提供最大的灵活性:
直接执行: 工具可以直接调用,自动创建临时沙箱
沙箱绑定: 工具可以绑定到特定的沙箱实例以获得持久的执行上下文
模式定义: 每个工具都有一个定义的模式,指定输入参数和预期行为
工具执行优先级¶
工具模块实现了三级沙箱规范优先级:
临时沙箱(最高优先级): 在函数调用期间指定
实例绑定沙箱(第二优先级): 通过绑定方法指定
演练模式(最低优先级,未指定沙箱): 当未指定沙箱时自动创建临时沙箱,工具执行后将被释放
不可变绑定模式¶
当工具绑定到特定沙箱时,会创建一个新的工具实例,而不是修改原始实例。这种不可变绑定模式确保了线程安全,并允许同一工具的多个沙箱绑定版本共存而不会相互干扰。