Agent 运行时架构
PRX Agent 运行时是驱动所有自主 Agent 行为的核心执行引擎。它管理 Agent 会话的生命周期,协调工具调度,处理流式响应,并强制执行资源限制。
架构概览
运行时基于事件驱动架构,每个 Agent 会话在隔离的执行上下文中运行。主要组件包括:
- 会话管理器 -- 创建和追踪活跃的 Agent 会话
- Agent 循环 -- 处理 LLM 响应和执行工具调用的核心调度循环
- 记忆层 -- 提供跨轮次的上下文回忆和压缩
- 工具注册表 -- 管理可用工具及其权限策略
┌─────────────────────────────────────────┐
│ 会话管理器 │
│ ┌───────────┐ ┌───────────┐ │
│ │ 会话 A │ │ 会话 B │ ... │
│ │ ┌───────┐ │ │ ┌───────┐ │ │
│ │ │ 循环 │ │ │ │ 循环 │ │ │
│ │ │ 记忆 │ │ │ │ 记忆 │ │ │
│ │ │ 工具 │ │ │ │ 工具 │ │ │
│ │ └───────┘ │ │ └───────┘ │ │
│ └───────────┘ └───────────┘ │
└─────────────────────────────────────────┘执行模型
每个 Agent 会话遵循请求-响应循环:
- 接收用户输入 -- 文本消息、工具结果或系统事件
- 构建上下文 -- 组装系统提示词、记忆和对话历史
- LLM 推理 -- 从配置的提供商流式获取响应
- 工具调度 -- 如果 LLM 发出工具调用,在沙箱中执行
- 循环或返回 -- 如果调用了工具则继续循环,否则返回最终响应
配置
可以在 config.toml 中调整运行时行为:
toml
[agent]
max_turns = 50
max_tool_calls_per_turn = 10
session_timeout_secs = 3600
stream_buffer_size = 64
[agent.limits]
max_concurrent_sessions = 8
max_memory_mb = 512进程隔离
Agent 会话可以选择在独立进程中运行以实现故障隔离。详见 会话 Worker 了解进程隔离执行模型。