Agent 使用方法
回報排程、發布與成效
Agent 在自己的發布工具排程或發文後,怎麼用 report_posts 回報給 tennnzo:必帶欄位、排程到發布的對應、逐篇結果與重送規則;以及成效、帳號狀態、帳號頭像與排程工作的回報方式。
Agent 用自己的工具在平台上排程、發文,tennnzo 看不到。排程頁與今日頁只認 Agent 的回報:不回報,今日頁就會一直顯示還沒收到今天的排程資料。
重要 Agent 的回報就是真相。tennnzo 不回頭查平台,Agent 也不要為了核對去打付費 API、重新查平台,或為了確認再報一次。
什麼時候報#
每一個事件發生後立刻報一次:
| status | 什麼時候 | 必帶 |
|---|---|---|
scheduled | 已在平台或發布工具排好 | scheduled_for |
published | 已經發出 | permalink,並帶 published_at |
failed | 排了但沒發出去 | failure_reason |
cancelled | 取消了排程 | 建議帶 failure_reason 說明原因 |
published 一定要有連結#
沒有貼文連結不算發布成功。
排定時間過了之後,先看你發布工具上的狀態(不要打付費 API):有發出去就報 published 加 permalink(和 platform_post_id),沒發出去就報 failed 加一句原因。
有些平台會在晚上補發:照當天實際的發文紀錄回報,補發的每一篇都是一篇 published,帶它自己的連結與實際發出時間;當天沒發出去的報 failed。
範例#
{ "request_id": "run-20261005-1-report",
"posts": [
{ "code": "TW-T014", "status": "scheduled", "scheduled_for": "2026-10-05 20:00:00", "body": "完整內文", "has_media": true },
{ "code": "TW-T015", "status": "published", "published_at": "2026-10-05 09:02:13", "body": "完整內文",
"platform_post_id": "3712345678901234567", "permalink": "https://www.threads.net/@demo.xiaoyu/post/DAbc" },
{ "code": "TW-T016", "status": "failed", "scheduled_for": "2026-10-05 12:00", "body": "完整內文",
"failure_reason": "發布工具顯示發送失敗:帳號需要重新登入" } ] }REST 是 POST /posts/report,本文同上,request_id 改成 Idempotency-Key 標頭。時間格式見 請求慣例。
同一篇的後續怎麼對到#
先報 scheduled、發出後再報 published,系統會更新同一篇,不會變兩篇。對應的順序:
post_id。platform_post_id(同組織、同平台)。- 同編號、同內文、時間最接近的那篇:還在途中的(已通過、已排程、失敗),或 12 小時內發布的。
規則#
看回傳#
{ "report_id": "…", "received_at": "…", "inserted": 2, "updated": 0, "unchanged": 0, "ignored": 0, "rejected": 1,
"results": [
{ "index": 0, "ok": true, "action": "inserted", "post_id": "…", "status": "scheduled", "matched_by": null },
{ "index": 1, "ok": true, "action": "inserted", "post_id": "…", "status": "published", "matched_by": null },
{ "index": 2, "ok": false, "error": { "code": "rejected", "message": "…" } } ] }request_id 什麼時候能沿用#
審稿通過、待排程的稿#
list_approved(GET /posts/approved)列出審稿已核可、還沒排上發布工具的稿,計畫時間早的在前,最多 200 篇。每篇有 id、code、platform、persona、handle、body、topic、sponsored、planned_at、characters 與 images。
- 先下載圖片。連結 15 分鐘有效,過期就重叫一次。
- 照
planned_at在發布工具排好。圖片照回傳的順序上傳,不要自己重排。 - 立刻
report_posts:status: scheduled,帶post_id與scheduled_for,知道就帶platform_post_id。這篇就會離開清單。
{ "posts": [ { "code": "TW-I001", "status": "scheduled", "post_id": "<稿件 id>", "scheduled_for": "2026-10-06 12:00" } ] }成效#
report_metrics(POST /metrics)回報你自己抓到的數字。
{ "captured_at": "2026-10-05 21:00:00",
"posts": [ { "code": "TW-T015", "platform_post_id": "3712345678901234567", "views": 1520, "likes": 48, "replies": 6 } ],
"accounts": [ { "code": "TW-T015", "followers": 2310 } ],
"request_id": "run-20261005-1-metrics" }帳號狀態#
report_account_state(POST /accounts/{code}/state)在平台把帳號封了、隔離、暫停,或恢復正常、回到養號時,各報一次。
| state | 意思 |
|---|---|
banned | 被封 |
quarantined | 隔離 |
paused | 暫停 |
restored | 恢復正常 |
warming | 回到養號 |
{ "code": "TW-T014", "state": "banned", "reason": "平台通知違反社群守則", "occurred_at": "2026-10-03 14:30",
"request_id": "run-20261003-1-state-TW-T014" }帳號頭像#
set_account_avatar(POST /accounts/{code}/avatar)傳帳號在平台上現在的頭像,審稿頁與人設頁會顯示它,讓人看到跟平台上一樣的頭像。
排程工作#
Agent 自己的定時工作(日報、巡查、匯出)用兩個工具回報,dashboard 會用週曆顯示。
report_cron_jobs(POST /cron/jobs):排程有新增、修改、停用時送一次完整清單,最多 200 個。
{ "jobs": [ { "job_id": "daily-report", "name": "每日日報", "schedule": "0 9 * * *", "timezone": "Asia/Taipei",
"gateway": "main@host-1", "enabled": true, "description": "每天早上整理昨天的成效" } ] }report_cron_run(POST /cron/runs):每次排程跑完報一次。
{ "job_id": "daily-report", "run_id": "daily-report-20261003", "started_at": "2026-10-03 09:00:05",
"finished_at": "2026-10-03 09:01:40", "status": "success", "summary": "日報已送出" }注意 摘要與紀錄絕對不可貼帳密、token、驗證碼、cookie、內部連結。系統會再遮一次,但不能靠它。
排程的執行不要開成看板的卡,看板只放有人交辦的事。也不要為了核對排程結果去打付費 API。