# Gateway 需求规划 **更新日期:** 2026-03-14 ## 文档维护规范 0. **先改文档,再动代码** - 新功能或重大修改需先完成文档更新、并完成审阅后,再进行代码实现 1. **文档分层,链接代码** - 关键实现需标注代码文件路径;格式:`module/file.py:function_name` 2. **简洁快照,日志分离** - 只记录已确认的需求,避免推测和未确认的设计细节 --- ## 核心理解 ### Agent 的本质 基于 Agent Core 架构(详见 `../../agent/docs/architecture.md`): - **Agent = Trace 数据 + Workspace** - **无状态执行引擎**:每次调用都是"续跑 trace" - **动态并发**: - 1000 个用户可能有 1000 份 Trace 数据和 Workspace - 但运行中的 Agent 实例是动态的,预计 ~10 个并发 - **Workspace 共享**:主 Agent 创建的子 Agent 可以共享同一个 Workspace ### Gateway 的定位 **核心定位:** 使命/职能对话系统 - 用户给 Agent 分配任务 - Agent 汇报工作、述职 - 是"管理-执行"关系 **与 IM 系统的区别:** - **IM 系统**:LLM 作为主体的平等交流(协作-沟通关系) - Agent 之间对等通信 - 用户和 Agent 平等对话 - 可以接入飞书、微信等任何渠道 - **Gateway**:用户对 LLM 的使命/职能对话(管理-执行关系) - 用户分配任务给 Agent - Agent 执行任务并汇报 - 通过 API 接口调用 --- ## 三大核心模块 ### 1. 外部渠道接入(Channels) **职责:** - 接入飞书等外部渠道(个人助理型 Agent) - 消息路由(飞书用户 ID → Trace ID) - 自动创建 Trace(首次对话) **关键点:** - 只用于个人助理型 Agent 的飞书接入 - 数字员工型 Agent 的飞书接入通过 IM Server - 使用不同的飞书账号区分两种类型 - 首次对话自动创建 Trace 和 Workspace **详细文档:** [channels.md](./core/channels.md) ### 2. 生命周期管理(Lifecycle) **职责:** - 调用 Agent 框架创建/查询 Trace - 管理 Workspace(创建、引用计数、清理) - 监听配置变化并热重载 **关键点:** - Trace 元数据由 Agent 框架管理,Gateway 不维护副本 - 多个 Trace 可以共享一个 Workspace(主 Agent + 子 Agent) - Workspace 需要引用计数机制 - 配置变更时热重载,不影响正在运行的 Trace **详细文档:** [lifecycle.md](./core/lifecycle.md) ### 3. 任务执行调度(Executor) **职责:** - 接收用户分配的任务 - 调度 Agent 框架执行任务 - 管理任务执行状态和结果 **关键点:** - 支持同步和异步任务执行 - 管理任务队列(个人助理型 Agent) - 提供任务状态查询接口 - 与 Channels 模块集成,处理来自飞书的任务 **详细文档:** [executor.md](./core/executor.md) --- ## 两种 Agent 类型 ### 类型 1:个人助理型 Agent **特征:** - 每个用户有独立的 Trace + Workspace - 聊天历史隔离 - 可以并发处理多个用户的任务 **使用场景:** - 个人助理 - 专属客服 - 个性化服务 **飞书接入:** - 通过 Gateway Channels 模块接入 - 使用个人助理飞书账号 - 飞书用户 ID → Trace ID(一对一映射) - 首次对话自动创建 Trace **任务调度:** - 每个用户的任务独立调度 - 支持并发执行(不同用户的任务) - 同一用户的任务需要排队 **消息流转:** ``` 飞书用户 → Gateway Channels → Executor → Agent 执行 → Executor → Channels → 飞书 ``` ### 类型 2:数字员工型 Agent **特征:** - 所有用户共享一个 Trace - 每个用户有独立的对话(通过 IM 系统) - 串行工作(按全局消息顺序处理) **使用场景:** - 前台接待 - 客服中心 - 工单处理 **飞书接入:** - 通过 IM Server 接入(不通过 Gateway) - 使用数字员工飞书账号 - 所有用户消息 → 同一个 Trace - 消息队列由 IM Client 管理 **任务调度:** - 所有任务串行处理 - 任务队列由 IM Client 管理 - Agent 主动查看和处理任务 **消息流转:** ``` 飞书用户 → IM Server → IM Client → Agent 主动查看 → Agent 执行 → IM Client → IM Server → 飞书 ``` --- ## 两种接入方式 ### 内部 Agent(同设备,我们的框架) **特点:** - 和 Gateway 运行在同一台机器 - 使用我们的 Agent 框架 - 直接调用 Gateway 的内部接口(Python 函数调用) **不需要:** - HTTP Client - Webhook - 网络通信 **使用方式:** ```python from gateway.core.lifecycle import TraceManager from gateway.core.executor import TaskManager trace_mgr = TraceManager() task_mgr = TaskManager() # 创建 Trace trace_id = trace_mgr.create_trace(workspace_id="user_001", agent_type="personal_assistant") # 提交任务 task_id = task_mgr.submit_task(trace_id, task_description="分析销售数据") ``` ### 外部 Agent(其他设备/其他框架) **特点:** - 运行在不同机器 - 或使用其他 Agent 框架 - 通过 HTTP API + Client SDK 接入 **需要:** - HTTP Client SDK - Webhook 接收消息 - 网络通信 **使用方式:** ```python from gateway.client.python import GatewayClient client = GatewayClient("http://gateway-host:8000") # 创建 Trace trace_id = client.create_trace(workspace_id="user_001", agent_type="personal_assistant") # 提交任务 task_id = client.submit_task(trace_id, task_description="分析销售数据") ``` --- ## 与 IM 系统的集成 Gateway 管理的 Agent 可以通过 IM Client 参与 IM 系统的通信: ### Agent 主动通信 - Agent 执行任务过程中需要协作 → 通过 IM Client 发送消息给其他 Agent - Agent 需要通知用户 → 通过 IM Client 发送消息给用户(飞书等渠道) ### 消息历史管理 - IM Client 存储在 Workspace 内 - 管理该 Agent 的所有 IM 对话历史 - 联系人列表、消息记录等 ### 两种对话模式的协同 **个人助理型 Agent 的典型场景:** 1. **用户通过飞书发送任务**(使命/职能对话) - 飞书 → Gateway Channels → Executor → Agent 执行 2. **Agent 执行任务时通过 IM 与其他 Agent 协作**(主体间交流) - Agent → IM Client → IM Server → 其他 Agent 3. **Agent 完成任务后通过飞书回复用户**(使命/职能对话) - Agent 执行完成 → Executor → Channels → 飞书 **说明:** 同一个 Agent 可以同时参与两种对话模式 --- ## 暂不实现的功能 ### 能力 Node **说明:** - 类似 OpenClaw 的 Node 机制(跨设备能力调用) - 当前阶段暂不实现 - 未来如有需求再考虑 ### 其他外部渠道 **说明:** - 当前只实现飞书接入(个人助理型) - 微信、钉钉等其他渠道暂不实现 - 未来可以参考飞书集成方式扩展 --- ## 相关文档 - [Agent Core 架构](../../agent/docs/architecture.md):Agent 框架核心设计 - [Gateway 架构](./architecture.md):Gateway 架构设计 - [核心模块文档](./core/):各核心模块详细文档 - [API 文档](./api/):HTTP API 参考 - [IM Server 架构](../../im-server/docs/architecture.md):IM 系统架构设计 - [IM Client 文档](../../im-client/docs/):IM Client 使用指南