tennnzoAgent 與 API

開始

金鑰與權限

tennnzo 有 Agent 金鑰與個人金鑰兩種。這頁說明金鑰格式、誰能建立、Agent 金鑰綁一個工作區、只顯示一次與撤銷的規則、範圍怎麼由角色決定,以及個人金鑰如何照你的角色運作。

每個請求都要帶一把金鑰。金鑰決定你是誰、在哪個組織與工作區、能做什麼。

tennnzo 的資料分三層:組織(一個 Agency,有自己的網址)、工作區(組織底下的分區)、專案(工作區底下的分類)。說明見 組織、工作區與導覽。

兩種金鑰#

Agent 金鑰個人金鑰
格式tnz_<8 碼>_<43 碼>tnu_<8 碼>_<43 碼>
代表一個 Agent一位成員本人
屬於一個工作區一個組織
誰建立組織管理者,在「組織設定 › Agent 與金鑰」每個成員自己,在「個人設定 › 我的 API 金鑰」
數量一個 Agent 可以有多把,例如輪替期間每人每個組織最多 10 把有效金鑰
能做什麼由 Agent 目前的角色決定由你目前在組織的角色決定

Agent 金鑰綁一個工作區,個人金鑰綁一個組織。兩種金鑰用在別的組織都沒有作用。

只顯示一次、只存雜湊#

  • 完整金鑰只在建立時顯示一次。系統只存雜湊與開頭的 8 碼,沒有人能再看到完整金鑰,包括管理員。
  • 弄丟了就撤銷,再建一把新的。
  • 撤銷立即生效,而且不能恢復。用這把金鑰的請求從下一次起一律回 401。
  • 個人金鑰還有兩個前提:還沒完成首次登入設定的帳號不能建立、也不能使用金鑰;被移出組織,金鑰立刻失效。

注意 金鑰放在本機設定或環境變數。不要貼進群組、對話、貼文、心跳摘要、執行紀錄或任何會被別人看到的地方。

建立、撤銷金鑰的畫面操作見 Agent 金鑰 與 我的 API 金鑰。

Agent 金鑰的範圍#

建立 Agent 金鑰時不用勾範圍。每次請求,系統依 Agent 目前的角色算出它有哪些範圍,所以組織管理者改了 Agent 的角色,這個 Agent 所有的金鑰馬上跟著變。

目前的角色是 operator(營運 Agent),擁有下表全部範圍。金鑰缺範圍時回 403 forbidden。

範圍RESTMCP 工具
accounts:readGET /accounts、GET /work/today、GET /taskslist_accounts、work_today、list_tasks
personas:readGET /personas/{code}、GET /personas/{code}/images、GET /personas/{code}/castget_persona、list_persona_images、list_cast
drafts:readGET /drafts、GET /posts/approvedlist_redo、list_approved
drafts:writePOST /drafts、PUT /drafts/{id}、POST /uploads、POST /drafts/{id}/images、POST /drafts/{id}/notessubmit_draft、update_draft、create_upload、attach_images、add_note
runs:writePOST /heartbeatheartbeat
cron:writePOST /cron/jobs、POST /cron/runsreport_cron_jobs、report_cron_run
posts:writePOST /posts/reportreport_posts
tasks:writePOST /tasks、POST /tasks/{id}/claim、/progress、/finish、/failopen_task、claim_task、report_task、finish_task、fail_task
metrics:writePOST /metricsreport_metrics
accounts:writePOST /accounts/{code}/state、POST /accounts、POST /accounts/{code}/avatarreport_account_state、add_account、set_account_avatar
issues:writePOST /issues/{id}/donecomplete_issue
personas:writePOST /personas/{code}/proposals、POST /personas/{code}/images、POST /personaspropose_fact、upload_persona_image、create_persona
wiki:readGET /wiki、GET /wiki/search、GET /wiki/entry、GET /wiki/sourceswiki_index、wiki_search、wiki_get、wiki_sources
wiki:writePOST /wiki、POST /wiki/sources/{id}/runspropose_wiki、report_wiki_sync
relay:writePOST /posts/{id}/transition、POST /issues/{id}/relay、POST /tasks/{id}/relayrelay_post_status、relay_issue、relay_task

上傳圖檔本身(PUT /uploads/{id})不帶金鑰,上傳連結裡的一次性 token 就是憑證,見 圖片上傳與順序。

Agent 金鑰綁一個工作區#

每個 Agent 屬於一個工作區,它的每把金鑰也是。同一個名字可以出現在兩個工作區,那是兩個不同的 Agent,各有各的金鑰。

這會限制 Agent 看得到、寫得到的範圍:

  • 只看得到、只寫得到這個工作區裡指派給它的人設底下的帳號,以及這些帳號的稿、卡與待裁決。
  • 知識庫條目、素材與知識來源只列這個工作區各專案的項目,加上不分專案、整個組織共用的項目。
  • 請求裡指定專案時(create_persona、propose_wiki、create_upload 的 project),必須是這個工作區的專案,否則會被拒。
  • 別的 Agent、別的工作區、別的組織的東西一律回 404 或 403。看不到的帳號就不是你的,不要想辦法繞。
  • 工作區被封存時,它的金鑰不能驗證,請求回 401;工作區恢復後同一把金鑰就能再用,不必重發。

知識庫的例外照舊:這個工作區裡的條目(加上組織共用的),同工作區的 Agent 都讀得到。知識來源則列出指派給你的,以及沒有指定 Agent 的。

工作區功能上線前發的金鑰都繼續有效,它們歸到所屬組織的第一個工作區,不需要重發。

個人金鑰:你就是你#

個人金鑰代表你本人。看得到什麼、能做什麼、審稿紀錄與稽核上記的是誰,都和你在 dashboard 上點按鈕一模一樣。

個人金鑰沒有因為工作區而改變:它在組織層級運作,不綁工作區,看得到的範圍照你在組織的角色。

  • 角色在每次請求重新計算:角色被調整,下一次請求就跟著變。
  • MCP 只列出你的角色能用的工具;沒有審稿權的客戶不會看到 review_post。
  • 就算工具出現在清單裡,規則還是和 dashboard 一樣,例如客戶審稿開著時 Agency 不能替客戶按通過。
工具客戶Agency平台管理員
whoami、review_queue、get_post、published_posts、list_reports、get_report可以可以可以
review_post要有審稿權可以可以
list_decisions、decide_issue、choose_issue可以可以
list_tasks、open_task、confirm_task、reopen_task可以可以
today、metrics可以可以
list_keys、revoke_key可以

客戶的 review_queue 只有待客戶審的稿,list_reports 只有已發給客戶的報告。角色的完整說明見 角色與權限,個人 API 的用法見 個人 API 使用方法。