Gateway
Cấu hình — công cụ và nhà cung cấp tùy chỉnh
Các khóa cấu hình tools.* và thiết lập nhà cung cấp tùy chỉnh / URL cơ sở. Đối với tác tử, kênh và các khóa cấu hình cấp cao nhất khác, hãy xem Tham chiếu cấu hình.
Công cụ
Hồ sơ công cụ
tools.profile thiết lập danh sách cho phép cơ sở trước tools.allow/tools.deny:
| Hồ sơ | Bao gồm |
|---|---|
minimal |
Chỉ session_status |
coding |
group:fs, group:runtime, group:web, group:sessions, group:memory, cron, get_goal, create_goal, update_goal, update_plan, skill_workshop, image, image_generate, music_generate, video_generate |
messaging |
group:messaging, sessions_list, sessions_history, sessions_send, session_status |
full |
Không hạn chế (giống như chưa thiết lập) |
coding và messaging cũng ngầm cho phép bundle-mcp (các máy chủ MCP đã cấu hình).
Nhóm công cụ
| Nhóm | Công cụ |
|---|---|
group:runtime |
exec, process, code_execution (bash được chấp nhận làm bí danh cho exec) |
group:fs |
read, write, edit, apply_patch |
group:sessions |
sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status, spawn_task, dismiss_task |
group:memory |
memory_search, memory_get |
group:web |
web_search, x_search, web_fetch |
group:ui |
browser, canvas |
group:automation |
heartbeat_respond, cron, gateway |
group:messaging |
message |
group:nodes |
nodes, computer |
group:agents |
agents_list, get_goal, create_goal, update_goal, update_plan, skill_workshop |
group:media |
image, image_generate, music_generate, video_generate, tts |
group:openclaw |
Tất cả công cụ tích hợp sẵn ở trên ngoại trừ read/write/edit/apply_patch/exec/process/canvas (không bao gồm công cụ plugin) |
group:plugins |
Các công cụ thuộc quyền sở hữu của những plugin đã tải, bao gồm các máy chủ MCP đã cấu hình được cung cấp qua bundle-mcp |
spawn_task cho phép tác tử lập trình đề xuất công việc tiếp nối cần được xác nhận mà không khởi chạy công việc đó. Giao diện điều khiển hiển thị tiêu đề và phần tóm tắt dưới dạng một thẻ có thể thao tác; TUI dựa trên Gateway hiển thị lời nhắc tương tác tương đương. Việc chấp nhận một trong hai sẽ tạo một phiên cây làm việc được quản lý mới và gửi toàn bộ lời nhắc đến đó trong khi lượt hiện tại tiếp tục. dismiss_task rút lại một đề xuất vẫn đang chờ xử lý bằng task_id tạm thời do spawn_task trả về.
Các công cụ này chỉ được cung cấp khi bề mặt của người vận hành khởi tạo có thể nhận và xử lý các sự kiện đề xuất tác vụ của Gateway. Các phiên kênh và phiên TUI cục bộ/nhúng không nhận được chúng; các phương thức vận chuyển kênh cần một thao tác tác vụ có kiểu và khả chuyển trước khi có thể cung cấp luồng này một cách an toàn. Các đề xuất chỉ tồn tại cục bộ trong tiến trình và biến mất khi Gateway khởi động lại. Cả hai công cụ vẫn nằm trong hồ sơ coding và group:sessions, vì vậy chính sách tools.allow và tools.deny thông thường sẽ tự động cấu hình chúng khi bề mặt hỗ trợ.
Công cụ MCP và plugin trong chính sách công cụ hộp cát
Các máy chủ MCP đã cấu hình được cung cấp dưới dạng công cụ thuộc quyền sở hữu của plugin với mã định danh plugin bundle-mcp. Các hồ sơ công cụ thông thường có thể cho phép chúng, nhưng tools.sandbox.tools là một cổng kiểm soát bổ sung cho các phiên trong hộp cát. Nếu chế độ hộp cát là "all" hoặc "non-main", hãy thêm một trong các mục sau vào danh sách cho phép công cụ hộp cát khi cần hiển thị công cụ MCP/plugin:
bundle-mcpcho các máy chủ MCP do OpenClaw quản lý từmcp.servers- mã định danh plugin cho một plugin gốc cụ thể
group:pluginscho tất cả công cụ thuộc quyền sở hữu của plugin đã tải- tên công cụ chính xác của máy chủ MCP hoặc mẫu glob máy chủ như
outlook__send_mailhoặcoutlook__*khi bạn chỉ muốn một máy chủ
Các mẫu glob máy chủ sử dụng tiền tố máy chủ MCP an toàn với nhà cung cấp, không nhất thiết là khóa mcp.servers thô. Các ký tự không thuộc [A-Za-z0-9_-] sẽ trở thành -, các tên không bắt đầu bằng chữ cái sẽ được thêm tiền tố mcp-, còn các tiền tố dài hoặc trùng lặp có thể bị cắt ngắn hoặc thêm hậu tố; ví dụ, mcp.servers["Outlook Graph"] sử dụng mẫu glob như outlook-graph__*.
{ agents: { defaults: { sandbox: { mode: "all" } } }, mcp: { servers: { outlook: { command: "node", args: ["./outlook-mcp.js"] }, }, }, tools: { sandbox: { tools: { alsoAllow: ["web_search", "web_fetch", "memory_search", "memory_get", "bundle-mcp"], }, }, },}Nếu không có mục ở lớp hộp cát đó, máy chủ MCP vẫn có thể tải thành công trong khi các công cụ của nó bị lọc trước yêu cầu gửi đến nhà cung cấp. Sử dụng openclaw doctor để phát hiện cấu hình dạng này cho các máy chủ do OpenClaw quản lý trong mcp.servers. Các máy chủ MCP được tải từ tệp kê khai plugin đi kèm hoặc tệp .mcp.json của Claude sử dụng cùng cổng kiểm soát hộp cát, nhưng chẩn đoán này chưa liệt kê các nguồn đó; hãy sử dụng cùng các mục trong danh sách cho phép nếu công cụ của chúng biến mất trong các lượt chạy trong hộp cát.
tools.codeMode
tools.codeMode bật bề mặt chế độ mã chung của OpenClaw. Khi được bật
cho một lượt chạy có công cụ, các công cụ OpenClaw thông thường được chuyển ra sau cầu nối danh mục tools.*
trong hộp cát, còn các công cụ MCP khả dụng qua không gian tên MCP
được tạo. Mô hình thường nhìn thấy exec và wait; các công cụ như computer
có kết quả có cấu trúc không thể đi qua cầu nối chỉ hỗ trợ JSON vẫn được cung cấp trực tiếp.
{ tools: { codeMode: { enabled: true, }, },}Dạng viết tắt cũng được chấp nhận:
{ tools: { codeMode: true },}Các khai báo MCP được cung cấp qua bề mặt tệp API ảo chỉ đọc trong
chế độ mã. Mã khách có thể gọi API.list("mcp") và
API.read("mcp/<server>.d.ts") để kiểm tra các chữ ký theo kiểu TypeScript trước khi
gọi MCP.<server>.<tool>(). Xem Chế độ mã để biết
hợp đồng thời gian chạy, các giới hạn và các bước gỡ lỗi.
tools.allow / tools.deny
Chính sách cho phép/từ chối công cụ toàn cục (từ chối được ưu tiên). Không phân biệt chữ hoa chữ thường, hỗ trợ ký tự đại diện *. Được áp dụng ngay cả khi sandbox Docker bị tắt.
{ tools: { deny: ["browser", "canvas"] },}write và apply_patch là các mã định danh công cụ riêng biệt. allow: ["write"] cũng bật apply_patch cho các mô hình tương thích, nhưng deny: ["write"] không từ chối apply_patch. Để chặn mọi thao tác sửa đổi tệp, hãy từ chối group:fs hoặc liệt kê rõ từng công cụ có khả năng sửa đổi:
{ tools: { deny: ["write", "edit", "apply_patch"] },}tools.byProvider
Hạn chế thêm các công cụ cho những nhà cung cấp hoặc mô hình cụ thể. Thứ tự: hồ sơ cơ sở → hồ sơ nhà cung cấp → cho phép/từ chối.
{ tools: { profile: "coding", byProvider: { "google-antigravity": { profile: "minimal" }, "openai/gpt-5.4": { allow: ["group:fs", "sessions_list"] }, }, },}tools.toolsBySender
Hạn chế công cụ đối với một danh tính người yêu cầu cụ thể. Đây là lớp phòng vệ chiều sâu bổ sung cho cơ chế kiểm soát truy cập kênh; giá trị người gửi phải đến từ bộ điều hợp kênh, không phải từ nội dung tin nhắn.
{ tools: { toolsBySender: { "channel:discord:1234567890123": { alsoAllow: ["group:fs"] }, "id:guest-user-id": { deny: ["group:runtime", "group:fs"] }, "*": { deny: ["exec", "process", "write", "edit", "apply_patch"] }, }, },}Các khóa sử dụng tiền tố tường minh: channel:<channelId>:<senderId>, id:<senderId>, e164:<phone>, username:<handle>, name:<displayName> hoặc "*". Mã định danh kênh là mã định danh OpenClaw chuẩn; các bí danh như teams được chuẩn hóa thành msteams. Các khóa cũ không có tiền tố chỉ được chấp nhận dưới dạng id:. Thứ tự khớp là kênh+mã định danh, mã định danh, e164, tên người dùng, tên, rồi đến ký tự đại diện.
Cấu hình agents.list[].tools.toolsBySender theo từng tác nhân sẽ ghi đè kết quả khớp người gửi toàn cục khi khớp, ngay cả với chính sách rỗng {}.
tools.elevated
Kiểm soát quyền truy cập thực thi nâng cao bên ngoài sandbox:
{ tools: { elevated: { enabled: true, allowFrom: { whatsapp: ["+15555550123"], discord: ["1234567890123", "987654321098765432"], }, }, },}- Cấu hình ghi đè theo từng tác nhân (
agents.list[].tools.elevated) chỉ có thể hạn chế thêm. /elevated on|off|ask|fulllưu trạng thái theo từng phiên; các chỉ thị nội tuyến chỉ áp dụng cho một tin nhắn.execnâng cao bỏ qua sandbox và sử dụng đường thoát đã cấu hình (gatewaytheo mặc định, hoặcnodekhi đích thực thi lànode).
tools.exec
{ tools: { exec: { backgroundMs: 10000, timeoutSec: 1800, cleanupMs: 1800000, approvalRunningNoticeMs: 10000, notifyOnExit: true, notifyOnExitEmptySuccess: false, commandHighlighting: false, applyPatch: { enabled: true, allowModels: ["gpt-5.6-sol"], }, }, },}Các giá trị hiển thị là mặc định, ngoại trừ applyPatch.allowModels (mặc định là rỗng/chưa đặt, nghĩa là mọi mô hình tương thích đều có thể sử dụng apply_patch). approvalRunningNoticeMs phát thông báo đang chạy khi lệnh thực thi có yêu cầu phê duyệt chạy lâu; 0 sẽ tắt tính năng này.
tools.loopDetection
Các bước kiểm tra an toàn vòng lặp công cụ bị tắt theo mặc định. Đặt enabled: true để kích hoạt tính năng phát hiện. Có thể định nghĩa cài đặt trên toàn cục trong tools.loopDetection và ghi đè theo từng tác nhân tại agents.list[].tools.loopDetection.
{ tools: { loopDetection: { enabled: true, historySize: 30, warningThreshold: 10, unknownToolThreshold: 10, criticalThreshold: 20, globalCircuitBreakerThreshold: 30, detectors: { genericRepeat: true, knownPollNoProgress: true, pingPong: true, }, postCompactionGuard: { windowSize: 3, }, }, },}historySizenumberSố lượng tối đa lệnh gọi công cụ trong lịch sử được giữ lại để phân tích vòng lặp.
warningThresholdnumberNgưỡng cảnh báo đối với mẫu lặp lại không có tiến triển.
unknownToolThresholdnumberChặn các lệnh gọi lặp lại đến cùng một tên công cụ không khả dụng/không xác định sau số lần thất bại này.
criticalThresholdnumberNgưỡng lặp lại cao hơn để chặn các vòng lặp nghiêm trọng.
globalCircuitBreakerThresholdnumberNgưỡng dừng cứng đối với mọi chuỗi thực thi không có tiến triển.
detectors.genericRepeatbooleanCảnh báo khi lặp lại các lệnh gọi có cùng công cụ/cùng đối số.
detectors.knownPollNoProgressbooleanCảnh báo/chặn đối với các công cụ thăm dò đã biết (process.poll, command_status, v.v.).
detectors.pingPongbooleanCảnh báo/chặn đối với các mẫu cặp luân phiên không có tiến triển.
postCompactionGuard.windowSizenumberSố lần thử sau khi tự động Compaction mà cơ chế bảo vệ vẫn được kích hoạt; sẽ hủy nếu agent lặp lại cùng một bộ (công cụ, đối số, kết quả) trong khoảng này.
tools.web
{ tools: { web: { search: { enabled: true, apiKey: "brave_api_key", // or BRAVE_API_KEY env (Brave provider) 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", }, }, },}Các giá trị được hiển thị là giá trị mặc định, ngoại trừ provider và userAgent. maxResponseBytes bị giới hạn trong khoảng 32000–10000000; maxChars bị giới hạn ở maxCharsCap (tăng maxCharsCap để cho phép phản hồi lớn hơn).
tools.media
Cấu hình khả năng hiểu nội dung phương tiện đầu vào (hình ảnh/âm thanh/video):
{ tools: { media: { concurrency: 2, asyncCompletion: { directSend: false, // deprecated: completions stay agent-mediated }, audio: { enabled: true, maxBytes: 20971520, scope: { default: "deny", rules: [{ action: "allow", match: { chatType: "direct" } }], }, models: [ { provider: "openai", model: "gpt-4o-mini-transcribe" }, { type: "cli", command: "whisper", args: ["--model", "base", "{{MediaPath}}"] }, ], }, image: { enabled: true, timeoutSeconds: 180, models: [{ provider: "ollama", model: "gemma4:26b", timeoutSeconds: 300 }], }, video: { enabled: true, maxBytes: 52428800, models: [{ provider: "google", model: "gemini-3-flash-preview" }], }, }, },}concurrency (mặc định 2), audio.maxBytes (mặc định 20 MB) và video.maxBytes (mặc định 50 MB) được hiển thị với giá trị mặc định; image.maxBytes mặc định là 10 MB. Thời gian chờ yêu cầu mặc định theo từng khả năng: hình ảnh/âm thanh là 60 giây, video là 120 giây.
Các trường của mục nhập mô hình phương tiện
Mục nhập nhà cung cấp (type: "provider" hoặc bỏ qua):
provider: mã định danh nhà cung cấp API (openai,anthropic,google/gemini,groq, v.v.)model: ghi đè mã định danh mô hìnhprofile/preferredProfile: lựa chọn hồ sơ trongauth-profiles.json
Mục nhập CLI (type: "cli"):
command: tệp thực thi cần chạyargs: các đối số theo mẫu (hỗ trợ{{MediaPath}},{{Prompt}},{{MaxChars}}, v.v.;openclaw doctor --fixdi chuyển các phần giữ chỗ{input}đã lỗi thời sang{{MediaPath}})
Các trường chung:
capabilities: danh sách tùy chọn (image,audio,video). Mỗi Plugin nhà cung cấp khai báo tập khả năng mặc định riêng; ví dụ, nhà cung cấpopenaiđi kèm mặc định hỗ trợ hình ảnh+âm thanh,anthropic/minimaxhỗ trợ hình ảnh,googlehỗ trợ hình ảnh+âm thanh+video vàgroqhỗ trợ âm thanh.prompt,maxChars,maxBytes,timeoutSeconds,language: các giá trị ghi đè theo từng mục nhập.tools.media.image.timeoutSecondsvà các mụctimeoutSecondstương ứng của mô hình hình ảnh cũng áp dụng khi agent gọi trực tiếp công cụimage. Đối với khả năng hiểu hình ảnh, thời gian chờ này áp dụng cho chính yêu cầu và không bị giảm bởi công việc chuẩn bị trước đó.- Khi xảy ra lỗi, hệ thống chuyển sang mục nhập tiếp theo.
Việc xác thực nhà cung cấp tuân theo thứ tự tiêu chuẩn: auth-profiles.json → biến môi trường → models.providers.*.apiKey.
Các trường hoàn tất bất đồng bộ:
asyncCompletion.directSend: cờ tương thích đã lỗi thời. Các tác vụ phương tiện bất đồng bộ đã hoàn tất vẫn được điều phối qua phiên của bên yêu cầu để agent nhận kết quả, quyết định cách thông báo cho người dùng và sử dụng công cụ tin nhắn khi nguồn yêu cầu gửi trực tiếp.
tools.agentToAgent
{ tools: { agentToAgent: { enabled: false, allow: ["home", "work"], }, },}tools.sessions
Kiểm soát những phiên nào có thể được các công cụ phiên (sessions_list, sessions_history, sessions_send) nhắm đến.
Mặc định: tree (phiên hiện tại + các phiên do phiên này tạo ra, chẳng hạn như các agent con).
{ tools: { sessions: { // "self" | "tree" | "agent" | "all" visibility: "tree", }, },}Phạm vi hiển thị
self: chỉ khóa phiên hiện tại.tree: phiên hiện tại + các phiên do phiên hiện tại tạo ra (các agent con).agent: bất kỳ phiên nào thuộc mã định danh agent hiện tại (có thể bao gồm người dùng khác nếu bạn chạy phiên riêng theo người gửi dưới cùng một mã định danh agent).all: bất kỳ phiên nào. Việc nhắm đến agent khác vẫn yêu cầutools.agentToAgent.- Giới hạn của sandbox: khi phiên hiện tại chạy trong sandbox và
agents.defaults.sandbox.sessionToolsVisibility="spawned"(giá trị mặc định), phạm vi hiển thị bị buộc thànhtreengay cả khitools.sessions.visibility="all". - Khi không phải
all,sessions_listbao gồm một trườngvisibilitythu gọn mô tả chế độ có hiệu lực và cảnh báo rằng một số phiên có thể bị bỏ qua nếu nằm ngoài phạm vi hiện tại.
tools.sessions_spawn
Kiểm soát khả năng hỗ trợ tệp đính kèm nội tuyến cho sessions_spawn.
{ tools: { sessions_spawn: { attachments: { enabled: false, // opt-in: set true to allow inline file attachments maxTotalBytes: 5242880, // 5 MB total across all files maxFiles: 50, maxFileBytes: 1048576, // 1 MB per file retainOnSessionKeep: false, // keep attachments when cleanup="keep" }, }, },}Lưu ý về tệp đính kèm
- Tệp đính kèm yêu cầu
enabled: true. - Tệp đính kèm của agent con được tạo thành tệp trong không gian làm việc con tại
.openclaw/attachments/<uuid>/cùng với tệp.manifest.json. - Tệp đính kèm ACP chỉ hỗ trợ hình ảnh và được chuyển tiếp nội tuyến đến môi trường thực thi ACP sau khi đáp ứng các giới hạn về số lượng tệp, số byte trên mỗi tệp và tổng số byte.
- Nội dung tệp đính kèm tự động được biên tập ẩn khỏi dữ liệu bản ghi hội thoại được lưu trữ.
- Dữ liệu đầu vào Base64 được xác thực nghiêm ngặt về bảng ký tự/phần đệm và có cơ chế bảo vệ kích thước trước khi giải mã.
- Quyền tệp đính kèm của agent con là
0700cho thư mục và0600cho tệp. - Việc dọn dẹp agent con tuân theo chính sách
cleanup:deleteluôn xóa tệp đính kèm;keepchỉ giữ lại chúng khiretainOnSessionKeep: true.
tools.experimental
Các cờ công cụ tích hợp thử nghiệm. Mặc định tắt trừ khi áp dụng quy tắc tự động bật GPT-5 ở chế độ agent nghiêm ngặt.
{ tools: { experimental: { planTool: true, // enable experimental update_plan }, },}planTool: bật công cụ có cấu trúcupdate_planđể theo dõi công việc nhiều bước không đơn giản.- Mặc định:
false, trừ khiagents.defaults.embeddedAgent.executionContract(hoặc giá trị ghi đè theo từng agent) được đặt thành"strict-agentic"cho một lượt chạy của nhà cung cấpopenaivới mã định danh mô hình thuộc họ GPT-5 (điều này cũng bao gồm các lượt chạy OpenAI Codex CLI vì cơ chế xác thực/định tuyến mô hình của Codex nằm trong nhà cung cấpopenai). Đặt thànhtrueđể buộc bật công cụ ngoài phạm vi đó hoặcfalseđể tiếp tục tắt ngay cả với các lượt chạy GPT-5 ở chế độ agent nghiêm ngặt. - Khi được bật, lời nhắc hệ thống cũng bổ sung hướng dẫn sử dụng để mô hình chỉ dùng công cụ này cho công việc đáng kể và duy trì tối đa một bước ở trạng thái
in_progress.
agents.defaults.subagents
{ agents: { defaults: { subagents: { allowAgents: ["research"], model: "minimax/MiniMax-M2.7", maxConcurrent: 8, runTimeoutSeconds: 900, announceTimeoutMs: 120000, archiveAfterMinutes: 60, }, }, },}model: mô hình mặc định cho các agent con được tạo. Nếu bỏ qua, các agent con kế thừa mô hình của bên gọi.allowAgents: danh sách cho phép mặc định gồm các mã định danh agent đích đã cấu hình dành chosessions_spawnkhi agent yêu cầu không thiết lậpsubagents.allowAgentsriêng (["*"]= bất kỳ đích đã cấu hình nào; mặc định: chỉ cùng agent). Các mục cũ có cấu hình agent đã bị xóa sẽ bịsessions_spawntừ chối và bị loại khỏiagents_list; chạyopenclaw doctor --fixđể dọn dẹp chúng.maxConcurrent: số lượt chạy agent con đồng thời tối đa. Mặc định:8.runTimeoutSeconds: thời gian chờ (giây) chosessions_spawnkhi bên gọi không truyền giá trị ghi đè riêng. Mặc định:0(không có thời gian chờ); giá trị900hiển thị ở trên là một giá trị thường được chủ động chọn, không phải giá trị mặc định tích hợp.announceTimeoutMs: thời gian chờ cho mỗi lần gọi (mili giây) đối với các lần thử gửi thông báoagentcủa Gateway. Mặc định:120000. Các lần thử lại tạm thời có thể khiến tổng thời gian chờ thông báo dài hơn một khoảng thời gian chờ đã cấu hình.archiveAfterMinutes: số phút sau khi phiên agent con hoàn tất trước khi được tự động lưu trữ. Mặc định:60;0tắt tự động lưu trữ.- Chính sách công cụ theo từng agent con:
tools.subagents.tools.allow/tools.subagents.tools.deny.
Nhà cung cấp tùy chỉnh và URL cơ sở
Các Plugin nhà cung cấp công bố những hàng danh mục mô hình riêng. Thêm nhà cung cấp tùy chỉnh thông qua models.providers trong cấu hình hoặc ~/.openclaw/agents/<agentId>/agent/models.json.
Việc cấu hình baseUrl cho nhà cung cấp tùy chỉnh/cục bộ cũng là quyết định tin cậy mạng có phạm vi hẹp đối với các yêu cầu HTTP của mô hình: OpenClaw cho phép chính xác nguồn gốc scheme://host:port đó đi qua đường dẫn tìm nạp được bảo vệ mà không cần thêm tùy chọn cấu hình riêng hoặc tin cậy các nguồn gốc riêng tư khác.
{ models: { mode: "merge", // merge (default) | replace providers: { "custom-proxy": { baseUrl: "http://localhost:4000/v1", apiKey: "LITELLM_KEY", api: "openai-completions", // openai-completions | openai-responses | anthropic-messages | google-generative-ai | etc. models: [ { id: "llama-3.1-8b", name: "Llama 3.1 8B", reasoning: false, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128000, contextTokens: 96000, maxTokens: 32000, }, ], }, }, },}Xác thực và thứ tự ưu tiên khi hợp nhất
- Sử dụng
authHeader: true+headerscho các nhu cầu xác thực tùy chỉnh. - Ghi đè thư mục gốc cấu hình tác nhân bằng
OPENCLAW_AGENT_DIR. - Thứ tự ưu tiên khi hợp nhất đối với các ID nhà cung cấp trùng khớp:
- Các giá trị
baseUrlkhông rỗng trongmodels.jsoncủa tác nhân được ưu tiên. - Các giá trị
apiKeykhông rỗng của tác nhân chỉ được ưu tiên khi nhà cung cấp đó không do SecretRef quản lý trong ngữ cảnh cấu hình/hồ sơ xác thực hiện tại. - Các giá trị
apiKeycủa nhà cung cấp do SecretRef quản lý được làm mới từ dấu mốc nguồn (ENV_VAR_NAMEcho tham chiếu biến môi trường,secretref-managedcho tham chiếu tệp/lệnh thực thi) thay vì lưu lâu dài các bí mật đã được phân giải. - Các giá trị tiêu đề của nhà cung cấp do SecretRef quản lý được làm mới từ dấu mốc nguồn (
secretref-env:ENV_VAR_NAMEcho tham chiếu biến môi trường,secretref-managedcho tham chiếu tệp/lệnh thực thi). apiKey/baseUrlcủa tác nhân bị thiếu hoặc rỗng sẽ dự phòng vềmodels.providerstrong cấu hình.- Với
contextWindow/maxTokenscủa mô hình trùng khớp: giá trị cấu hình tường minh được ưu tiên khi có mặt và hợp lệ (một số hữu hạn dương); nếu không, giá trị danh mục ngầm định/được tạo sẽ được sử dụng. contextTokenscủa mô hình trùng khớp tuân theo cùng quy tắc ưu tiên giá trị tường minh, nếu không thì dùng giá trị ngầm định; hãy sử dụng trường này để giới hạn ngữ cảnh hiệu dụng mà không thay đổi siêu dữ liệu gốc của mô hình.- Các danh mục của Plugin nhà cung cấp được lưu dưới dạng các phân mảnh danh mục được tạo và thuộc quyền sở hữu của Plugin trong trạng thái Plugin của tác nhân.
- Sử dụng
models.mode: "replace"khi bạn muốn cấu hình ghi lại hoàn toànmodels.jsonvà bỏ qua việc hợp nhất các phân mảnh danh mục thuộc quyền sở hữu của Plugin. - Việc lưu dấu mốc lấy nguồn làm căn cứ có thẩm quyền: các dấu mốc được ghi từ ảnh chụp nhanh cấu hình nguồn đang hoạt động (trước khi phân giải), không phải từ các giá trị bí mật đã được phân giải khi chạy.
- Các giá trị
Chi tiết trường nhà cung cấp
Danh mục cấp cao nhất
models.mode: hành vi của danh mục nhà cung cấp (mergehoặcreplace).models.providers: ánh xạ nhà cung cấp tùy chỉnh được lập khóa theo ID nhà cung cấp.- Chỉnh sửa an toàn: sử dụng
openclaw config set models.providers.<id> '<json>' --strict-json --mergehoặcopenclaw config set models.providers.<id>.models '<json-array>' --strict-json --mergeđể cập nhật theo kiểu bổ sung.config settừ chối các thao tác thay thế có tính phá hủy trừ khi bạn truyền--replace.
- Chỉnh sửa an toàn: sử dụng
Kết nối và xác thực nhà cung cấp
models.providers.*.api: bộ điều hợp yêu cầu (openai-completions,openai-responses,openai-chatgpt-responses,anthropic-messages,google-generative-ai,google-vertex,github-copilot,bedrock-converse-stream,ollama,azure-openai-responses). Đối với các phần phụ trợ/v1/chat/completionstự lưu trữ như MLX, vLLM, SGLang và hầu hết máy chủ cục bộ tương thích OpenAI, hãy sử dụngopenai-completions. Nhà cung cấp tùy chỉnh cóbaseUrlnhưng không cóapimặc định sử dụngopenai-completions; chỉ đặtopenai-responseskhi phần phụ trợ hỗ trợ/v1/responses.models.providers.*.apiKey: thông tin xác thực của nhà cung cấp (ưu tiên thay thế bằng SecretRef/biến môi trường).models.providers.*.auth: chiến lược xác thực (api-key,token,oauth,aws-sdk).models.providers.*.contextWindow: cửa sổ ngữ cảnh gốc mặc định cho các mô hình thuộc nhà cung cấp này khi mục mô hình không đặtcontextWindow.models.providers.*.contextTokens: giới hạn ngữ cảnh hiệu dụng mặc định khi chạy cho các mô hình thuộc nhà cung cấp này khi mục mô hình không đặtcontextTokens.models.providers.*.maxTokens: giới hạn token đầu ra mặc định cho các mô hình thuộc nhà cung cấp này khi mục mô hình không đặtmaxTokens.models.providers.*.timeoutSeconds: thời gian chờ yêu cầu HTTP mô hình tùy chọn cho từng nhà cung cấp, tính bằng giây, bao gồm xử lý kết nối, tiêu đề, nội dung và hủy toàn bộ yêu cầu.models.providers.*.injectNumCtxForOpenAICompat: đối với Ollama +openai-completions, chènoptions.num_ctxvào yêu cầu (mặc định:true).models.providers.*.authHeader: bắt buộc truyền thông tin xác thực trong tiêu đềAuthorizationkhi cần.models.providers.*.baseUrl: URL cơ sở của API thượng nguồn.models.providers.*.headers: các tiêu đề tĩnh bổ sung để định tuyến qua proxy/đối tượng thuê.
Ghi đè phương thức truyền yêu cầu
models.providers.*.request: các thiết lập ghi đè phương thức truyền cho yêu cầu HTTP đến nhà cung cấp mô hình.
request.headers: các tiêu đề bổ sung (được hợp nhất với giá trị mặc định của nhà cung cấp). Giá trị chấp nhận SecretRef.request.auth: ghi đè chiến lược xác thực. Các chế độ:"provider-default"(sử dụng xác thực tích hợp của nhà cung cấp),"authorization-bearer"(vớitoken),"header"(vớiheaderName,value,prefixtùy chọn).request.proxy: ghi đè proxy HTTP. Các chế độ:"env-proxy"(sử dụng biến môi trườngHTTP_PROXY/HTTPS_PROXY),"explicit-proxy"(vớiurl). Cả hai chế độ đều chấp nhận đối tượng contlstùy chọn.request.tls: ghi đè TLS cho kết nối trực tiếp. Các trường:ca,cert,key,passphrase(tất cả đều chấp nhận SecretRef),serverName,insecureSkipVerify.request.allowPrivateNetwork: khi làtrue, cho phép yêu cầu HTTP đến nhà cung cấp mô hình truy cập các dải mạng riêng, CGNAT hoặc tương tự thông qua lớp bảo vệ truy xuất HTTP của nhà cung cấp. URL cơ sở của nhà cung cấp tùy chỉnh/cục bộ đã tin cậy chính xác nguồn gốc được cấu hình, ngoại trừ nguồn gốc siêu dữ liệu/liên kết cục bộ vẫn bị chặn nếu không có lựa chọn tham gia tường minh. Đặt thànhfalseđể không sử dụng cơ chế tin cậy nguồn gốc chính xác. WebSocket sử dụng cùngrequestcho tiêu đề/TLS nhưng không sử dụng cổng kiểm soát SSRF khi truy xuất đó. Mặc định làfalse.
Các mục danh mục mô hình
models.providers.*.models: các mục danh mục mô hình tường minh của nhà cung cấp.models.providers.*.models.*.input: các phương thức đầu vào của mô hình. Sử dụng["text"]cho mô hình chỉ xử lý văn bản và["text", "image"]cho mô hình hình ảnh/thị giác gốc. Tệp đính kèm hình ảnh chỉ được chèn vào lượt của tác nhân khi mô hình đã chọn được đánh dấu là có khả năng xử lý hình ảnh.models.providers.*.models.*.contextWindow: siêu dữ liệu cửa sổ ngữ cảnh gốc của mô hình. Giá trị này ghi đècontextWindowcấp nhà cung cấp cho mô hình đó.models.providers.*.models.*.contextTokens: giới hạn ngữ cảnh tùy chọn khi chạy. Giá trị này ghi đècontextTokenscấp nhà cung cấp; sử dụng khi bạn muốn ngân sách ngữ cảnh hiệu dụng nhỏ hơncontextWindowgốc của mô hình;openclaw models listhiển thị cả hai giá trị khi chúng khác nhau.models.providers.*.models.*.compat.supportsDeveloperRole: gợi ý tương thích tùy chọn. Vớiapi: "openai-completions"cùngbaseUrlkhông rỗng và không phải bản địa (máy chủ không phảiapi.openai.com), OpenClaw buộc giá trị này thànhfalsekhi chạy.baseUrlrỗng/bị lược bỏ giữ nguyên hành vi mặc định của OpenAI.models.providers.*.models.*.compat.requiresStringContent: gợi ý tương thích tùy chọn cho các điểm cuối trò chuyện tương thích OpenAI chỉ chấp nhận chuỗi. Khi làtrue, OpenClaw làm phẳng các mảngmessages[].contentchỉ chứa văn bản thành chuỗi thuần trước khi gửi yêu cầu.models.providers.*.models.*.compat.strictMessageKeys: gợi ý tương thích tùy chọn cho các điểm cuối trò chuyện tương thích OpenAI nghiêm ngặt. Khi làtrue, OpenClaw rút gọn các đối tượng thông điệp Chat Completions gửi đi chỉ cònrolevàcontenttrước khi gửi yêu cầu.models.providers.*.models.*.compat.thinkingFormat: gợi ý tùy chọn về tải trọng suy luận. Sử dụng"together"choreasoning.enabledkiểu Together,"qwen"choenable_thinkingcấp cao nhất hoặc"qwen-chat-template"chochat_template_kwargs.enable_thinkingtrên các máy chủ tương thích OpenAI thuộc họ Qwen có hỗ trợ các đối số từ khóa mẫu trò chuyện ở cấp yêu cầu, chẳng hạn như vLLM. Các mô hình Qwen trên vLLM đã cấu hình cung cấp lựa chọn nhị phân/think(off,on) cho các định dạng này.models.providers.*.models.*.compat.requiresReasoningContentOnAssistantMessages: gợi ý tương thích tùy chọn cho các phần phụ trợ Chat Completions kiểu DeepSeek yêu cầu thông điệp trợ lý trước đó giữ lạireasoning_contentkhi phát lại. Khi làtrue, OpenClaw giữ nguyên trường đó trong các thông điệp trợ lý gửi đi. Sử dụng tùy chọn này khi kết nối proxy tùy chỉnh tương thích DeepSeek vốn từ chối yêu cầu sau khi nội dung suy luận bị loại bỏ. Mặc định làfalse.
Khám phá Amazon Bedrock
plugins.entries.amazon-bedrock.config.discovery: thư mục gốc thiết lập tự động khám phá Bedrock.plugins.entries.amazon-bedrock.config.discovery.enabled: bật/tắt khám phá ngầm định.plugins.entries.amazon-bedrock.config.discovery.region: khu vực AWS dùng để khám phá.plugins.entries.amazon-bedrock.config.discovery.providerFilter: bộ lọc ID nhà cung cấp tùy chọn để khám phá có mục tiêu.plugins.entries.amazon-bedrock.config.discovery.refreshInterval: khoảng thời gian thăm dò để làm mới kết quả khám phá.plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow: cửa sổ ngữ cảnh dự phòng cho các mô hình được khám phá.plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens: số token đầu ra tối đa dự phòng cho các mô hình được khám phá.
Quá trình hướng dẫn thiết lập nhà cung cấp tùy chỉnh ở chế độ tương tác suy luận đầu vào hình ảnh cho các mẫu ID mô hình thị giác đã biết, bao gồm GPT-4o/GPT-4.1/GPT-5+, các họ suy luận o1/o3/o4, Claude, Gemini, mọi ID có hậu tố -vl (Qwen-VL và tương tự), cùng các họ có tên như LLaVA, Pixtral, InternVL, Mllama, MiniCPM-V và GLM-4V; quá trình này bỏ qua câu hỏi bổ sung đối với các họ được biết là chỉ xử lý văn bản (Llama, DeepSeek, Mistral/Mixtral, Kimi/Moonshot, Codestral, Devstral, Phi, QwQ, CodeLlama và các ID Qwen thuần không có hậu tố vl/vision). Các ID mô hình không xác định vẫn được hỏi về khả năng hỗ trợ hình ảnh. Quá trình hướng dẫn thiết lập không tương tác sử dụng cùng cơ chế suy luận; truyền --custom-image-input để bắt buộc siêu dữ liệu có khả năng xử lý hình ảnh hoặc --custom-text-input để bắt buộc siêu dữ liệu chỉ xử lý văn bản.
Ví dụ về nhà cung cấp
Cerebras (GLM 4.7 / GPT OSS)
Plugin nhà cung cấp cerebras bên ngoài chính thức có thể cấu hình mục này thông qua openclaw onboard --auth-choice cerebras-api-key. Chỉ sử dụng cấu hình nhà cung cấp tường minh khi ghi đè các giá trị mặc định.
{ env: { CEREBRAS_API_KEY: "sk-..." }, agents: { defaults: { model: { primary: "cerebras/zai-glm-4.7", fallbacks: ["cerebras/gpt-oss-120b"], }, models: { "cerebras/zai-glm-4.7": { alias: "GLM 4.7 (Cerebras)" }, "cerebras/gpt-oss-120b": { alias: "GPT OSS 120B (Cerebras)" }, }, }, }, models: { mode: "merge", providers: { cerebras: { baseUrl: "https://api.cerebras.ai/v1", apiKey: "${CEREBRAS_API_KEY}", api: "openai-completions", models: [ { id: "zai-glm-4.7", name: "GLM 4.7 (Cerebras)" }, { id: "gpt-oss-120b", name: "GPT OSS 120B (Cerebras)" }, ], }, }, },}Sử dụng cerebras/zai-glm-4.7 cho Cerebras; zai/glm-4.7 để kết nối trực tiếp với Z.AI.
Lập trình với Kimi
{ env: { KIMI_API_KEY: "sk-..." }, agents: { defaults: { model: { primary: "kimi/kimi-for-coding" }, models: { "kimi/kimi-for-coding": { alias: "Kimi Code" } }, }, },}Tương thích Anthropic, là nhà cung cấp tích hợp sẵn. Lối tắt: openclaw onboard --auth-choice kimi-code-api-key.
Mô hình cục bộ (LM Studio)
Xem Mô hình cục bộ. Tóm lại: chạy một mô hình cục bộ lớn qua LM Studio Responses API trên phần cứng mạnh; vẫn hợp nhất các mô hình được lưu trữ để dự phòng.
MiniMax M3 (trực tiếp)
{ agents: { defaults: { model: { primary: "minimax/MiniMax-M3" }, models: { "minimax/MiniMax-M3": { alias: "Minimax" }, }, }, }, models: { mode: "merge", providers: { minimax: { baseUrl: "https://api.minimax.io/anthropic", apiKey: "${MINIMAX_API_KEY}", api: "anthropic-messages", models: [ { id: "MiniMax-M3", name: "MiniMax M3", reasoning: true, input: ["text", "image"], cost: { input: 0.6, output: 2.4, cacheRead: 0.12, cacheWrite: 0 }, contextWindow: 1000000, maxTokens: 131072, }, ], }, }, },}Đặt MINIMAX_API_KEY. Lệnh tắt: openclaw onboard --auth-choice minimax-global-api hoặc openclaw onboard --auth-choice minimax-cn-api. Danh mục mô hình mặc định dùng M3 và cũng bao gồm các biến thể M2.7. Trên luồng phát trực tuyến tương thích với Anthropic, OpenClaw mặc định vô hiệu hóa chế độ suy luận của MiniMax M2.x, trừ khi bạn tự đặt rõ ràng thinking; MiniMax-M3 (và M3.x) mặc định vẫn sử dụng cơ chế suy luận thích ứng hoặc không truyền tham số của nhà cung cấp. /fast on hoặc params.fastMode: true chuyển MiniMax-M2.7 thành MiniMax-M2.7-highspeed.
Moonshot AI (Kimi)
{ env: { MOONSHOT_API_KEY: "sk-..." }, agents: { defaults: { model: { primary: "moonshot/kimi-k2.6" }, models: { "moonshot/kimi-k2.6": { alias: "Kimi K2.6" } }, }, }, models: { mode: "merge", providers: { moonshot: { baseUrl: "https://api.moonshot.ai/v1", apiKey: "${MOONSHOT_API_KEY}", api: "openai-completions", models: [ { id: "kimi-k2.6", name: "Kimi K2.6", reasoning: false, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, }, ], }, }, },}Đối với điểm cuối tại Trung Quốc: baseUrl: "https://api.moonshot.cn/v1" hoặc openclaw onboard --auth-choice moonshot-api-key-cn.
Các điểm cuối Moonshot gốc công bố khả năng tương thích với thông tin mức sử dụng khi phát trực tuyến trên phương thức truyền tải openai-completions dùng chung, và OpenClaw kích hoạt tính năng này dựa trên khả năng của điểm cuối thay vì chỉ dựa vào mã định danh nhà cung cấp tích hợp sẵn.
OpenCode
{ agents: { defaults: { model: { primary: "opencode/claude-opus-4-6" }, models: { "opencode/claude-opus-4-6": { alias: "Opus" } }, }, },}Đặt OPENCODE_API_KEY (hoặc OPENCODE_ZEN_API_KEY). Dùng tham chiếu opencode/... cho danh mục Zen hoặc tham chiếu opencode-go/... cho danh mục Go. Lệnh tắt: openclaw onboard --auth-choice opencode-zen hoặc openclaw onboard --auth-choice opencode-go.
Synthetic (tương thích với Anthropic)
{ env: { SYNTHETIC_API_KEY: "sk-..." }, agents: { defaults: { model: { primary: "synthetic/hf:MiniMaxAI/MiniMax-M2.5" }, models: { "synthetic/hf:MiniMaxAI/MiniMax-M2.5": { alias: "MiniMax M2.5" } }, }, }, models: { mode: "merge", providers: { synthetic: { baseUrl: "https://api.synthetic.new/anthropic", apiKey: "${SYNTHETIC_API_KEY}", api: "anthropic-messages", models: [ { id: "hf:MiniMaxAI/MiniMax-M2.5", name: "MiniMax M2.5", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 192000, maxTokens: 65536, }, ], }, }, },}URL cơ sở không nên chứa /v1 (trình khách Anthropic sẽ tự nối thêm). Lệnh tắt: openclaw onboard --auth-choice synthetic-api-key.
Z.AI (GLM-4.7)
{ agents: { defaults: { model: { primary: "zai/glm-4.7" }, models: { "zai/glm-4.7": {} }, }, },}Đặt ZAI_API_KEY. Tham chiếu mô hình sử dụng mã định danh nhà cung cấp chuẩn zai/*. Lệnh tắt: openclaw onboard --auth-choice zai-api-key.
- Điểm cuối chung:
https://api.z.ai/api/paas/v4 - Điểm cuối lập trình:
https://api.z.ai/api/coding/paas/v4 - Lựa chọn xác thực
zai-api-keymặc định sẽ kiểm tra khóa của bạn và tự động phát hiện khóa đó thuộc điểm cuối nào (nếu không thể xác định chắc chắn, hệ thống sẽ chuyển sang lời nhắc và mặc định chọn Toàn cầu). Các lựa chọn xác thực chuyên biệt cho CN và Coding-Plan cũng có sẵn để bạn chọn rõ ràng. - Đối với điểm cuối chung, hãy định nghĩa một nhà cung cấp tùy chỉnh với URL cơ sở được ghi đè.
Liên quan
- Cấu hình — tác nhân
- Cấu hình — kênh
- Tham chiếu cấu hình — các khóa cấp cao nhất khác
- Công cụ và plugin