实现AgentBus自动分发SuperAgent链路

This commit is contained in:
andy
2026-07-12 23:53:50 +08:00
parent c3dad8eae9
commit 53b530d0b3
42 changed files with 2512 additions and 135 deletions

View File

@@ -0,0 +1,35 @@
-- M007 AgentBus -> SuperAgent 自动分发outbox 运行表,只记录 AI 调用过程,不创建业务订单或任务。
CREATE TABLE platform_superagent_dispatch_run (
id BIGINT NOT NULL COMMENT 'SuperAgent 自动分发运行 ID',
hotel_id VARCHAR(64) NOT NULL COMMENT '酒店或业务上下文 ID',
source_message_id BIGINT NOT NULL COMMENT '关联的内部 SourceMessage Inbox ID',
source_provider VARCHAR(32) NOT NULL COMMENT '来源 provider例如 AGENTBUS',
source_channel VARCHAR(32) NOT NULL COMMENT '来源 channel例如 OUTLOOK 或 EMAIL',
external_message_id VARCHAR(256) NULL COMMENT '外部邮件消息 ID对应 SourceMessage external_message_id',
external_conversation_id VARCHAR(256) NULL COMMENT '外部邮件会话 ID对应 SourceMessage external_conversation_id',
dispatch_source VARCHAR(64) NOT NULL COMMENT '分发来源代码,第一版使用 AGENTBUS_REALTIME',
idempotency_key VARCHAR(128) NOT NULL COMMENT '发送给 SuperAgent 的稳定幂等键',
request_id VARCHAR(128) NOT NULL COMMENT '写入 X-Request-ID 的调用关联 ID',
dispatch_status VARCHAR(32) NOT NULL COMMENT '分发状态PENDING、RUNNING、SUCCEEDED、RETRYABLE_FAILED、FAILED、IGNORED',
attempt_count INT NOT NULL DEFAULT 0 COMMENT '已尝试次数worker 抢占时递增',
max_attempts INT NOT NULL DEFAULT 3 COMMENT '最大尝试次数',
next_attempt_at DATETIME(6) NULL COMMENT '下次可处理 UTC 时间;终态可为空',
locked_until DATETIME(6) NULL COMMENT 'worker 抢占锁过期 UTC 时间',
superagent_session_id VARCHAR(128) NULL COMMENT 'SuperAgent Open API session ID',
superagent_run_id VARCHAR(128) NULL COMMENT 'SuperAgent run ID',
superagent_run_uri VARCHAR(1024) NULL COMMENT 'SuperAgent run 查询 URI 或路径',
last_event_id VARCHAR(128) NULL COMMENT '最后完整处理的 SSE event id用于 Last-Event-ID 恢复',
superagent_raw_answer LONGTEXT NULL COMMENT 'SuperAgent 最终原始回答',
superagent_parsed_json LONGTEXT NULL COMMENT '从最终回答解析出的 JSON无法解析时为空',
superagent_trace_json LONGTEXT NULL COMMENT 'SuperAgent 公开 trace 摘要 JSON不保存 Secret 或工具敏感入参',
safe_error_code VARCHAR(64) NULL COMMENT '安全错误代码',
safe_error_summary VARCHAR(512) NULL COMMENT '安全错误摘要不包含正文、HTML、附件 URL 或 Secret',
created_at DATETIME(6) NOT NULL COMMENT '记录创建 UTC 时间',
updated_at DATETIME(6) NOT NULL COMMENT '记录更新 UTC 时间',
PRIMARY KEY (id),
UNIQUE KEY uk_superagent_dispatch_source_message (source_message_id, dispatch_source),
KEY idx_superagent_dispatch_status_next (dispatch_status, next_attempt_at),
KEY idx_superagent_dispatch_lock (dispatch_status, locked_until),
KEY idx_superagent_dispatch_external_message (hotel_id, external_message_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
COMMENT='SuperAgent 自动分发 outbox 运行表,记录 SourceMessage 入库后异步调用 SuperAgent 的状态和结果';