Test environment report

同一个 Ignis 会话里,视频编辑结果已由 callback 自动进画布。

这次不是查询任务后再写 canvas。主证明只有一条:Ignis 生成图片和视频,Agent 发起 video_edit,Tobatsu 完成后回调 Mai Gateway,Gateway 导入 R2 并直接调用 Canvas Service,最后画布出现 k1aVBF.mp4

Test PASS Prod 未发 No get_task Callback push Commit 07e360e
Session
20c7554c
同一个 Ignis 会话
Canvas
93193d2c
revision 3
Tobatsu Task
2233c4eb
Rendi 主路径成功
Output
k1aVBF.mp4
1280x720, 7.062s
One coherent instance

从生成素材到画布可见,只跑一条主线

Agent 只发起任务。后面由 Tobatsu workflow 和 Mai callback 自动完成,过程中没有调用 get_task

1

Ignis 生成图片

同一会话先生成封面图片。

07Y2Dc.png
2

Ignis 生成视频

再生成要拼接的视频素材。

BhGi50.mp4
3

Agent 发起视频编辑

自然语言里带 file_id,动作是 new_task。

task_type=video_edit
4

Tools Backend 代理

回调地址改成 test zone,不再暴露 workers.dev。

tool-test.fpai.io
5

Tobatsu 执行

generic_ffmpeg_rendi 用 Rendi 产出 mp4。

2233c4eb
6

Mai 收到 delivery

Gateway 导入 artifact,生成 Mai file_id。

k1aVBF.mp4
7

Canvas 自动插入

callback 内直接写 Canvas Service。

cjob_9c72c13b
Canvas proof

你可以打开 test 画布看结果

这个 canvas 里同时有输入图片、输入视频和 callback 自动插入的输出视频。

07Y2Dc.png image
BhGi50.mp4 video
k1aVBF.mp4 auto insert
打开 test canvas: 93193d2c-03c6-493a-a5e0-df557937f162

画布写入结果

Canvas revision3
Files07Y2Dc.png, BhGi50.mp4, k1aVBF.mp4
Inserted elementx=0, y=2032, 1280x720, duration=7.062
CDN URLhttps://cdn-asia.funplus-marketing.ai/ultra/k1aVBF.mp4
为什么能证明不是轮询?
tobatsu_gateway_actions 只有一条 new_task。没有 get_task。Canvas job 的 source 也只有 gateway 三个 ID,没有 tool_nameagent_run_idtool_call_id,这是 callback push 写入的指纹。
Agent conversation

Agent 说了什么,调了什么

这是同一次 turn 的摘要。它只发起视频编辑任务,没有查询结果。

用户给 Agent 的请求

再次使用视频编辑能力发起一个新的异步任务:把 07Y2Dc.png 做成 2 秒静音开场封面,然后接上 BhGi50.mp4,输出一个 mp4。

要求只发起任务并返回任务信息,不查询任务状态,不调用 get_task,不轮询结果。

Agent 可见的工具返回

Turnturn_f3d287e4-406b-421e-ace6-ec5f49292f48
Gateway taskgw_1c19d220-48a4-4d58-98b6-2092daf5f2cc
Gateway rungwr_de8fbd6a-e9d8-4138-b7a0-14edd5d0bcc3
Tobatsu task2233c4eb-b217-47b2-882c-f1cab234d0d4
tool: skill_toolcall_curl
skill_token: video-edit
payload: {
  "action": "new_task",
  "task_type": "video_edit",
  "payload": {
    "instruction": "用 07Y2Dc.png 做静音开场封面,显示 2 秒,然后接上 BhGi50.mp4,输出一个 mp4。"
  }
}

result: accepted=true
external.tobatsuTaskId: 2233c4eb-b217-47b2-882c-f1cab234d0d4
history check: actions=[{"action":"new_task","status":"succeeded"}]
What changed

这轮修的是 callback 自动进画布

不是改 Tobatsu。Tobatsu workflow 已经能交付。Mai 侧补的是回调入口、Canvas Service 调用和幂等保护。

两次失败暴露的问题

Canvas Service 1042: Gateway 走公共 URL 打 Canvas Service,Worker 路由不对。修成 Cloudflare service binding。

Cloudflare 1010: 回调 URL 仍是 workers.dev。默认安全策略可能挡了 Tobatsu 的请求。我们没有赌 UA,而是把回调换到 tool-test.fpai.io 代理入口。

最终路径

tool-test.fpai.io/tobatsu-gateway-callbacks/:kind 先进 Tools Backend。

Tools Backend 用 TOBATSU_GATEWAY service binding 转给 Gateway。

Gateway 验 Bearer token,导入 artifact,调用 Canvas Service,返回 canvas_delivery.status=succeeded

Commit改动主要文件
241b5e6 Gateway callback 成功后导入 artifact 并写 Canvas Service。 tobatsu-gateway/lib/canvas-delivery.ts
tobatsu-gateway/routes/callbacks.ts
5bbc474 Gateway 到 Canvas Service 改用 Cloudflare service binding。 tobatsu-gateway/wrangler.toml
tobatsu-gateway/types.ts
07e360e Tools Backend 增加公开 callback proxy,test env 回调 URL 指向 tool-test.fpai.io tools-backend/app.ts
tools-backend/wrangler.toml
Evidence

已验收的结果和证据路径

所有证据都来自 test 环境。Prod 没有发布,也没有 smoke。

检查项结果证据
Callback URL business_callback_url=https://tool-test.fpai.io/tobatsu-gateway-callbacks/delivery /tmp/mai-auto-canvas-step5-db-request-readback.json
No get_task Action list 只有 new_task,长度为 1。 /tmp/mai-auto-canvas-step5-actions.json
Tobatsu delivery Task 2233c4eb done,callback HTTP 200,canvas_delivery.status=succeeded Tobatsu monitor ack + Mai DB final
Mai import Artifact imported 为 k1aVBF.mp4,1280x720,duration_ms=7062。 /tmp/mai-auto-canvas-step5-db-final.json
Canvas insert Job cjob_9c72c13b succeeded,attempts=1,error=null。 /tmp/mai-auto-canvas-step5-db-final.json
Canvas visible state Canvas files 包含 07Y2Dc.png, BhGi50.mp4, k1aVBF.mp4 /tmp/mai-auto-canvas-step5-canvas-full.json
CC review PASS, AUTO-CANVAS CALLBACK GATE CLOSED。 /tmp/mai-cc-review-auto-canvas-proxy-smoke-verdict.md
Test deploy tools-backend-test version 426bbdec,route tool-test.fpai.io/* Wrangler deploy output, commit 07e360e
当前结论: test 环境的 Mai x Tobatsu Gateway 1.0 主干已经跑通到画布。用户要求的“callback 回来直接塞进 canvas,不需要轮询”已经由同一实例证明。Prod 仍然暂停,等待明确授权。