浏览 1.0.0 文档
1.0.0 文档修订 2

附录:Agent worker 配置

配置具名的 Telegram、LINE、Discord 和 Slack worker,以及凭据优先级、运行时路径、传输模式和本地应答行为。

适用人群: Agent 运维与集成维护者

Agent worker 配置#

.ait/agent-workers.json 为一个 AIT Repository 声明具名的消息 worker。 1.0.0 支持 telegramlinediscordslack。默认位置可以用 AIT_AGENT_CONFIG_PATH 覆盖。

先读 ait-agent-worker:消息与回复运行时, 了解这个可执行文件的职责、完整命令面、从消息到回复的路径、传输模式、 原生 Codex provider、运行时接纳和安全限制。这份附录是逐字段的编写参考。

规范文档形状#

Code · 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 监听器先在环回地址上测试,再通过可信的 反向代理对外暴露。

Version authority

Checked against the exact 1.0.0 source

This page is public documentation, not a second product contract. Use the exact source and distribution contract for release authority.

Owning component Snapshots
  • ait-coreSNP-B06A48DA0245
  • ait-serverSNP-E90456E6425E
  • ait-runnerSNP-6B0A1BB3AFAD
  • ait-pythonSNP-973E3BFAF3DE
  • ait-nodeSNP-F962CC66AA62