Quay lại hướng dẫn
Thiết lập·21 tháng 9, 2026·Cập nhật 24 tháng 9, 2026·Đọc 8 phút

Nhiều agent và mô hình OpenClaw: định tuyến, cô lập và chi phí

Tách roster agent, lớp định tuyến và lớp mô hình trước khi thay đổi bất cứ điều gì — sau đó phân bổ hóa đơn theo route.

Được xem xét lần cuối vào .

Các agent đa tác vụ và nhiều model của OpenClaw là hai lớp khác nhau trong cùng một tệp cấu hình: nhiều agent là các mục khóa bên dưới agents.entries, mỗi agent sở hữu workspace, thư mục trạng thái và kho lưu trữ phiên riêng, còn nhiều model là các giá trị model theo từng agent bên trong những mục đó. Có thêm hai lớp nằm song song — bindings quyết định agent nào trả lời, còn chuỗi dự phòng quyết định một agent sẽ làm gì khi model của nó gặp lỗi. Chỉnh sửa nhầm lớp là lý do phổ biến nhất khiến một thay đổi dường như không có tác dụng.

Việc chạy nhiều agent không tốn thêm chi phí phần mềm. Tổng quan tài liệu của OpenClaw cho biết dự án được phát triển công khai bởi "OpenClaw Foundation, một tổ chức 501(c)(3) độc lập", với "Không có gói trả phí, theo mặc định không có telemetry ngoài kiểm tra phiên bản mà bạn có thể tắt, không phòng thí nghiệm nào sở hữu dự án", còn openclaw.ai bổ sung "Không có gói thuê bao. Không có gói dịch vụ được lưu trữ sẵn. Không token." Gói npm openclaw có giấy phép MIT, với latest ở 2026.9.5, bên cạnh kênh extended-stable ở phiên bản 2026.7.35 và engines.node của >=24.16.0 <25 || >=26.1.0 (npm registry, kiểm tra ngày 21 tháng 9 năm 2026). Điều mà agent thứ hai thêm vào hóa đơn của bạn là token.

Các agent đa tác vụ của OpenClaw: bốn lớp và triệu chứng khi bạn chỉnh sửa nhầm lớp

LớpKhóa cấu hìnhLớp này quyết định điều gìTriệu chứng khi đây mới là lớp bạn thực sự cần
Danh sách agentagents.entries.<id>Workspace, thư mục trạng thái, kho lưu trữ phiên, skill và chính sách công cụ riêng biệtHai persona vẫn tiếp tục đọc ghi chú và lịch sử của nhau
Định tuyến kênhbindings[]Agent nào trả lời một tin nhắn đến trên kênh hoặc tài khoản nàoĐịnh tuyến báo cáo AGENT_SELECTION_REQUIRED
Lựa chọn mô hìnhagents.entries.<id>.modelCác lượt chạy của agent đó sử dụng model nàoMột thay đổi /model trong một cuộc trò chuyện không ảnh hưởng đến bất kỳ cuộc trò chuyện nào khác
Chuỗi dự phòngmodel.fallbacks, agents.defaults.modelModel nào tiếp quản khi nhà cung cấp gặp lỗiLỗi tràn ngữ cảnh không bao giờ chuyển sang dự phòng, vì đây không phải là tác nhân kích hoạt chuyển đổi dự phòng

Cả bốn lớp đều được lấy từ tài liệu riêng của OpenClaw vào ngày 21 tháng 9 năm 2026: các mục cấu hình và đa agent, liên kết agent và chuyển đổi model dự phòng. Hai dạng trong các hướng dẫn cũ đã lỗi thời: mảng agent agents.list là dạng cũ mà Doctor sẽ chuyển đổi, còn marker default: true trên một mục đã bị loại bỏ — trang về các mục cấu hình nêu rõ rằng "default đã bị loại bỏ" và các thao tác đa agent cần một liên kết hoặc một đích tường minh. OpenClaw cũng từng hoạt động dưới hai tên trước đây, vì vậy mọi cấu hình thời Moltbot hoặc Clawdbot mà bạn tìm thấy đều có trước schema này.

Thiết lập nhiều agent của OpenClaw: cấu hình tối thiểu gồm hai agent và hai model

Đoạn cấu hình này giả định bạn đã có một khối models.providers đang hoạt động — API tốt nhất cho OpenClaw cung cấp cấu hình Kunavo, bao gồm api: "anthropic-messages" và base URL được công bố tại base URL Anthropic. Phần tiếp theo chỉ bao gồm lớp agent và định tuyến.

Gộp vào ~/.openclaw/openclaw.json cùng với khối models.providers của bạn
{
  "agents": {
    "defaults": {
      "modelSelectionScope": "session",
      "model": {
        "primary": "kunavo/claude-haiku-4-5",
        "fallbacks": [
          "kunavo/claude-sonnet-5"
        ]
      }
    },
    "entries": {
      "ops": {
        "name": "Ops",
        "workspace": "~/.openclaw/workspace-ops",
        "agentDir": "~/.openclaw/agents/ops/agent",
        "model": "kunavo/claude-haiku-4-5",
        "modelPolicy": {
          "allow": [
            "kunavo/claude-haiku-4-5"
          ]
        }
      },
      "build": {
        "name": "Build",
        "workspace": "~/.openclaw/workspace-build",
        "agentDir": "~/.openclaw/agents/build/agent",
        "model": {
          "primary": "kunavo/claude-opus-5",
          "fallbacks": [
            "kunavo/claude-sonnet-5"
          ]
        },
        "utilityModel": "kunavo/claude-haiku-4-5"
      }
    }
  },
  "bindings": [
    {
      "agentId": "build",
      "match": {
        "channel": "discord",
        "accountId": "build"
      }
    },
    {
      "agentId": "ops",
      "match": {
        "channel": "discord",
        "accountId": "*"
      }
    }
  ]
}

Bốn thành phần trong khối đó có vai trò cốt lõi. Mỗi agent có agentDir riêng, vì trang multi-agent cảnh báo "Không bao giờ dùng lại agentDir giữa các agent — điều đó gây xung đột trạng thái xác thực/phiên." Agent ops sử dụng dạng chuỗi của model, được trang entries định nghĩa là "primary nghiêm ngặt theo từng agent, không có model dự phòng" — vì vậy lỗi sẽ được hiển thị thay vì âm thầm chuyển tác vụ thường lệ sang một cấp đắt hơn. Agent build sử dụng dạng đối tượng với danh sách fallbacks tường minh, đây là cách cho phép agent tham gia; trang chuyển đổi dự phòng bổ sung rằng agent có thể chỉ đặt model: { fallbacks: [...] } và tiếp tục kế thừa primary dùng chung. Binding cụ thể được đặt trước wildcard, vì trong cùng một cấp độ khớp, "mục bindings khớp đầu tiên sẽ thắng."

Các giá trị workspace mặc định khác nhau giữa agent mặc định và các agent còn lại, và đáng để thiết lập tường minh: workspace của agent mặc định là <stateDir>/workspace, còn các agent khác mặc định là <stateDir>/workspace-<agentId>. Memory đi theo workspace, vì engine tích hợp của OpenClaw "ghi nhớ mọi thứ bằng cách viết các tệp Markdown thuần túy trong workspace của agent" — do đó cô lập workspace chính là cách cô lập memory. Chế độ quyền phiên lại là một trục riêng: read-only, guarded, workspace và full, trong đó "full yêu cầu operator.admin. Các chế độ khác yêu cầu operator.write" (các chế độ quyền, ngày 21 tháng 9 năm 2026). Một model rẻ trên agent có quyền rộng vẫn là một agent có quyền rộng.

Các agent riêng biệt tách biệt điều gì — và không tách biệt điều gì

Đối tượngTheo từng agent?Nó nằm ở đâu
Tệp workspace và memory dạng MarkdownCóagents.entries.*.workspace
Lịch sử trò chuyệnCó<agentDir>/openclaw-agent.sqlite
Hồ sơ xác thực được lưu trữCóagentDir; các thay đổi xác thực yêu cầu --agent
Kỹ năngCóDanh sách agents.entries.*.skills tường minh thay thế các giá trị mặc định thay vì hợp nhất
Công cụ, sandbox, quyền nâng caoCóCó các khóa theo từng agent, nhưng thứ tự ưu tiên khác nhau tùy khóa — chẳng hạn tools.elevated "chỉ có thể hạn chế thêm"
Model primary, model dự phòng, danh sách cho phépCóagents.entries.*.model, .modelPolicy.allow
Nhà cung cấp baseUrl, apiKey, dialectKhôngmodels.providers áp dụng trên toàn Gateway
Các khóa nhà cung cấp từ môi trườngKhôngMột tiến trình Gateway, một môi trường
openclaw models setKhôngToàn cục; nó từ chối --agent và ghi các giá trị mặc định của agent

Đây là ranh giới mà các bảng giá bỏ sót. Các mục riêng biệt cung cấp tệp, memory, lịch sử, chính sách công cụ và hồ sơ xác thực được lưu trữ riêng. Tuy nhiên, bản thân chúng không cung cấp cho mỗi agent một API key riêng đối với nhà cung cấp tùy chỉnh được cấu hình bằng môi trường — schema theo từng agent được tài liệu hóa hoàn toàn không có trường baseUrl, apiKey hoặc providers. Việc không xuất hiện trong tài liệu không chứng minh rằng mã nguồn cấm điều đó, vì vậy hãy hiểu đây là chưa được tài liệu hóa; nếu cần tách biệt khóa cứng theo từng tenant, hãy chạy các Gateway riêng biệt. Một giới hạn liên quan áp dụng cho danh tính: ví dụ WhatsApp DM-split của OpenClaw lưu ý rằng "Phản hồi vẫn đến từ cùng một số WhatsApp — không có danh tính người gửi theo từng agent", và "Các cuộc trò chuyện trực tiếp mặc định gộp vào khóa phiên chính của agent, vì vậy để cô lập thực sự cần một agent cho mỗi người." Câu này được nêu cho WhatsApp; hãy kiểm tra trang của kênh bạn trước khi khái quát hóa.

Một ranh giới năng lực cần lưu ý khi bạn phân chia vai trò: Kunavo không cung cấp model chuyển văn bản thành giọng nói, chuyển giọng nói thành văn bản hoặc embedding, vì vậy agent cần đầu ra giọng nói hoặc chỉ mục vector phải gọi một nhà cung cấp bên ngoài cho bước đó.

Nhiều model của OpenClaw: nghiêm ngặt, dự phòng, chính sách và làn tiện ích

Việc chọn model theo từng agent có bốn thiết lập đáng được cấu hình có chủ đích. model dưới dạng chuỗi là nghiêm ngặt. { primary, fallbacks: [...] } cho phép agent đó tham gia cơ chế chuyển đổi dự phòng. modelPolicy.allow là danh sách cho phép "thay thế chính sách mặc định cho agent đó" — chấp nhận alias, tham chiếu chính xác và wildcard ở cuối — đây là cách ngăn một agent thông thường tiếp cận model đắt tiền. Còn utilityModel là một model riêng, thường rẻ hơn, dành cho "các tác vụ nội bộ ngắn như tạo tiêu đề phiên và chuỗi", với khả năng ghi đè theo từng agent.

Danh sách tác nhân kích hoạt được tài liệu hóa rất cụ thể. OpenClaw chuyển sang dự phòng khi gặp "lỗi xác thực, giới hạn tốc độ và hết thời gian cooldown, lỗi quá tải/nhà cung cấp bận, lỗi chuyển đổi dự phòng dạng timeout, vô hiệu hóa thanh toán, model_not_found", cũng như các lỗi không nhận diện khác khi vẫn còn ứng viên — nhưng không chuyển khi gặp lỗi tràn ngữ cảnh, vốn vẫn nằm trong logic nén và thử lại, và không chuyển khi gặp "hủy tường minh không có dạng timeout/chuyển đổi dự phòng". Bên ngoài các cuộc trò chuyện nhóm và kênh, điều này có thể nhìn thấy: các giao diện đó đăng thông báo trạng thái dạng Model Fallback: <fallback> (selected <primary>; <reason>) và một thông báo đã xóa tương ứng, trong khi các cuộc trò chuyện nhóm và kênh "ẩn thông báo hiển thị nhưng vẫn giữ nguyên trạng thái dự phòng", vì vậy đừng dựa vào việc nhìn thấy thông báo đó trong phòng dùng chung. Một lựa chọn phiên tường minh — /model, bộ chọn model, session_status(model=...) hoặc sessions.patch — là nghiêm ngặt: nếu model đó lỗi trước khi tạo phản hồi, OpenClaw báo lỗi thay vì trả lời bằng model dự phòng đã cấu hình. --model của một cron job không thuộc nhóm này; tài liệu gọi đó là primary của job, vẫn sử dụng các model dự phòng đã cấu hình trừ khi job đặt payload.fallbacks: [].

Hai cơ chế khác quyết định liệu ý định của bạn có được giữ nguyên hay không. Các tham số request được hợp nhất qua bốn lớp, từ agents.defaults.params đến agents.entries.*.params, trong đó các lớp sau ghi đè theo từng khóa. Tính song song có một ngưỡng được tính toán: agents.defaults.maxConcurrent mặc định là max(8, available CPU parallelism * 4) trên toàn bộ các phiên, còn mỗi phiên vẫn được tuần tự hóa — hai tin nhắn gửi đến cùng một agent không chạy đồng thời. Để chọn model phù hợp cho từng vai trò, Opus so với Sonnet so với Haiku trình bày khía cạnh năng lực.

Phân bổ chi phí theo tuyến, không theo agent

Vì không có lệnh được tài liệu hóa nào báo cáo chi tiêu theo agent, hãy phân bổ theo tuyến. Phép tính dưới đây mang tính minh họa, không phải hóa đơn đo được và không phải mức trần. Phép tính giả định một tháng 30 ngày, heartbeat mặc định 30m được tài liệu hóa (1.440 lần chạy), 300 token đầu ra cho mỗi heartbeat, không có lượt đọc cache và một làn hội thoại chính gồm 8M token đầu vào và 500K token đầu ra. Các con số ngữ cảnh khoảng 100K và khoảng 2–5K mỗi lần chạy là minh họa riêng của OpenClaw về phần mà isolatedSession loại bỏ, không phải số liệu được đo ở đây; 3.000 là giá trị trung điểm. Mức giá là giá trong catalog Kunavo hiện hành trên mỗi triệu token.

Phương thứcĐầu vào / đầu ra giả định mỗi thángỞ mức Claude Haiku 4.5Ở mức Claude Opus 5
Heartbeat trên phiên dùng chung, chu kỳ 30m144,00M / 0,43M$102,31$511,56
Cùng heartbeat với isolatedSession: true4,32M / 0,43M$4,54$22,68
Các lượt hội thoại chính8,00M / 0,50M$7,35$36,75
tiêu đề và bản tóm tắt của utilityModel0,20M / 0,02M$0,21$1,05

Claude Haiku 4.5 liệt kê $0,70 / $3,50, còn Claude Opus 5 liệt kê $3,50 / $17,50 trên mỗi triệu token trong catalog hiện hành. Điểm đáng chú ý: theo các giả định này, làn được lập lịch chiếm phần lớn chi phí. Heartbeat dùng chung một phiên trên model mạnh có chi phí khoảng $511,56 mỗi tháng, so với $4,54 cho cùng tần suất khi dùng isolatedSession: true trên model rẻ. Chính OpenClaw cũng nói như vậy — "Heartbeat chạy toàn bộ lượt của agent. Khoảng thời gian ngắn hơn tiêu thụ nhiều token hơn" — và nêu isolatedSession, lightContext, model rẻ hơn cùng target: "none" là các đòn bẩy.

Mẹo dùng model rẻ cho heartbeat có một chế độ lỗi được tài liệu hóa, và đó là lý do isolatedSession là đòn bẩy tốt hơn việc chỉ đổi model. Heartbeat "giữ lại model runtime hiện tại của phiên dùng chung sau khi lượt chạy hoàn tất", vì vậy heartbeat chuyển phiên sang model nhỏ hơn có thể để model đó tiếp tục được sử dụng cho lượt tiếp theo của phiên chính, sau đó lượt này có thể báo lỗi tràn ngữ cảnh — thông báo khôi phục của OpenClaw gọi hiện tượng này là model heartbeat bị lan truyền. Ví dụ minh họa trong tài liệu sử dụng một model cục bộ với cửa sổ 32k, vì vậy mức độ rủi ro phụ thuộc vào việc cửa sổ ngữ cảnh của model heartbeat nhỏ hơn bao nhiêu so với nhu cầu của phiên dùng chung. Một lưu ý về lịch: khoảng thời gian mặc định được tài liệu hóa là 30m, chỉ tăng lên 1h khi chế độ xác thực đã phân giải là Anthropic OAuth/token, vì vậy một tuyến dùng API key thuần túy vẫn giữ 30m trừ khi bạn tự đặt heartbeat.every. Hãy kiểm tra giá trị của chính bạn trước khi lập ngân sách.

Có hai lưu ý về các con số tính theo đô la. Số tiền trong catalog của Kunavo là mức sàn thanh toán chứ không phải mức trần: khi upstream báo chi phí, hóa đơn là giá trị lớn hơn giữa chi phí trong catalog và chi phí upstream nhân với phần markup áp dụng. Ngoài ra, nhà cung cấp tùy chỉnh được khai báo mà không có đối tượng cost theo từng model sẽ khiến phần hiển thị của chính OpenClaw trở nên vô dụng — nó mặc định là cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, hiển thị $0 trong khi nhà cung cấp vẫn tính phí bình thường. Hãy khai báo cost, contextWindow và maxTokens trên từng model bạn thêm vào, rồi đối soát với sổ cái của nhà cung cấp. Mức nạp tối thiểu của Kunavo là $10 tín dụng trả trước — đây là mức tối thiểu để nạp tiền, không phải phí cho một tác vụ hay gói đăng ký. Xem chi tiết thanh toán và tối ưu hóa chi phí AI.

Tuyến mua nào phù hợp với Gateway multi-agent

Phương thứcCó lợi khiBạn phải từ bỏ điều gì
Một Gateway, một nhà cung cấp kiểu gatewayNhiều agent trên nhiều họ model, một khóa và một số dưKhông tách khóa theo từng agent; định nghĩa nhà cung cấp và khóa môi trường được dùng chung
Một Gateway, hồ sơ xác thực được lưu trữ theo từng agentBạn muốn mỗi agent mang thông tin xác thực riêng trong agentDir riêng của nóChỉ được tài liệu hóa cho hồ sơ xác thực — việc ghi đè endpoint theo từng agent không có trong schema đã công bố
Các Gateway riêng biệt theo tenantYêu cầu là tách biệt cứng về khóa, môi trường và chi tiêuHai tiến trình, hai cấu hình, hai lộ trình nâng cấp
Tài khoản nhà cung cấp trực tiếp cho từng agentLuôn dùng một nhà cung cấp và muốn sử dụng bộ nhớ đệm cùng các tính năng batch riêng của nhà cung cấp đóMột họ khác đồng nghĩa với một tài khoản khác; mỗi họ có mức giá và quyền kiểm soát riêng
Model cục bộ trên làn được lập lịchCác lần kiểm tra heartbeat có giới hạn mà không tính phí theo requestPhần cứng và bảo trì, cùng lưu ý về model heartbeat bị lan truyền ở trên
Agent theo gói đăng kýMức sử dụng nặng hằng ngày theo giá cố định phù hợp với bạn hơn token tính theo mức dùngOpenClaw không bán gói đăng ký riêng; đây sẽ là một client khác

Một lưu ý về dialect, vì caching là nơi chi phí được tiết kiệm. Khối Kunavo trong hướng dẫn liên quan khai báo api: "anthropic-messages", và OpenClaw xem đây là một endpoint Anthropic không trực tiếp. Có hai hệ quả được tài liệu hóa. Các header beta Anthropic ngầm định bị vô hiệu hóa trên những endpoint như vậy, vì thế các tính năng như suy luận xen kẽ phải được bật bằng headers["anthropic-beta"] tường minh thay vì tự động. Caching cũng phải được yêu cầu: OpenClaw chỉ khởi tạo cacheRetention: "short" cho các nhà cung cấp trực tiếp anthropic và anthropic-vertex, trong khi "các endpoint tương thích với anthropic-messages tùy chỉnh" được hỗ trợ "khi cacheRetention được đặt tường minh" — vì vậy hãy tự đặt params.cacheRetention thay vì giả định giá trị mặc định (lưu lời nhắc vào bộ nhớ đệm, ngày 21 tháng 9 năm 2026). Một quy tắc riêng áp dụng cho dialect còn lại: tuyến openai-completions đến endpoint không phải của chính nhà cung cấp sẽ "không gửi gợi ý lưu lời nhắc vào bộ nhớ đệm". Hãy xác minh mức sử dụng cache được báo cáo trên tuyến của bạn trước khi lập ngân sách cho ngữ cảnh định kỳ dưới dạng cache hit. Lưu lời nhắc vào bộ nhớ đệm trình bày khía cạnh giá.

Xác minh cấu hình đã được áp dụng đúng nơi bạn muốn

Xác nhận: nội dung này đã được áp dụng cho đúng tác nhân và model bạn muốn chưa?
openclaw config validate
openclaw gateway restart
openclaw agents list --bindings
openclaw models status --agent ops --json --check
openclaw models list --agent build

Xác thực cấu hình kiểm tra cấu trúc, còn khởi động lại gateway tải lại cấu hình; không thao tác nào trong hai thao tác này chứng minh rằng một request tính phí đã thành công. openclaw agents list --bindings cho biết việc định tuyến thực sự đã được tải — ưu tiên lệnh này hơn --tree, vốn xuất hiện trên các trang khái niệm nhưng không có trong bảng lệnh CLI. openclaw models status --agent <id> giải thích default đã cấu hình của agent đó, còn models list --agent <id> hiển thị danh mục model của agent. Nếu models set thoát với mã khác 0 do một nhà cung cấp không xác định, đó là lớp model: nhà cung cấp phải là plugin đã cài đặt hoặc được khai báo bên dưới models.providers. Nếu không agent nào nhận được tin nhắn, đó là lớp định tuyến. Nếu các lượt chạy trùng lặp xuất hiện khi nhiều agent cùng chia sẻ một kênh, OpenClaw tài liệu hóa các khóa bảo vệ vòng lặp bot là cơ chế bảo vệ — tài liệu mô tả việc ngăn chặn chứ không phải nguyên nhân gốc, vì vậy hãy chẩn đoán trước khi giả định.

Sau đó chạy một tác vụ có giới hạn cho mỗi agent và đọc khoản phí mà tài khoản nhà cung cấp của bạn đã ghi nhận cho tác vụ đó. Kunavo chưa kiểm thử OpenClaw trong runtime, dù là đơn agent hay multi-agent: mọi nội dung trên đều được đọc từ tài liệu đã công bố của OpenClaw, và một cấu hình được công bố không phải là bài kiểm tra khả năng tương thích. Hãy duy trì một tuyến đang hoạt động trong khi thử nghiệm. Bắt đầu từ cấu hình nhà cung cấp, so sánh toàn bộ chi phí vận hành trong giá OpenClaw, rồi tạo tài khoản Kunavo khi bạn sẵn sàng nạp tiền cho một khóa.

Câu hỏi thường gặp

Làm cách nào để thiết lập nhiều tác nhân trong OpenClaw?

Thêm một mục có khóa cho mỗi tác nhân trong agents.entries, cấp cho mỗi tác nhân một workspace riêng và agentDir riêng, sau đó thêm một mảng bindings để các tin nhắn đến được phân giải tới một tác nhân. Tài liệu của OpenClaw nêu rõ agentDir tuyệt đối không được dùng chung: “Không bao giờ tái sử dụng `agentDir` giữa các tác nhân — điều đó gây xung đột trạng thái xác thực/phiên.” Tương đương trên CLI là `openclaw agents add <id>` với --workspace, --agent-dir, --model và --bind có thể lặp lại. Hai dạng bạn có thể gặp trong các hướng dẫn cũ đã lỗi thời: danh sách agents.list là dạng cũ được Doctor chuyển đổi, còn dấu `default: true` trên một mục đã bị loại bỏ — việc chọn tác nhân hiện được thực hiện thông qua binding hoặc target rõ ràng. Đọc tại docs.openclaw.ai vào ngày 21 tháng 9 năm 2026; chưa kiểm thử thời gian chạy tại đây.

Mỗi tác nhân OpenClaw có thể sử dụng một model khác nhau không?

Có. agents.entries.<id>.model đặt model chính của tác nhân đó, và dạng bạn viết quyết định việc nó có thể chuyển sang model dự phòng hay không. Tài liệu của OpenClaw nêu rằng “Dạng chuỗi đặt model chính nghiêm ngặt cho mỗi tác nhân mà không có model dự phòng; dạng đối tượng { primary } cũng nghiêm ngặt trừ khi bạn thêm các model dự phòng.” Vì vậy, chuỗi thuần trong model của từng tác nhân khiến lỗi nhà cung cấp hiển thị dưới dạng lỗi thay vì âm thầm chuyển tác nhân đó sang một bậc giá khác. Dùng { primary, fallbacks: [...] } để cho phép tác nhân sử dụng model dự phòng, và { primary, fallbacks: [] } để thể hiện rõ hành vi nghiêm ngặt. Tham chiếu model luôn có dạng provider/model. Đã kiểm tra ngày 21 tháng 9 năm 2026.

Mỗi tác nhân có thể có khóa API hoặc endpoint nhà cung cấp riêng không?

Endpoint thì không thể thiết lập thông qua schema từng tác nhân được tài liệu hóa; thông tin xác thực thì có. models.providers — nơi chứa baseUrl, apiKey và trường api xác định kiểu giao tiếp API — là một khối cấp Gateway, vì vậy mọi tác nhân trong cùng một Gateway dùng chung các định nghĩa nhà cung cấp, còn khóa được ghi ở đó dưới dạng tham chiếu biến môi trường sẽ được phân giải từ môi trường của chính tiến trình Gateway đó. Schema mục từng tác nhân được công bố ngày 21 tháng 9 năm 2026 không có trường baseUrl, apiKey hoặc providers, và agents.entries.*.models chỉ chứa params, agentRuntime và codeMode. Thành phần riêng theo từng tác nhân là hồ sơ xác thực được lưu trong agentDir của tác nhân đó, chứa api_key, token và thông tin xác thực OAuth: các lệnh con xác thực của models chấp nhận --agent, và các thay đổi xác thực yêu cầu tham số này khi cấu hình nhiều tác nhân. Việc không có trong tài liệu không chứng minh mã nguồn cấm endpoint theo từng tác nhân, vì vậy hãy coi phần endpoint là chưa được tài liệu hóa thay vì bất khả thi. Nếu cần tách biệt hoàn toàn theo từng tenant, hãy chạy các Gateway riêng.

Tại sao thay đổi model trong cuộc trò chuyện không thay đổi gì?

Vì phạm vi ghi mặc định là phiên mà bạn đã nhập lệnh. OpenClaw ghi rõ agents.defaults.modelSelectionScope mặc định là “session”: “thay đổi model trong một cuộc trò chuyện không thay đổi các cuộc trò chuyện khác hoặc mặc định đã cấu hình, kể cả khi bên gọi là chủ sở hữu/quản trị viên.” Dùng /model với -a/--agent để ghi model chính của tác nhân hoặc -g/--global cho mặc định dùng chung. Cũng lưu ý CLI `openclaw models set` có phạm vi toàn cục và từ chối --agent, vì vậy không thể dùng lệnh này để đặt model cho một tác nhân — thay vào đó hãy chỉnh sửa agents.entries.<id>.model. Hành vi được tài liệu hóa đã được kiểm tra ngày 21 tháng 9 năm 2026.

AGENT_SELECTION_REQUIRED có nghĩa là gì?

Điều đó có nghĩa là việc định tuyến không tìm thấy binding cho tin nhắn đến đó và từ chối đoán. Tài liệu của OpenClaw nêu rằng khi đã cấu hình nhiều tác nhân, “Nếu không có binding nào trong thiết lập nhiều tác nhân, việc định tuyến sẽ báo AGENT_SELECTION_REQUIRED và yêu cầu bạn thêm một binding.” Thứ tự đối chiếu được tài liệu hóa là match.peer, match.guildId, match.teamId, match.accountId khớp chính xác, sau đó accountId “*” — và kết thúc bằng cơ chế dự phòng tác nhân duy nhất chỉ áp dụng “khi có đúng một tác nhân được cấu hình; các nhóm được cấu hình rõ ràng với nhiều tác nhân sẽ từ chối định tuyến nếu không có binding khớp”. Khi có hai tác nhân, không có chủ sở hữu mặc định nhận mọi tin nhắn không khớp. Trong cùng một cấp, “mục bindings khớp đầu tiên sẽ thắng”, vì vậy hãy đặt các quy tắc hẹp phía trên quy tắc rộng. Kiểm tra nội dung thực sự được tải bằng `openclaw agents list --bindings`. Đã kiểm tra ngày 21 tháng 9 năm 2026.

Làm cách nào để xem chi phí của từng tác nhân OpenClaw?

Không có lệnh nào được tài liệu hóa vào ngày 21 tháng 9 năm 2026 báo cáo chi tiêu tách theo từng tác nhân, vì vậy thay vào đó hãy phân bổ theo model và theo tuyến — các lượt chính, các lần chạy heartbeat, luồng utilityModel và các tác nhân con được tạo. Có hai lưu ý về các con số cục bộ. Các số tiền bằng đô la của OpenClaw là những ước tính được tính từ siêu dữ liệu giá cục bộ của chính nó — các giao diện thông tin sử dụng của nó có lấy dữ liệu gói và chi tiêu do nhà cung cấp báo cáo khi nhà cung cấp công khai dữ liệu đó, nhưng phân tích chi phí theo phiên được suy ra từ dữ liệu phiên — và /usage cost cảnh báo rằng các tổng Today và Last 30d của nó có thể chưa đầy đủ khi bộ nhớ đệm tổng hợp đang được làm mới, chỉ có dữ liệu một phần hoặc đã cũ. Ngoài ra, đối với nhà cung cấp tùy chỉnh được khai báo mà không có đối tượng chi phí theo từng model, OpenClaw mặc định là cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 } — hiển thị $0 cho các yêu cầu mà nhà cung cấp của bạn vẫn tính phí bình thường. Hãy đối soát với sổ cái của nhà cung cấp, không phải phần chân trang của cuộc trò chuyện.

Tài liệu OpenClaw, tài liệu tham chiếu CLI và mục trong npm registry được kiểm tra vào ngày 21 tháng 9 năm 2026 ở phiên bản gói 2026.9.5; không có Gateway, agent, binding hay request tính phí nào được thực thi tại đây. Mức giá token của Kunavo được lấy từ catalog hiện hành, và mọi con số tính theo đô la trên trang này đều là phép tính token mang tính minh họa chứ không phải hóa đơn đo được.