跳转到内容

配置

PhysiClaw 从一个文件读取设置,即 ~/.physiclaw/config.toml,几乎一切都有合理的内置默认值—— 你 必须 设置的唯一一项是要运行哪个模型。用 physiclaw config edit 编辑该文件 (第一次会从带注释的模板创建),或用 physiclaw config set 一次改一个键。更改会在下一次 physiclaw server 启动时生效。

设置按固定顺序分层,首个匹配胜出

CLI flag > env var > config.toml > built-in default

所以一个 --port 标志胜过环境中的 PHYSICLAW_MODEL,后者胜过文件,文件又胜过出厂默认值。 从文件中删除一个键即可回退到默认值;加载时遇到未知的 section 或键会显式报错失败 (CLI 会指引你用 physiclaw config edit 修复)。

toml
[agent]
model = "anthropic/claude-sonnet-4-6"

model 是一个 provider/model 引用:第一段挑选引擎 + provider,第二段是原样传给该 provider 的 模型 id。不存在通用默认值——空的 model 意味着”使用 PHYSICLAW_MODEL 环境变量,否则显式报错失败”。 设置它最简单的方式是 physiclaw models use <provider/model>,它会先校验该引用。

每个 provider 一个 API 密钥,按 id 区分:

toml
[provider]
anthropic_api_key = "sk-ant-…"
openai_api_key = ""
qwen_api_key = ""
moonshot_api_key = ""
google_api_key = ""
deepseek_api_key = ""

空字符串意味着”回退到对应的环境变量”——ANTHROPIC_API_KEYOPENAI_API_KEYQWEN_API_KEY 等。 环境变量始终胜过文件。

让 provider 指向代理:[providers.<id>]

Section titled “让 provider 指向代理:[providers.<id>]”

要把一个内置 provider 经由代理或备用端点发送(例如 Moonshot 的 .ai.cn), 设置一个 base_url 覆盖:

toml
[providers.moonshot]
base_url = "https://api.moonshot.ai/v1"
toml
[server]
port = 8048
host = "0.0.0.0"
save_tool_calls = false # dump every peek/screenshot output
save_snapshots = false # dump every raw camera frame
save_screenshots = false # dump every raw phone-own screenshot

porthost 也以 physiclaw server --port / --host 暴露,三个 save_* 标志以 --save-tool-calls 等暴露——标志会在那次运行中覆盖文件。save_* 选项是调试辅助; 正常使用时把它们关掉。

toml
[camera]
width = 1920
height = 1080
fourcc = "MJPG"

PhysiClaw 向相机请求的分辨率和像素格式。MJPG 在 Windows 上很关键:默认的未压缩模式在 USB 上会 跳到 640×480,而切换到 MJPG 压缩模式才让单根 USB 线缆能承载 1080p。驱动会就近取最接近的受支持模式, 所以实际尺寸取决于相机在第一帧报告的值。

这些用于调校内置 agent。默认值已为真实场景调好——只在你清楚原因时才去动它们。

toml
[engine]
max_turns = 300 # runaway safeguard for one session
max_attempts = 3 # retries on a provider error
wait_default_minutes = 15 # default WAIT-then-recheck interval
[memory]
default_log_entries = 20 # on-demand read_logs default size (max 200)
bootstrap_log_entries = 10 # daily-log lines preloaded at every wake
[retention]
trace_days = 7 # purge window for trace logs + cron job history

[engine] 是 agent 工具调用循环的失控保护、重试和节奏预算。[memory] 控制 agent 在每日日志中 预加载多少行、以及按需读取多少行。[retention] 设定磁盘上的 trace 日志和 cron 历史保留多久。

如果 [agent] modelclaude-code/ 开头,PhysiClaw 会把外部的 claude CLI 作为子进程驱动, 此时 [claude] 对它生效:

toml
[claude]
timeout_seconds = 180
max_attempts = 3
toml
[skills]
default_source = "" # e.g. "physiclaw/PhysiClaw"

physiclaw skills install 的默认 git 源。为空意味着你每次都得传 --from。 接受 owner/repo 简写或完整 git URL。

bash
physiclaw config show # merged config as TOML, keys masked
physiclaw config get engine.max_turns

show 反映分层之后的一切——默认值加上你的覆盖——所以它是服务器实际会用到什么的真实来源。