wait_for_translation
Wait for a translation task to complete, return progress updates as they occur, and provide signed download URLs when finished.
Instructions
等待翻译任务完成。上游只能轮询、无法推送,本工具有两个返回时机:进度一有变化就立刻返回,否则等满本轮的等待时长(不传 timeout 时由本工具自适应:10 秒起,进度一直不动就逐轮翻倍到 45 秒封顶,省掉那些什么都说不出来的空转往返)。返回 finished=true 时附带 downloadUrl(纯译文,CloudFront)与 downloadUrlCN(同一文件的国内兜底线路),其他版式用 get_document_translation_result 取。这两条链接带签名,转述时必须把问号后面的参数一起原样给全,截断会 403。返回里 msg 是念给用户听的那一行、agentNote 是给你的操作指令:要转述就转述 msg,agentNote 一个字都不要念出去。finished=false 表示仍在处理,照 agentNote 的要求办:进度有变化就把 msg 那行原样告诉用户,和上次完全一样时一个字都不要输出,直接再次调用本工具继续等待,任务不会因此中断。若任务被服务端取消或失败,返回 code=500 且 data.failed=true,reason 是原因(如 BACKEND_CANCEL)——请先把原因告诉用户,问过用户之后再决定是否用相同参数重试 translate_document,文件不需要重新上传。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | 把要念给用户听的那部分文案(任务状态、产出说明、进度行、失败原因、下载说明)输出成哪种语言。按用户当前说话的语言填,不确定就别传——不传取服务端 MCP_LOCALE,再没有就是 zh。 | |
| timeout | No | 本次最多等待的秒数。**正常情况不要传**:不传时本工具自己掌握节奏——起步 10 秒,好让第一次进度尽快回到用户面前,之后进度每连着一轮没变就把等待翻一倍(10→20→40,上限 45 秒),进度一变又回到 10 秒。这么做是因为进度不动的那些轮次你什么都不该输出,可你每回来一次都是一整轮往返、上下文重发一遍,界面上还多一行空回合。传了本参数就按你给的秒数严格执行、不再自适应;传大值不会多打上游(轮询间隔是内部定的,与本参数无关),但超过你那端的工具调用超时会让本次调用直接报错——那是客户端超时,不是任务失败,任务还在跑,重新调本工具接着等即可。到点未完成会返回当前进度而非报错,可再次调用继续等待。 | |
| order_no | Yes | 翻译任务订单号 |