配置 — 内置工具设置
各个内置工具的设置。一次运行是否能够调用它们,由工具策略决定。
tools.exec¶
{
tools: {
exec: {
backgroundMs: 10000,
timeoutSeconds: 1800,
cleanupMs: 1800000,
approvalRunningNoticeMs: 10000,
notifyOnExit: true,
notifyOnExitEmptySuccess: false,
commandHighlighting: false,
applyPatch: {
enabled: true,
allowModels: ["gpt-6-astra"],
},
},
},
}
除 applyPatch.allowModels 外,所示值均为默认值(默认情况下为空/未设置,表示任何兼容模型都可以使用 apply_patch)。当需要审批的 exec 运行时间过长时,approvalRunningNoticeMs 会发出运行中通知;0 可禁用它。
tools.exec.grantExpiryDays(默认未设置)为常设授权(standing grants)设置默认有效期(以天为单位,1–3650),这些授权由自动化审批中的 Always allow 操作签发。未设置时,授权将一直有效,直到被撤销或所属自动化的实质性定义发生变更;暂停并重新启用同一份定义不会撤销这些授权。条款在签发时即被固定,因此更改该值只会影响未来的授权;参见自动化常设授权。
tools.loopDetection¶
工具循环安全检查默认处于禁用状态。设置 enabled: true 即可启用检测。设置可在 tools.loopDetection 中全局定义,并在 agents.entries.*.tools.loopDetection 处按代理覆盖。
tools.web¶
{
tools: {
web: {
search: {
enabled: true,
provider: "brave", // optional; omit for auto-detect
maxResults: 5,
timeoutSeconds: 30,
cacheTtlMinutes: 15,
},
fetch: {
enabled: true,
provider: "firecrawl", // optional; omit for auto-detect
maxChars: 20000,
maxCharsCap: 20000,
maxResponseBytes: 750000,
timeoutSeconds: 30,
cacheTtlMinutes: 15,
maxRedirects: 3,
readability: true,
userAgent: "custom-ua",
},
},
},
plugins: {
entries: {
brave: {
config: {
webSearch: { apiKey: "brave_api_key" }, // or BRAVE_API_KEY env
},
},
},
},
}
网络搜索提供商的凭据位于 plugins.entries.<plugin>.config.webSearch 之下,如 Brave 所示;参见网络搜索。所示的 tools.web 值均为默认值,但 provider 和 userAgent 除外。maxResponseBytes 会被限制在 32000–10000000 范围内;maxChars 会被限制在 maxCharsCap 以内(提高 maxCharsCap 可允许更大的响应)。
tools.media¶
配置对入站媒体内容(图像/音频/视频)的理解:
{
tools: {
media: {
concurrency: 2,
models: [
{ provider: "openai", model: "gpt-4o-mini-transcribe", capabilities: ["audio"] },
{
type: "cli",
command: "whisper",
args: ["--model", "base", "{{AttachmentPath}}"],
capabilities: ["audio"],
},
{ provider: "ollama", model: "gemma4:26b", capabilities: ["image"] },
{ provider: "google", model: "gemini-3-flash-preview", capabilities: ["video"] },
],
audio: { enabled: true, preferredModel: "openai/gpt-4o-mini-transcribe" },
image: { enabled: true, preferredModel: "ollama/gemma4:26b" },
video: { enabled: true },
},
},
}
tools.media.models 是唯一已配置的模型列表。每个条目声明其处理的能力。可选的 preferredModel 选择器接受 provider/model、模型 ID、用于 provider 默认条目的 provider:<id>,或 cli:command;匹配的条目会移到该能力回退顺序的前端。对于已配置和自动检测到的模型,各能力对应的提示词、限制、请求设置、作用域、附件策略以及音频转写回显均保持默认值;模型条目可以覆盖特定于模型的字段。
媒体模型条目字段
Provider 条目(type: "provider" 或省略):
provider:API 提供方 ID(openai、anthropic、google/gemini、groq等)model:模型 ID 覆盖项profile/preferredProfile:已存储的认证配置文件选择
CLI 条目(type: "cli"):
command:要运行的可执行程序args:模板化参数(支持{{AttachmentPath}}、{{AttachmentUrl}}、{{AttachmentContentType}}、{{AttachmentDir}}、{{AttachmentIndex}}、{{Prompt}}、{{MaxChars}}等;openclaw doctor --fix会将已弃用的{input}占位符迁移为{{AttachmentPath}})。较旧的{{MediaPath}}、{{MediaUrl}}、{{MediaType}}和{{MediaDir}}别名在兼容期内仍然可用,但现已弃用。
通用字段:
capabilities:包含image、audio、video中一个或多个的列表。prompt、maxChars、maxBytes、timeoutSeconds、language:条目级覆盖值。- 当代理调用显式的
view_image工具时,匹配的图像模型timeoutSeconds条目同样适用。对于图像理解,此超时适用于请求本身,不会因之前的准备工作而减少。 - 失败时会回退到下一个条目。
Provider 认证遵循标准顺序:SQLite 认证配置文件 → 环境变量 → models.providers.*.apiKey。
tools.updatePlan¶
progress_card 的总开关——即用于跟踪较为复杂的多步骤工作的持久化计划与状态说明。
- 默认值:每个 provider 和模型均为
true。设置为false可保持该工具关闭;不存在模型特定的自动启用规则。 - 该工具的描述要求模型保持计划为最新状态,最多使用一个
in_progress步骤,并且仅在能提供步骤之外的信息时才添加 Markdown。 - 在新的
tools.allow和tools.deny策略中使用progress_card。现有引用update_plan的策略会映射到progress_card,因此随附的允许列表和拒绝列表仍保持原有含义。
旧版配置使用了 tools.experimental.planTool。运行 openclaw doctor --fix 可将该值迁移到 tools.updatePlan。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw