Skip to content

Agent Node

Agent Node 是 Agent Network 中的工作单元 -- 接收任务、调用 AI 模型处理、回报结果。

不知道选哪个 Runtime?

  • 想白嫖 Claude 订阅 / 新手最省事claude-code-cli (claude auth login 后 0 配置)
  • 写文案 / 翻译 / 分析 (编程式) / 接国产模型claude-agent-sdk + 在 wizard 里选对应 vendor
  • 写代码 / 跑命令codex-sdk
  • 用 xAI Grok Buildgrok-build-acp (详细见 GitHub ↗)
  • 接国产 / 非内置 vendor (DeepSeek / GLM / Kimi / OpenRouter / vLLM / SiliconFlow / 通义千问 等) → claude-agent-sdk + 在 vendor 子菜单选 自定义 (custom) + ANTHROPIC_BASE_URL

4 runtime × npm 包 × wizard 行为 × 前置 auth 的权威对照: 见 runtimes — 四种 Runtime 对比 (canonical). anet node create wizard 完整顺序 (节点名 → runtime → ... ): 上手指南 §5.

安装

bash
# 全局安装
npm install -g @sleep2agi/agent-node

# 或直接用 npx(推荐,无需安装)
npx @sleep2agi/agent-node --help

四种 Runtime

Agent Node 支持四种 AI 运行时引擎,覆盖主流模型:

claude-agent-sdk

基于 Anthropic Claude Agent SDK

属性说明
模型当前主线 Claude Sonnet / Opus / Haiku(具体型号查 Anthropic 官方
前置Anthropic API Key,或任一 Anthropic 兼容 API Key(MiniMax / DeepSeek / GLM / Kimi / 书生 / 小米 MiMo / OpenRouter 等,完整列表见 multi-model
特点编程式调用 Anthropic 兼容接口,适合稳定后台 Agent
隔离settingSources: [] 完全隔离宿主机配置
bash
npx @sleep2agi/agent-node \
  --alias 推理大师 \
  --runtime claude-agent-sdk \
  --model claude-sonnet-4-6 \
  --hub http://YOUR_IP:9200
你需要准备
  • [ ] Anthropic API Key 或 MiniMax API Key(付费)
  • [ ] CommHub Server 已启动

验证

启动后看到 SSE connected, waiting for tasks... 即表示成功。如果报 auth / 401 / invalid x-api-key:检查 ANTHROPIC_API_KEY(接 api.anthropic.com)或 ANTHROPIC_AUTH_TOKEN + ANTHROPIC_BASE_URL(接第三方 Anthropic 兼容 endpoint)env 是否正确设置(详见 runtimes — 常见坑)。claude auth login 是给 claude-code-cli 用的,跟 SDK 路径无关。

claude-code-cli

基于本地 Claude Code CLI 进程,和你平时在终端里使用的 claude 命令完全一致。

属性说明
模型当前主线 Claude Sonnet / Opus / Haiku(具体型号查 Anthropic 官方
前置Claude Code 已安装(npm i -g @anthropic-ai/claude-code
特点直接 spawn claude 进程,拥有完整终端能力
区别claude-agent-sdk 的区别:CLI 模式 = 启动 claude 子进程;SDK 模式 = 编程式 API 调用
bash
npx @sleep2agi/agent-node \
  --alias 终端助手 \
  --runtime claude-code-cli \
  --model claude-sonnet-4-6 \
  --hub http://YOUR_IP:9200
你需要准备
  • [ ] 安装 Claude Code:npm install -g @anthropic-ai/claude-code
  • [ ] 确认 claude --version 能正常输出
  • [ ] 跑过 claude auth login 让本机 Claude 订阅生效(claude-code-cli runtime 复用本地登录态)
  • [ ] CommHub Server 已启动

验证

启动后看到 SSE connected, waiting for tasks... 即表示成功。

  • 如果报 claude: command not found,请确认已全局安装 Claude Code
  • 如果报 auth / 401,请跑 claude auth login 重新登录订阅

claude-code-cli vs claude-agent-sdk

  • claude-code-cli:spawn 一个 claude 子进程,就像你在终端里敲命令一样。拥有 Claude Code 的全部能力(文件操作、bash 执行、MCP 工具等)。
  • claude-agent-sdk:通过编程式 SDK API 调用 Claude,更适合需要精细控制 settingSourcesmaxTurns 等参数的场景。

codex-sdk

基于 OpenAI Codex SDK

属性说明
模型Codex SDK 模型(通过 --model 指定;具体 model id 查 OpenAI Codex 文档)
前置codex auth login
特点代码生成强、工具调用灵活
工具Codex CLI 内置 Read / Write / Edit / Bash / Glob / Grep / WebSearch(不接受 --tools 自定义)+ agent-node 按节点注入 CommHub 工具
bash
npx @sleep2agi/agent-node \
  --alias 代码助手 \
  --runtime codex-sdk \
  --model <codex-model-id> \
  --hub http://YOUR_IP:9200
# 注:codex-sdk 不接受 --tools flag。Codex 内建工具由 codex CLI 二进制提供;
# CommHub 工具由 agent-node 按节点注入,可主动 get_all_status / send_task / get_task。
你需要准备
  • [ ] 安装 codex CLI:npm install -g @openai/codex@openai/codex-sdk@sleep2agi/agent-node 的 optional peerDependencies 里,npm 7+ 默认会随 agent-node 一起拉;但 SDK 实际要 spawn codex 二进制;详见 runtimes / codex-sdk 前置
  • [ ] 跑 codex auth login 完成 OpenAI 登录(或 export OPENAI_API_KEY=sk-xxx
  • [ ] CommHub Server 已启动

验证

启动后看到 SSE connected, waiting for tasks... 即表示成功。

  • 如果报 Error: spawn codex ENOENT,说明 codex 二进制不在 PATH 上,跑 npm install -g @openai/codex + which codex 检查
  • 如果报 codex auth 错误,请跑 codex auth login(或检查 OPENAI_API_KEY env)

grok-build-acp

基于 xAI Grok Build ACP (Agent Communication Protocol) 接入,spawn 本地 grok ACP server 跑任务。第 4 runtime,已可在 anet node create wizard 里选择,也可用 --runtime grok-build-acp 显式指定。详细配置 / Known Limits / Delegation Contract 见 grok-build-runtime.md ↗

属性说明
前置grok CLI 已 auth + XAI_API_KEY env
特点xAI Grok Build 模型, ACP 协议跨 agent 协作
工具Grok ACP 内置, 不接受 --tools 自定义
bash
npx @sleep2agi/agent-node \
  --alias grok助手 \
  --runtime grok-build-acp \
  --hub http://YOUR_IP:9200

grok-build-acp 改进

  • #201 — delegate refusal 3-layer 修:parser broaden + prompt softening + 授权措辞表
  • #204 — MCP per-session inject + 节点 cwd 隔离,防 .mcp.json 身份污染

完整说明见 grok-build-runtime.md Known Limits

preview chain 历史(怎么收敛到 preview.7)
  • preview.2 stdio variant:结构修 .mcp.json shared-identity bug(ACP side)
  • preview.6 transport 切到 HTTP:Grok 直接 HTTP 调 commhub /mcp + Bearer ntok_,跳过 subprocess / bun PATH / stdout pollution 风险
  • preview.7 per-node isolated cwd 收敛 final:Grok CLI 同时读 cwd .mcp.json + ACP injection,两个 MCP server 共存 stale 赢 hello — fix: ACP session/new 传节点隔离 cwd 镜像 user 文件但 skip .mcp.json
  • v0.10.11 final = preview.7 promoted

:::

claude-agent-sdk + 国产模型

通过 ANTHROPIC_BASE_URL 将 claude-agent-sdk 的请求路由到国产模型的兼容 API,适合低成本场景。

属性说明
模型MiniMax、DeepSeek、GLM、Kimi、书生 Intern、小米 MiMo、OpenRouter 等任何 Anthropic-compatible endpoint(完整 provider 表见 多模型配置
前置对应模型的 API Key
特点低成本、高吞吐、国内直连
机制通过 ANTHROPIC_BASE_URL 将请求路由到兼容 API
bash
# MiniMax
ANTHROPIC_BASE_URL=https://api.minimaxi.com/anthropic \
ANTHROPIC_AUTH_TOKEN=your-minimax-key \
npx @sleep2agi/agent-node \
  --alias 小明 \
  --runtime claude-agent-sdk \
  --model <minimax-model-id> \
  --hub http://YOUR_IP:9200

# 书生(注意:裸域名,无 /anthropic 后缀)
ANTHROPIC_BASE_URL=https://chat.intern-ai.org.cn \
ANTHROPIC_AUTH_TOKEN=your-intern-key \
npx @sleep2agi/agent-node \
  --alias 书生 \
  --runtime claude-agent-sdk \
  --model intern-s1-pro \
  --hub http://YOUR_IP:9200
你需要准备
  • [ ] 对应模型的 API Key(如 MiniMax API Key)
  • [ ] 设置好环境变量 ANTHROPIC_BASE_URLANTHROPIC_AUTH_TOKEN
  • [ ] CommHub Server 已启动

验证

启动后看到 SSE connected, waiting for tasks... 即表示成功。如果报 401auth 错误,检查 API Key 是否正确。

命令行参数

bash
npx @sleep2agi/agent-node [options]
参数默认值说明
--alias(必需)Agent 名称(在 CommHub 中的显示名)
--hubhttp://127.0.0.1:9200CommHub Server 地址
--runtimeclaude-agent-sdk运行时引擎(claude-agent-sdk / codex-sdk / claude-code-cli / grok-build-acp
--model(按 runtime 默认)AI 模型名称
--tools(无)可用工具列表,逗号分隔
--max-budget0每任务预算上限(美元,0 表示不启用)
--session(新建)恢复指定 session
--config(自动查找)指定配置文件路径

Token / 网络从哪里来

token 由 .anet/nodes/<name>/config.jsontoken 字段或 COMMHUB_TOKEN env 提供,不接受 CLI flag。网络 ID 从 ntok_ token claim 推断,无需手动指定。agent-node CLI 不解析 -a / -h / -r / -m / -t / -s / -c 等单字符短 flag,只接受上表中的长形式。

配置文件

Agent Node 支持多种配置方式,优先级从高到低(verify agent-node/src/cli.ts):

全局 ~/.anet/config.json fallback

cli.ts 在加载完项目 config 后会用全局 ~/.anet/config.jsonhubtoken 字段填空缺。只有这两个字段会跨项目 fallback——runtime / model / tools / env 等都必须在项目 config.json / CLI / env 提供,全局 config 不接管。跟 [feedback_config_priority] memory 一致(项目字段级覆盖全局,缺失字段 fallback 到全局)。

config.json 完整字段

json
{
  "anet_version": "0.1.0",
  "node_id": "n_a1b2c3d4",
  "node_name": "代码助手",
  "token": "ntok_...",
  "runtime": "claude-agent-sdk",
  "model": "<model-id>",
  "session": "",
  "channels": ["server:commhub"],
  "tools": ["Read", "Write", "Edit", "Bash", "Glob", "Grep"],
  "logLevel": "info",
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.minimaxi.com/anthropic"
  },
  "flags": {
    "dangerouslySkipPermissions": true,
    "teammateMode": "in-process",
    "maxTurns": 20
  }
}
字段类型说明
anet_versionstring配置版本
node_idstring稳定唯一标识(n_ 前缀 + 8 位 hex)
node_namestring显示名称,可 rename
aliasstring节点别名(.anet/nodes/<alias>/ 目录名 + CommHub 上的显示标识;不单独设时等于 node_name
runtimestring运行时:claude-agent-sdk / codex-sdk / claude-code-cli / grok-build-acp
modelstringAI 模型名称
sessionstringsession/thread ID。claude-code-cli runtime 下由 anet node create 预生成 UUID(首次 start 用 --session-id <uuid> 绑定,重启自动 --resume <uuid> 续会话;v0.8.2 修了之前默认丢 session 的 bug);其他 runtime 是上次 session ID 用作 resume
channelsstring[]接入的 Channel 列表
toolsstring[]允许使用的工具列表。claude-agent-sdk 生效codex-sdk 静默忽略(工具集 baked in codex 二进制,见上方 L109 注 + runtimes#codex-sdk
envobject环境变量覆盖
flagsobject运行时标志
hubstringCommHub Server 地址覆盖(不设时 fallback 到全局 ~/.anet/config.jsonhub
tokenstring认证 Token 覆盖(不设时 fallback 到全局 config 的 token
network_idstring所属网络 ID(多数情况靠 ntok_ 推断,不需手填)
systemPromptstring系统提示词,拼到每个任务前(也可用 --prompt flag;env SYSTEM_PROMPT 不读,见上方说明)

任务处理流程

Agent Node 启动后,自动进入任务监听循环:

消息类型过滤

Agent Node 只对 task 类型消息触发 AI 处理:

消息类型SSE 事件Agent 行为
tasknew_taskprocessInbox -> AI think -> 回复
broadcastbroadcastprocessInbox -> AI think -> 回复
replynew_reply仅记录日志
messagenew_message仅记录日志
ack(不推送)--

这个设计避免了消息循环(A 给 B 回复 -> B 又给 A 回复 -> 无限循环)。

工具配置

默认 = Claude Code preset 全集(v0.9.0+,#101 Option B)

#101 Option B 起(anet v0.9.0+),claude-agent-sdk runtime 默认 toolset 是 Claude Code preset 全集,不再是空集。每个节点 spawn 后立刻可调:

  • 文件系统:Read / Write / Edit / Glob / Grep
  • Shell:Bash(受 dangerouslySkipPermissions=true 默认开启影响,不弹确认)
  • 网络:WebFetch / WebSearch
  • 子任务 / 笔记本:Task / NotebookEdit / ...

加上 hub 端 17 个 MCP 工具(commhub_send_task / commhub_reply / ...)。

Root cause (#101):老版本 config.jsontools 字段时 agent-node 传 SDK options.tools = undefined,SDK 解读为「零内建工具」,agent 只能调 MCP 工具,被问 WebFetch / Bash / Read 时会幻觉「网络受限」。Option B 强制 fallback 到 SDK { type: 'preset', preset: 'claude_code' } sentinel —— SDK 类型定义里这是「给我全套 Claude Code 工具」的标准表达(sdk.d.ts:1229-1238)。

三种 --tools 行为(仅 claude-agent-sdk runtime)

--tools flag 只控制 claude-agent-sdk runtime —— codex-sdk 的工具集由 codex CLI baked in(Read/Write/Edit/Bash/Grep/Glob/WebSearch不接受 --tools);claude-code-cli 共享本机 Claude Code 工具集,也不通过这个 flag 选。

输入实际效果verify
--tools allSDK preset 全集(同上)—— 单一 source-of-truthcli.ts
--tools Read,Glob,Grep显式 allowlist(字符串数组),跳过 preset —— 严格 sandbox 用cli.ts,220
未传 / 空字符串fallback 到 preset 全集(#101 fix;老版本是 undefined → 空集)cli.ts,221

源码实际逻辑(agent-node/src/cli.ts):

ts
const TOOLS_PRESET = { type: "preset" as const, preset: "claude_code" as const };
// Behaviour matrix (sdk.d.ts:1229-1238):
//   --tools "all"       → SDK preset (full Claude Code tool set)
//   --tools "Read,Bash" → explicit allowlist
//   --tools "" (absent) → SDK preset (the #101 fix; previously left empty)
const TOOLS_EXPLICIT = toolsRaw === "all" ? null : toolsRaw.split(",").filter(Boolean);
let TOOLS: string[] | typeof TOOLS_PRESET =
  toolsRaw === "all" ? TOOLS_PRESET
  : (TOOLS_EXPLICIT && TOOLS_EXPLICIT.length) ? TOOLS_EXPLICIT
  : TOOLS_PRESET;
// ... cli.ts: tools: TOOLS  ← 传给 claude-agent-sdk query options(preset 或 string[])
bash
# 默认(不传 --tools)→ Claude Code preset 全集
npx @sleep2agi/agent-node --alias 代码

# 显式 "all" → 同 preset(单一 source-of-truth,不是老版的硬编码 8-tool 列表)
npx @sleep2agi/agent-node --alias 代码 --tools all

# 显式 allowlist(只读 agent)→ 跳过 preset,给字符串数组
npx @sleep2agi/agent-node --alias 代码 --tools Read,Glob,Grep

# codex-sdk runtime 不接受 --tools(会被静默忽略)
npx @sleep2agi/agent-node --alias 代码 --runtime codex-sdk
# codex 内置 Read/Write/Edit/Bash/Grep/Glob/WebSearch 全套, 无法剥离

anet node create 行为披露 banner(Vincent push, #101

anet node create <alias> 成功后 print 行为披露 banner:built-in tools 清单(具体 list 或 all (Claude Code preset))+ MCP tools + 当前 flags(dangerouslySkipPermissions=true / teammateMode=true)+ 一行 "agent 可读写文件、跑 shell、访问网络"。banner 在 agent-network/bin/cli.ts createCommand 末尾打印 —— 让你看清你创建了一个能干啥的 agent,主动决定 sandboxing。

⚠ User responsibility:默认 preset + 默认 dangerouslySkipPermissions=true 意味着 agent 启动后能改文件、跑 shell、访问网络且不弹确认。详见 安全设计 → 工具权限

安全提示

  • 默认 preset 全集 + 默认 yolo mode(dangerouslySkipPermissions)—— 别在 $HOME 直接跑 agent,用一次性工作目录
  • 严格 sandbox 时 --tools Read,Glob,Grep 只给只读
  • 关 yolo 用 anet node create --no-skip-permissions(长任务每个工具调用都弹确认)
  • 预算限制 --max-budget 0.1(见下方 预算控制

Vendor 适配层(书生 intern 等)

claude-agent-sdk 在某些厂商 endpoint 走 RLHF 默认会偏离 Anthropic 标准(典型:intern-s2-preview 不发 tool_use content blocks 改走 verbose Thinking Process)。agent-node 通过 vendor adapterANTHROPIC_BASE_URL 检测 + 注入 system-prompt bias 修正行为 —— 详见 Vendor 适配层(含 5 副作用 + opt-out 路径)。

预算控制

--max-budget 参数控制每个任务的最大花费(美元)—— 只对 claude-agent-sdk runtime 生效

bash
# 每任务最多 0.1 美元 (claude-agent-sdk)
npx @sleep2agi/agent-node --alias 代码 --max-budget 0.1

# 每任务最多 1 美元(复杂任务)
npx @sleep2agi/agent-node --alias 推理 --max-budget 1.0

verify agent-node/src/cli.ts:

ts
if (MAX_BUDGET > 0) options.maxBudgetUsd = MAX_BUDGET;  // 传给 claude-agent-sdk query options

claude-agent-sdk 在 SDKResultMessage.total_cost_usd 达到 maxBudgetUsd 时自动结束当前 turn,task 状态走 error_max_budget

codex-sdk / claude-code-cli runtime 不支持 budget cap

  • codex-sdk 路径(cli.ts processWithCodex)没读 MAX_BUDGET--max-budget 静默忽略;codex-sdk 仅返 token 数(TurnCompletedEvent.usage)不返美金,预算控制要你自己跟价表算(跟 sdk-deep-dive 一致)
  • claude-code-cli 走本机 Claude Code 订阅,按订阅 quota 不按美金算
  • 跨 runtime 通用预算控制:前置反向代理(nginx / Cloudflare / litellm proxy)按 model API 调用次数限流

生命周期

Agent Node 的完整生命周期:

阶段CommHub 状态说明
创建(不在 CommHub)anet node create 生成 config.json
注册idlereport_status(idle)
在线idleSSE 连接,等待任务
运行working正在处理任务
错误error运行时错误
离线offline进程退出
删除(不在 CommHub)清除所有数据

心跳机制

  • 3 分钟 自动发送 report_status 心跳
  • Server 超过 10 分钟 无心跳标记为 offline
  • 心跳同时返回 inbox_count,便于检查待处理任务

断线重连

SSE 断连后自动重连,使用指数退避策略:

重连间隔([#202](https://github.com/sleep2agi/agent-network/issues/202) 起): 指数退避 `1s → 2s → 4s → 8s → 16s → 30s (上限)`

重连成功后自动恢复 online 状态。三件事一起改:

  • 退避更激进1s → 30s 上限,hub 重启后 30s 内重连
  • 重连即重 register:重连成功立即重发 register(idempotent upsert),dashboard 30s 内恢复完整节点列表(之前老路径要等下次 3min heartbeat)
  • 失败放弃保护:连续失败 > 1h 主动放弃 + 写 error log,不再无限重试占 CPU

anet hub stop / hub status 命令配套用:hub 维护时 stop → start 流程后,节点自动恢复,无需 anet project restart。跑 anet upgrade 升到 latest 即可获得当前修复。

优雅退出

收到 SIGINT (Ctrl+C) 或 SIGTERM 时:

  1. 上报 report_status(offline)
  2. 关闭 SSE 连接
  3. 退出进程

如果进程崩溃(来不及上报),CommHub 通过心跳超时检测,10 分钟后自动标记 offline(verify server/src/index.ts:816-821 Date.now() - 10 * 60 * 1000 cutoff,惰性触发于 /api/status 调用时)。

环境变量

仅列 agent-node 实际从 process.env 读的字段(verify agent-node/src/cli.ts):

变量等价 CLI flag / config 字段说明
COMMHUB_URL--hub / --url / config.hubCommHub Server 地址(cli.ts)
COMMHUB_TOKENconfig.token / globalConfig.token认证 Token(cli.ts;不接受 CLI flag
COMMHUB_ALIAS / ALIAS--alias / config.aliasAgent 别名,两个 env 名都接受(cli.ts)
RUNTIME--runtime / config.runtime运行时引擎,默认 claude-agent-sdk
MODEL--model / config.modelAI 模型
LOG_LEVEL--log-level / config.logLeveltop-level,不在 flags 里)debug / info / warn / error
ANET_NETWORK_IDconfig.network_id / globalConfig.network_idnetwork ID 兜底(多数情况靠 ntok_ 推断,不需手填;cli.ts)
TELEGRAM_BOT_TOKENchannel .env / config.env.TELEGRAM_BOT_TOKENTelegram channel 的 bot token —— agent-node 在 telegram channel 启动路径直接读(cli.ts);白名单走 access.json 不走 env(见 Channel — Telegram
CLAUDE_TIMEOUT_MS--claude-timeout-ms / config.flags.claudeTimeoutMs / config.claudeTimeoutMsclaude-agent-sdk runtime 单次 query 超时(毫秒),默认 300000(300s)#132 Tier 1 v0.9.2 起从 120s 提升 —— SDK concurrency investigation 实测 fan-out 高并发场景 intern API 单次 latency 拉到 17-37s,120s 老 ceiling 中途触发 abort 导致 25/30 子 agent 失败);超时 abort + 返回错误,提示检查 ANTHROPIC_BASE_URL 是否可达。verify agent-node/src/cli.ts
CLAUDE_MAX_RETRIES--claude-max-retries / config.flags.claudeMaxRetries / config.claudeMaxRetriesclaude-agent-sdk runtime 单 query 失败时的重试次数,默认 2(共 3 attempts 含 initial)。每次 attempt 跑满 CLAUDE_TIMEOUT_MS window;transient error / timeout backoff 4s, 8s + 0-1s jitter(jitter 散开 herd retries 防一窝蜂打 vendor queue)。auth-class 错误不 retry#129 fast-failisAuthError regex 命中 401 / 403 / invalid_api_key / intern A02xx 等直接 FATAL 返回 vendor-specific URL hint)。设 0 退回 v0.9.1 行为(no retry)。#132 Tier 1 v0.9.2 起引入。verify agent-node/src/cli.ts + retry loop cli.ts
ANET_CODEX_STDIO_DIRECTenv only(无 CLI flag / config 字段;per-spawn 注入)v0.10.0 起,仅 runtime=codex 时生效(claude-agent-sdk / claude-code-cli 忽略)。设 =1 把 codex runtime 从 @openai/codex-sdk wrapper 切到直 stdio JSON-RPC 客户端路径:agent-node spawn('codex', ['app-server']) + ~155 LOC stdio client + 完整 67-method v2 protocol surface(thread / turn / item / realtime),绕开 wrapper --mcp-config HTTP transport bug 链(#102 hang root cause family)。v0.10.x(含当前 stable)默认仍走 wrapper(preview 反馈窗口 + backward compat);v0.11.0 计划 default flip,届时 toggle 改成 ANET_CODEX_LEGACY_SDK=1 opt-out 反向开关(per agent-node/src/cli.ts 注释)。#141 v0.10.0 起引入。verify agent-node/src/cli.ts if (process.env.ANET_CODEX_STDIO_DIRECT === "1")
ANTHROPIC_BASE_URLconfig.env.ANTHROPIC_BASE_URL模型 API 地址(接第三方 Anthropic 兼容 endpoint 时必填)
ANTHROPIC_AUTH_TOKENconfig.env.ANTHROPIC_AUTH_TOKEN模型 API Key —— 第三方 Anthropic 兼容 endpoint(MiniMax / DeepSeek / GLM / Kimi / 书生 / 小米 MiMo / OpenRouter / vLLM 等)走这个
ANTHROPIC_API_KEYconfig.env.ANTHROPIC_API_KEY模型 API Key —— api.anthropic.com 直连专用,不要拿来传第三方 endpoint key(详见 runtimes — claude-agent-sdk 常见坑

TOOLS / SYSTEM_PROMPT env vars 不存在

旧 doc 列的 TOOLS / SYSTEM_PROMPT 这两个 env var agent-node 不读(verify cli.ts toolsRaw = opts.tools || fileConfig.toolsprocess.env.TOOLS;cli.ts SYSTEM_PROMPT = opts.prompt || fileConfig.systemPrompt 没 env)。要设置 tools 用 --tools CLI flag 或 config.jsontools 字段;系统提示词用 --prompt flag 或 config.jsonsystemPrompt 字段。

Docker 使用

在 Docker 中运行时,环境变量是最方便的配置方式。参见 Docker 部署

下一步

起步

深入配置

  • Runtimes — 四个 runtime(claude-agent-sdk / codex-sdk / claude-code-cli / grok-build-acp)选哪个
  • 多模型配置 — 用 DeepSeek / MiniMax / Kimi / Claude 等
  • Channel 插件 — agent 怎么接 Telegram / 微信 / 飞书

生产

故障排查

  • 故障排查 — 常见问题集合
  • anet doctor --fix — 自动探测 ntok_ 过期等问题

Powered by Sleep2AGI