【工具】ZeroClaw 配置项(config.toml)说明
内容提要
本文介绍ZeroClaw的config.toml配置项,涵盖加载优先级、核心默认值及安全、Agent、渠道、成本、记忆等分组字段。强调安全默认(如白名单拒绝)、环境变量覆盖及常见排障要点,并提供最小安全配置示例。
延伸解读
安全默认值:白名单拒绝是常态
文中多次强调,http_request、browser 等工具的 allowed_domains 默认空列表即拒绝所有请求,渠道 allowlist 空数组也拒绝所有发送者。这容易让用户误以为功能故障,实为安全设计。配置时需显式添加白名单,否则工具不生效。
配置加载优先级与排障
配置加载顺序为 ZEROCLAW_WORKSPACE、active_workspace.toml、默认 config.toml。若修改默认配置未生效,需检查是否存在更高优先级的配置或环境变量覆盖。启动日志会打印实际加载路径,可据此定位问题。
成本与自治控制:防失控的关键
cost 和 autonomy 配置提供预算上限、动作频率限制、命令白名单等护栏。建议启用成本控制并设置每日/每月限额,自治级别推荐 supervised,并配置 allowed_commands 和 forbidden_paths,以降低误操作和资源消耗风险。
Q&A
ZeroClaw 的配置文件加载优先级是怎样的?
ZeroClaw 的配置加载优先级为:如果设置了环境变量 ZEROCLAW_WORKSPACE,则优先使用该路径;否则如果存在 ~/.zeroclaw/active_workspace.toml,则使用该文件;最后才使用默认的 ~/.zeroclaw/config.toml。启动时会在 INFO 日志中打印实际加载的配置路径。
ZeroClaw 中如何通过环境变量覆盖 provider 配置?
可以通过环境变量 ZEROCLAW_PROVIDER 强制覆盖 provider,其优先级最高;另外,兼容旧变量 PROVIDER 只在 default_provider 未设置或仍为默认 openrouter 时生效。config.toml 中的 default_provider 作为基础默认值。
ZeroClaw 的 http_request 工具默认是否允许访问任意域名?
默认不允许。http_request 工具的 allowed_domains 默认为空列表,表示拒绝所有域名。需要显式配置允许的域名列表,例如 ["api.openai.com"]。即使设置为 "*" 允许公网域名,本地/私网目标仍会被拦截。
ZeroClaw 中渠道 allowlist 为空数组代表什么?
渠道 allowlist 为空数组表示拒绝所有发送者,这是安全默认行为。很多“机器人不回消息”的问题就是因为 allowlist 未配置或为空。建议配置显式的用户白名单,如 ["user1", "user2"],仅在临时测试时使用 ["*"] 允许所有。
ZeroClaw 中如何启用 OTP 二次验证?
在 [security.otp] 配置中设置 enabled = true,并可选配置 method(默认 totp)、token_ttl_secs(默认 30)、cache_valid_secs(默认 300)以及 gated_actions(默认包含 shell、file_write 等敏感操作)。生产环境建议开启。
ZeroClaw 中如何设置成本控制?
在 [cost] 配置中设置 enabled = true,并配置 daily_limit_usd(默认 10.00)、monthly_limit_usd(默认 100.00)、warn_at_percent(默认 80)等。达到告警阈值时提醒,达到硬限制时拒绝请求,除非设置 allow_override = true 允许手工放行。
ZeroClaw 中如何配置子 Agent?
在 [agents.*] 下为每个子 Agent 创建配置块,例如 [agents.researcher]。必填字段包括 provider 和 model,可选字段有 system_prompt、api_key、temperature、max_depth(默认 3)、agentic(默认 false)、allowed_tools(默认空列表)和 max_iterations(默认 10)。当 agentic 为 true 时,应配置 allowed_tools。
ZeroClaw 中如何设置自治级别?
在 [autonomy] 配置中设置 level,可选 read_only、supervised(默认)或 full。同时可配置 workspace_only(默认 true)、allowed_commands、forbidden_paths、max_actions_per_hour(默认 20)等。full 级别会跳过中风险 shell 审批,但仍受其他护栏限制。
ZeroClaw 中如何配置记忆系统?
在 [memory] 配置中设置 backend(默认 sqlite,可选 sqlite/lucid/markdown/none)、auto_save(默认 true)、embedding_provider(默认 none,可设 openai 或 custom:<url>)、embedding_model(默认 text-embedding-3-small)、embedding_dimensions(默认 1536)以及 vector_weight(默认 0.7)和 keyword_weight(默认 0.3)用于混合检索。
ZeroClaw 中如何配置 Telegram 渠道?
在 [channels_config.telegram] 子表中配置 bot_token(必填)、allowed_users(建议配置)、stream_mode、draft_update_interval_ms、mention_only、interrupt_on_new_message 等字段。注意 allowlist 为空数组会拒绝所有用户。