Skip to content

调用链与数据流

系统只保留两条主路径:命令响应路径和流式事件路径。

两条数据路径占位图

Placeholder:在这里插入 Path A / Path B 双通路架构图。

路径总览

路径入口终点作用
Path AIM 消息 / 卡片事件平台渲染结果命令响应
Path BBackend 事件平台实时推送流式执行反馈

Path A:命令响应路径

text
IM Event
→ src/server.ts
→ src/feishu/*
→ src/core/intent-dispatcher.ts
→ platform-commands / orchestrator.handleIntent()
→ packages/channel-feishu/FeishuOutputAdapter

Feishu 实现落点

阶段模块责任
事件绑定src/server.ts绑定 im.message.receive_v1card.action.trigger 等回调
平台解析src/feishu/feishu-message-handler.ts解析消息、提取 chat/user/content、mention 过滤、去重
卡片处理src/feishu/feishu-card-handler.ts解析 action value、执行卡片命令、处理审批
共享分流src/core/intent-dispatcher.ts分类 intent、鉴权、决定是否进入 orchestrator
非 agent 命令src/core/platform-commands.ts处理共享业务命令
agent 命令services/orchestrator处理 thread、backend、turn、pipeline
平台输出packages/channel-feishu渲染 Feishu 消息与卡片

Path B:Agent 流式事件路径

text
Backend (Codex stdio / ACP)
→ event bridge
→ UnifiedAgentEvent
→ EventPipeline
→ AgentEventRouter
→ FeishuOutputAdapter / SlackOutputAdapter

核心部件

阶段模块责任
backend 接入packages/codex-client, packages/acp-client连接不同 backend 协议
transport 收敛packages/agent-core/BackendIdentity屏蔽 transport 差异
统一事件UnifiedAgentEvent将 Codex / ACP 事件映射为统一模型
事件编排services/orchestrator/src/event/*事件管线、路由、turn 完成回调
平台推送packages/channel-feishu, packages/channel-slack将统一事件转换为平台输出

平台接入策略

平台Path APath B状态
Feishu已接入已接入当前主平台
Slack待接入应用层已有输出基础规划中

backend 接入策略

backend选择位置平台层是否感知 transport
CodexAgentApiFactoryRegistry
OpenCodeAgentApiFactoryRegistry
Claude CodeAgentApiFactoryRegistry

设计约束

约束说明
Path A 不绕过 intent-dispatcher命令入口统一
Path B 不绕过 EventPipeline流式事件入口统一
平台层不直接调用 backend clientbackend 差异留在 orchestrator 内部
新平台不新增第三条路径复用 Path A / Path B