瀏覽 1.1.1 文件
1.1.1

附錄:Agent worker 設定

設定具名的 Telegram、LINE、Discord 和 Slack worker,以及憑據優先順序、執行時路徑、傳輸模式和本地應答行為。

適用對象: Agent 維運與整合維護者

Agent worker 設定#

.ait/agent-workers.json 為一個 AIT Repository 宣告具名的訊息 worker。 1.1.1 支援 telegramlinediscordslack。預設位置可以用 AIT_AGENT_CONFIG_PATH 覆蓋。

先讀 ait-agent-worker:訊息與回覆執行時, 瞭解這個可執行檔案的職責、完整命令面、從訊息到回覆的路徑、傳輸模式、 原生 Codex provider、執行時接納和安全限制。這份附錄是逐欄位的編寫參考。

規範文件形狀#

程式碼 · json
{
  "version": 1,
  "workers": {
    "telegram/support": {
      "kind": "telegram",
      "name": "support",
      "mode": "poll",
      "username": "support_bot",
      "env_path": ".ait/agent-runtime/telegram.env",
      "request_timeout_seconds": 30,
      "local_reply": {
        "model": "gpt-5.4-mini",
        "reasoning_effort": "low",
        "sandbox": "workspace-write",
        "turn_timeout_seconds": 300
      }
    }
  }
}

作者要寫的就是上面那種直接的 versionworkers 物件。內部診斷投影 可能會把它包在 config 裡;別把那層包裝寫進儲存庫檔案。

worker 的 key 用確切的 <kind>/<name> 形式。kind 和 name 都必須非空, name 裡不能有 /,顯式寫出的 kind 必須和 key 一致。目前約定下 version 是整數 1。規範化過程中出現問題時,worker 會啟動失敗並直接 關停。

通用 worker 欄位#

欄位型別與行為
kindtelegramlinediscordslack;一般從 key 推導。
name非空的例項名;一般從 key 推導。
runtime_root可選,worker 執行時檔案的路徑;預設 .ait/agent-runtime。相對路徑從 Repository 根解析;~ 在可用時按程序的 home 目錄解析。
sync_state_path可選的狀態檔案路徑。預設 <runtime_root>/<kind>-<safe-name>-sync.json
env_path可選的憑據環境檔案路徑。預設 <runtime_root>/<kind>.env
web_url可選,與回覆關聯的規範化瀏覽器基礎 URL。
request_timeout_seconds可選的正數請求超時。infinfinitenone 關閉受支援的通用超時;Telegram 還接受 nullunlimited
local_reply可選的本地回覆 provider 物件,見下文。
created_atupdated_at由命令託管的時間戳。
pid_filelog_filetermination_context_path存在時是由命令託管的生命週期路徑;別拿它們去設定回覆行為。

執行目標從 .ait/config.json 推導:solo_local 在本地跑;有遠端的工作流程 則需要一個有效的預設遠端 URL。當 worker 沒有設定 model 時,Repository 的 default_model 提供 Telegram 的模型回落值。

憑據來源與優先順序#

憑據欄位必須是非空字串。解析順序是:

  1. worker 條目本身;
  2. 目前程序環境;
  3. worker 的 env_path 檔案。

其他行為類欄位只來自 worker 條目或它們編譯期的預設值;env 檔案覆蓋不了 它們。環境檔案接受 KEY=VALUE 行、空行、# 註釋,以及值兩邊配對的一對 單引號或雙引號。它們不是 shell 指令碼。

別把機密留在提交上去的清單裡。優先用僅所有者可讀的 env 檔案或程序環境, 並使用環境變數附錄 裡那些確切的變數名。

local_reply#

這個巢狀物件裡的未知欄位會被拒絕。

欄位約定
program可選,非空的回覆 provider 可執行檔案。
args可選的字串陣列,元素中不能含 NUL 字元。
timeout_seconds可選的有限正數。
append_turn_analysis可選的布林值。
codex_program可選,非空的 Codex 可執行檔案覆蓋值。
model可選,非空的模型名。
reasoning_effortnoneminimallowmediumhighxhighmaxultra
sandboxread-onlyworkspace-writedanger-full-access
turn_timeout_seconds正數、數字字串,或者 infinfinitenoneunlimited

sandbox 的取捨是一條執行邊界,不是訊息偏好。只給這個 worker 完成其 Repository 任務所需的訪問許可權。

Telegram 欄位#

欄位約定與預設值
token必填的 bot token,或者提供 AIT_TELEGRAM_BOT_TOKEN/BOT_TOKEN
username可選;開頭的 @ 會被去掉。
modepoll(預設)或 webhook
bind_host / bind_portwebhook 監聽地址;預設 127.0.0.18090
webhook_pathHTTP 路徑;預設 /webhook
webhook_secret可選的金鑰,或用 AIT_TELEGRAM_WEBHOOK_SECRET
poll_timeout_seconds整數,至少 5;預設 45。
background_sync_enabled布林值;預設 false。
background_sync_interval_seconds數字,至少 5;預設 30。
openai_api_key可選的 worker 憑據;佔位值會被拒絕。
openai_base_url可選的規範化基礎 URL;預設 https://api.openai.com/v1
openai_model可選的模型;先回落到 Repository 預設模型,再回落到 gpt-5.4-mini
openai_reasoning_effort可選字串;預設 low
openai_timeout_seconds可選的正數超時;不寫時繼承請求超時。
openai_max_output_tokens整數,至少 64;預設 700。
turn_merge_window_seconds非負數;預設 0.35。
turn_merge_max_messages正整數;預設 4。
decoupled_reply_enabled布林值;預設 true。
reply_markdown_enabled布林值;預設 true。
owner_bootstrap_enabled布林值;預設 true。
stt_modeoff(預設)或 local-stt
stt_model本地語音轉文字模型名。
stt_device裝置選擇器;預設 auto
stt_compute_typestt_language可選字串。
stt_include_audio_uploads布林值;預設 false。
stt_program可選的本地語音轉文字可執行檔案路徑。
stt_timeout_seconds正數,取值從 0.1 到 3600;預設 120。
expected_concurrent_workersworkers_per_shard可選的正整數。
event_loop_backend可選的後端字串。

LINE 欄位#

欄位約定與預設值
token必填的 channel access token,或用 AIT_LINE_CHANNEL_ACCESS_TOKEN/LINE_CHANNEL_ACCESS_TOKEN
secret必填的 channel secret,或用 AIT_LINE_CHANNEL_SECRET/LINE_CHANNEL_SECRET
api_base_url預設 https://api.line.me
bind_host / bind_port預設 127.0.0.18091
webhook_path預設 /callback

Discord 欄位#

欄位約定與預設值
application_id必填的字串,或用 AIT_DISCORD_APPLICATION_ID/DISCORD_APPLICATION_ID
public_key可選憑據,用於 interaction 校驗。
bot_token可選憑據,用於 gateway 或 API 呼叫。
turn_timeout_seconds可選的正數超時;設定了請求超時時,預設至少 300 秒。
api_base_url預設 https://discord.com/api/v10
http_user_agent預設 curl/8.7.1
bind_host / bind_port預設 127.0.0.18092
interaction_path預設 /interactions

選用哪條 worker 命令,決定了該服務模式下 public_keybot_token 是必須 其一還是兩者都要。

Slack 欄位#

欄位約定與預設值
app_token可選憑據,用於 socket 模式。
signing_secret可選憑據,用於 HTTP 命令校驗。
api_base_url預設 https://slack.com/api
http_user_agent預設 ait-agent-worker/0.1
bind_host / bind_port預設 127.0.0.18093
command_path預設 /command
ack_text預設 ait is thinking...
response_type預設 in_channel

選用哪條 Slack 命令,決定了必須提供的是 socket 憑據還是 HTTP 簽名金鑰。

驗證#

用完整 CLI 參考裡的 agent worker 檢視和啟動命令。診斷輸出只報告憑據是否 已設定,不會列印它們的值。webhook 監聽器先在環回地址上測試,再透過可信的 反向代理對外暴露。

版本權威

對照 1.1.1 原始碼逐條核對

這一頁是公開文件,不是第二份產品契約。要確認發布權威,請以確切的原始碼和分發契約為準。

所屬元件 Snapshot
  • ait-coreSNP-ED7593DBF982
  • ait-serverSNP-0CCD7DD2A077
  • ait-runnerSNP-35C9C133D2EE
  • ait-pythonSNP-756C731A4CC0
  • ait-nodeSNP-55E90D0A81F1