Providers
Suy luận
inferrs có thể phục vụ các mô hình cục bộ phía sau API /v1 tương thích với OpenAI. OpenClaw hoạt động với inferrs thông qua đường dẫn openai-completions chung.
| Thuộc tính | Giá trị |
|---|---|
| ID nhà cung cấp | inferrs (tùy chỉnh; cấu hình trong models.providers.inferrs) |
| Plugin | không có — inferrs không phải là Plugin nhà cung cấp được đóng gói kèm OpenClaw |
| Biến môi trường xác thực | Tùy chọn. Bất kỳ giá trị nào cũng hoạt động nếu máy chủ inferrs của bạn không có xác thực |
| API | Tương thích với OpenAI (openai-completions) |
| URL cơ sở đề xuất | http://127.0.0.1:8080/v1 (hoặc nơi máy chủ inferrs của bạn đang chạy) |
Bắt đầu
Khởi động inferrs với một mô hình
inferrs serve google/gemma-4-E2B-it \
--host 127.0.0.1 \
--port 8080 \
--device metal
Xác minh máy chủ có thể truy cập được
curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/v1/models
Thêm một mục nhà cung cấp OpenClaw
Thêm một mục nhà cung cấp rõ ràng và trỏ mô hình mặc định của bạn tới mục đó. Xem ví dụ cấu hình đầy đủ bên dưới.
Ví dụ cấu hình đầy đủ
Ví dụ này sử dụng Gemma 4 trên một máy chủ inferrs cục bộ.
{
agents: {
defaults: {
model: { primary: "inferrs/google/gemma-4-E2B-it" },
models: {
"inferrs/google/gemma-4-E2B-it": {
alias: "Gemma 4 (inferrs)",
},
},
},
},
models: {
mode: "merge",
providers: {
inferrs: {
baseUrl: "http://127.0.0.1:8080/v1",
apiKey: "inferrs-local",
api: "openai-completions",
models: [
{
id: "google/gemma-4-E2B-it",
name: "Gemma 4 E2B (inferrs)",
reasoning: false,
input: ["text"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 131072,
maxTokens: 4096,
compat: {
requiresStringContent: true,
},
},
],
},
},
},
}
Cấu hình nâng cao
Vì sao requiresStringContent quan trọng
Một số tuyến Chat Completions của inferrs chỉ chấp nhận
messages[].content dạng chuỗi, không chấp nhận mảng phần nội dung có cấu trúc.
compat: {
requiresStringContent: true
}
OpenClaw sẽ làm phẳng các phần nội dung chỉ gồm văn bản thành chuỗi thuần trước khi gửi yêu cầu.
Lưu ý về Gemma và schema công cụ
Một số tổ hợp inferrs + Gemma hiện tại chấp nhận các yêu cầu
/v1/chat/completions trực tiếp nhỏ nhưng vẫn thất bại trên các lượt đầy đủ của agent-runtime OpenClaw.
Nếu điều đó xảy ra, hãy thử cách này trước:
compat: {
requiresStringContent: true,
supportsTools: false
}
Cách này tắt bề mặt schema công cụ của OpenClaw cho mô hình và có thể giảm áp lực prompt lên các hậu tuyến cục bộ nghiêm ngặt hơn.
Nếu các yêu cầu trực tiếp rất nhỏ vẫn hoạt động nhưng các lượt agent OpenClaw bình thường tiếp tục
gặp sự cố bên trong inferrs, vấn đề còn lại thường là hành vi của mô hình/máy chủ
thượng nguồn chứ không phải tầng vận chuyển của OpenClaw.
Kiểm thử khói thủ công
Sau khi cấu hình, hãy kiểm thử cả hai tầng:
curl http://127.0.0.1:8080/v1/chat/completions \
-H 'content-type: application/json' \
-d '{"model":"google/gemma-4-E2B-it","messages":[{"role":"user","content":"What is 2 + 2?"}],"stream":false}'
openclaw infer model run \
--model inferrs/google/gemma-4-E2B-it \
--prompt "What is 2 + 2? Reply with one short sentence." \
--json
Nếu lệnh đầu tiên hoạt động nhưng lệnh thứ hai thất bại, hãy xem phần khắc phục sự cố bên dưới.
Hành vi kiểu proxy
inferrs được xem là một hậu tuyến /v1 kiểu proxy tương thích với OpenAI, không phải một
điểm cuối OpenAI nguyên bản.
- Định hình yêu cầu chỉ dành riêng cho OpenAI nguyên bản không áp dụng ở đây
- Không có
service_tier, không có Responsesstore, không có gợi ý bộ nhớ đệm prompt và không có định hình payload tương thích reasoning của OpenAI - Các header ghi nhận nguồn ẩn của OpenClaw (
originator,version,User-Agent) không được chèn vào các URL cơ sởinferrstùy chỉnh
Khắc phục sự cố
curl /v1/models thất bại
inferrs chưa chạy, không thể truy cập được hoặc không được bind tới
host/port mong đợi. Hãy bảo đảm máy chủ đã được khởi động và đang lắng nghe trên địa chỉ bạn
đã cấu hình.
messages[].content mong đợi một chuỗi
Đặt compat.requiresStringContent: true trong mục mô hình. Xem phần
requiresStringContent ở trên để biết chi tiết.
Các lệnh gọi trực tiếp /v1/chat/completions thành công nhưng openclaw infer model run thất bại
Hãy thử đặt compat.supportsTools: false để tắt bề mặt schema công cụ.
Xem lưu ý về schema công cụ Gemma ở trên.
inferrs vẫn gặp sự cố trên các lượt agent lớn hơn
Nếu OpenClaw không còn nhận lỗi schema nhưng inferrs vẫn gặp sự cố trên các lượt
agent lớn hơn, hãy xem đó là một hạn chế thượng nguồn của inferrs hoặc mô hình. Giảm
áp lực prompt hoặc chuyển sang một hậu tuyến hay mô hình cục bộ khác.