2. 概念

本章介绍了AgentScope Runtime的核心概念,它提供了两种主要的使用模式:

  • 智能体部署: 使用引擎模块进行功能完整的智能体部署,包括运行时编排、上下文管理和生产就绪的服务

  • 沙箱工具使用: 独立使用沙箱模块,在您自己的应用程序中进行安全的工具执行和集成

Engine模块概念

架构

AgentScope Runtime使用模块化架构,包含几个关键组件:

Installation Options
  • Agent:处理请求并生成响应的核心AI组件(可以是基于LLM的、基于工作流的或自定义实现,如 Langgraph、Agentscope、Agno)

  • Runner:在运行时编排智能体执行并管理部署

  • Context:包含智能体执行所需的所有信息

  • Context & Env Manager:提供额外功能服务管理,如会话历史管理、长期记忆管理、沙箱管理

  • Deployer:将Runner部署为服务

关键组件

1. Agent

Agent 是处理请求并生成响应的核心组件。它是一个抽象基类,定义了所有智能体类型的接口。我们将使用 LLMAgent作为主要示例,但相同的部署步骤适用于所有智能体类型。

2. Runner

Runner 类提供灵活且可扩展的运行时来编排智能体执行并提供部署功能。它管理:

  • 智能体生命周期 +会话管理

  • 流式响应

  • 服务部署

3. Context

Context 对象包含智能体执行所需的所有信息:

  • 智能体实例本身

  • 会话信息

  • 用户请求

  • 服务实例

4. Context & Env Manager

包含ContextManagerEnvironmentManager:

  • ContextManager:提供会话历史管理、长期记忆管理

  • EnvironmentManager:提供沙箱生命周期的管理

5. Deployer

Deployer 系统提供生产级别的部署功能:

  • runner部署为服务

  • 健康检查、监控和生命周期管理

  • 使用SSE的实时响应流式传输

  • 错误处理、日志记录和优雅关闭

部署器架构

部署系统由几个关键组件组成:

  • DeployManager:部署操作的抽象接口

  • LocalDeployManager: 基于本地FastAPI部署的具体实现

  • FastAPI应用程序: 具有健康检查和中间件的生产就绪Web服务

  • 流式支持: 使用服务器发送事件(SSE)的实时响应流式传输

关键特性
1. FastAPI集成

部署器创建一个完整的FastAPI应用程序,具有:

  • 健康检查端点(/health/readiness/liveness) +用于跨域请求的CORS中间件

  • 请求日志记录和监控

  • 启动/关闭钩子的生命周期管理

2. 多种响应类型
  • JSON: 标准同步响应

  • SSE: 用于流式响应的服务器发送事件

  • 自定义: 可扩展的响应处理

3. 生产特性
  • 请求ID自动生成

  • 错误处理和日志记录

  • 优雅关闭能力

  • 可配置超时

沙箱模块概念

架构

沙箱模块为各种操作提供了一个安全隔离的执行环境,包括MCP工具执行、浏览器自动化和文件系统操作。该架构围绕三个主要组件构建:

  • Sandbox(沙箱): 提供隔离和安全的容器化执行环境

  • Tools(工具):在沙箱内执行的类似函数的接口

沙箱类型

系统支持多种沙箱类型,每种都针对特定用例进行了优化:

1. BaseSandbox(基础沙箱)

  • 用途: 基本Python代码执行和shell命令

  • 使用场景: 基础工具执行和脚本编写的必需品

  • 能力: IPython环境、shell命令执行

2. FilesystemSandbox(文件系统沙箱)

  • 用途: 具有安全访问控制的文件系统操作

  • 使用场景: 文件管理、文本处理和数据操作

  • 能力: 文件读写、目录操作、文件搜索和元数据等

3. BrowserSandbox(浏览器沙箱)

  • 用途: Web浏览器自动化和控制

  • 使用场景: 网页抓取、UI测试和基于浏览器的交互

  • 能力: 页面导航、元素交互、截图捕获等

4. TrainingSandbox(训练沙箱)

  • 用途:智能体训练和评估环境

  • 使用场景: 基准测试和性能评估

  • 能力: 环境分析、训练数据管理

工具模块

类函数接口

工具设计采用直观的类函数接口,在抽象沙箱复杂性的同时提供最大的灵活性:

  • 直接执行: 工具可以直接调用,自动创建临时沙箱

  • 沙箱绑定: 工具可以绑定到特定的沙箱实例以获得持久的执行上下文

  • 模式定义: 每个工具都有一个定义的模式,指定输入参数和预期行为

工具执行优先级

工具模块实现了三级沙箱规范优先级:

  1. 临时沙箱(最高优先级): 在函数调用期间指定

  2. 实例绑定沙箱(第二优先级): 通过绑定方法指定

  3. 演练模式(最低优先级,未指定沙箱): 当未指定沙箱时自动创建临时沙箱,工具执行后将被释放

不可变绑定模式

当工具绑定到特定沙箱时,会创建一个新的工具实例,而不是修改原始实例。这种不可变绑定模式确保了线程安全,并允许同一工具的多个沙箱绑定版本共存而不会相互干扰。