ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

OpenClaw 接入 ds4:用本地 Metal 后端的 DeepSeek V4 Flash 驱动完整 Agent 工具调用

OpenClaw 接入 ds4:用本地 Metal 后端的 DeepSeek V4 Flash 驱动完整 Agent 工具调用 OpenClaw 接入 ds4用本地 Metal 后端的 DeepSeek V4 Flash 驱动完整 Agent 工具调用【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw本文讲解如何把 OpenClaw 接到 ds4antirez 的 DeepSeek V4 Flash 本地推理服务上ds4 以 OpenAI 兼容的/v1API 从本地 Metal 后端提供模型推理OpenClaw 则通过通用的openai-completionsprovider 家族与之对接。读完本篇你可以独立完成 ds4-server 的启动与验证、编写 OpenClaw 的 provider 配置含按需启动localService、理解 DeepSeek 风格thinking/reasoning_effort参数的底层契约并用一键命令完成模型路由与 Agent 工具调用的冒烟测试。1. ds4 在 OpenClaw 中的定位纯配置 provider非内置插件ds4 不是一个随 OpenClaw 分发的 provider 插件它只是一个实现了 OpenAI 兼容 Chat Completions 协议的外部服务。OpenClaw 通过models.providers.ds4这个配置项接入它之后即可选择ds4/deepseek-v4-flash作为模型引用model ref。核心属性如下属性值Provider idds4插件无纯配置接入APIOpenAI 兼容 Chat Completionsopenai-completionsBase URLhttp://127.0.0.1:18000/v1推荐Model iddeepseek-v4-flashTool callsOpenAI 风格tools/tool_callsReasoningDeepSeek 风格thinking与reasoning_effort从源码结构看OpenClaw 对所有 OpenAI 兼容后端走同一条传输链路api: openai-completions决定了请求以标准 Chat Completions 格式发出而模型级别的compat元数据则负责处理各家后端的协议差异。例如 extra-params.ts 中对deepseek-v4-flash模型 id 有专门判断并对thinkingFormat为deepseek或未设置的后端发出 DeepSeek 原生的thinking: { type }线格式请求——这正是 ds4 配置中compat.thinkingFormat: deepseek的落点。而 model.compat.ts 中的readCompatThinkingFormat负责从 provider 配置里解析compat.thinkingFormat字段供请求构造阶段使用。2. 环境要求与上下文大小警告运行前提支持 Metal 的 macOS 机器一个可用的 ds4 检出目录下称DS4_DIR包含ds4-server可执行文件和 DeepSeek V4 Flash 的 GGUF 模型文件足够的内存容纳你选择的上下文长度——更大的--ctx会在服务启动时分配更多 KV 内存。关键警告OpenClaw 的 agent 回合包含工具 schema 和工作区上下文token 消耗远超一条 curl 消息。--ctx 4096这种极小上下文可能通过直接 curl 测试但完整 agent 运行会报500 prompt exceeds context。做 agent 与工具冒烟测试时至少使用--ctx 32768只有内存充足、且想启用 ds4 Think Max 时才考虑--ctx 393216。3. 快速上手三步走第 1 步启动 ds4-server。将DS4_DIR替换为你的 ds4 检出路径DS4_DIR/ds4-server \ --model DS4_DIR/ds4flash.gguf \ --host 127.0.0.1 \ --port 18000 \ --ctx 32768 \ --tokens 128第 2 步验证 OpenAI 兼容端点curl http://127.0.0.1:18000/v1/models响应中应包含deepseek-v4-flash。第 3 步写入 OpenClaw provider 配置并跑一次性模型检查。添加下面第 4 节的完整配置后执行openclaw infer model run \ --local \ --model ds4/deepseek-v4-flash \ --thinking off \ --prompt Reply with exactly: openclaw-ds4-ok \ --json4. 完整 provider 配置与字段解读以下配置假设 ds4 已在127.0.0.1:18000上运行{ agents: { defaults: { model: { primary: ds4/deepseek-v4-flash }, models: { ds4/deepseek-v4-flash: { alias: DS4 local, }, }, }, }, models: { mode: merge, providers: { ds4: { baseUrl: http://127.0.0.1:18000/v1, apiKey: ds4-local, api: openai-completions, timeoutSeconds: 300, models: [ { id: deepseek-v4-flash, name: DeepSeek V4 Flash (ds4), reasoning: true, input: [text], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 32768, maxTokens: 128, compat: { supportsUsageInStreaming: true, supportsReasoningEffort: true, maxTokensField: max_tokens, supportsStrictMode: false, thinkingFormat: deepseek, supportedReasoningEfforts: [low, medium, high, xhigh], }, }, ], }, }, }, }逐字段说明mode: merge让自定义 provider 与内置模型目录合并而不是整体替换apiKey: ds4-localds4 本地服务无鉴权此值仅作占位满足 provider 契约timeoutSeconds: 300provider 级请求超时避免长生成撞默认超时contextWindow必须与 ds4-server 的--ctx保持一致否则 OpenClaw 会在错误的窗口假设下切分和压缩上下文maxTokens应与--tokens对齐除非你有意让 OpenClaw 向服务端请求比服务端默认更少的输出compat.supportsUsageInStreaming: true允许 OpenClaw 在流式响应中读取 usage 统计compat.maxTokensField: max_tokens声明该后端用max_tokens字段而非其他变体控制最大输出长度compat.supportsStrictMode: false不支持 OpenAI 严格工具模式OpenClaw 会相应放宽工具 schema 约束compat.thinkingFormat: deepseek告知请求构造层使用 DeepSeek 原生thinking线格式见第 1 节的源码说明compat.supportedReasoningEfforts声明后端接受的推理强度档位--thinking或reasoning_effort的取值受此约束。5. 按需启动localService 让 ds4 随模型选择而拉起OpenClaw 支持只在某个ds4/...模型被选中时才启动 ds4。给同一个 provider 条目加上localService即可{ models: { providers: { ds4: { baseUrl: http://127.0.0.1:18000/v1, apiKey: ds4-local, api: openai-completions, timeoutSeconds: 300, localService: { command: DS4_DIR/ds4-server, args: [ --model, DS4_DIR/ds4flash.gguf, --host, 127.0.0.1, --port, 18000, --ctx, 32768, --tokens, 128, ], cwd: DS4_DIR, healthUrl: http://127.0.0.1:18000/v1/models, readyTimeoutMs: 300000, idleStopMs: 0, }, models: [ { id: deepseek-v4-flash, name: DeepSeek V4 Flash (ds4), reasoning: true, input: [text], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 32768, maxTokens: 128, compat: { supportsUsageInStreaming: true, supportsReasoningEffort: true, maxTokensField: max_tokens, supportsStrictMode: false, thinkingFormat: deepseek, supportedReasoningEfforts: [low, medium, high, xhigh], }, }, ], }, }, }, }localService各字段的完整语义在 Local model services 中有权威定义要点包括command必须是绝对可执行路径不会走 Shell PATH 查找也不做~展开args是纯进程参数不做 Shell 展开、管道、glob 或引号解析healthUrl缺省时默认取baseUrl加/models显式写出更稳妥readyTimeoutMs缺省为 120000ds4 冷启动较慢Metal 驻留 模型预热文档建议给到 300000idleStopMs为 0 或省略时由 OpenClaw 拉起的进程会一直存活直到 OpenClaw 退出。工作机制同样见 Local model services模型或嵌入请求解析到该 provider 后OpenClaw 先探测healthUrl健康则复用已运行服务不健康则用commandargs拉起子进程并轮询健康端点直到readyTimeoutMs到期随后请求走正常模型传输。该服务只是最早需要它的 OpenClaw 进程的普通子进程OpenClaw 不会替你安装 launchd、systemd 或 Docker 守护。同一 provider 的启动按 command/args/env 组合串行化并发请求不会重复拉起服务。6. Think Max大上下文 最高推理档的联动开关ds4 只在两个条件同时成立时启用 Think Maxds4-server以--ctx 393216或更高启动请求携带reasoning_effort: max或等价的 ds4 effort 字段。小上下文下会回退到 high 级推理。如果你要跑这么长的上下文需要同步更新服务端参数和 OpenClaw 的模型元数据{ contextWindow: 393216, maxTokens: 384000, compat: { supportsUsageInStreaming: true, supportsReasoningEffort: true, maxTokensField: max_tokens, supportsStrictMode: false, thinkingFormat: deepseek, supportedReasoningEfforts: [low, medium, high, xhigh, max], }, }注意supportedReasoningEfforts在这里比标准配置多了max档位——只有同时声明它OpenClaw 才允许向 ds4 发出reasoning_effort: max请求Think Max 才有可能被触发。7. 验证与冒烟测试三层递进第一层绕过 OpenClaw 的直接 HTTP 检查确认服务端本身可用curl http://127.0.0.1:18000/v1/chat/completions \ -H content-type: application/json \ -d {model:deepseek-v4-flash,messages:[{role:user,content:Reply with exactly: ds4-ok}],max_tokens:16,stream:false,thinking:{type:disabled}}第二层OpenClaw 模型路由检查与快速上手相同openclaw infer model run \ --local \ --model ds4/deepseek-v4-flash \ --thinking off \ --prompt Reply with exactly: openclaw-ds4-ok \ --json第三层完整 agent 工具调用冒烟测试上下文至少 32768openclaw agent \ --local \ --session-id ds4-tool-smoke \ --model ds4/deepseek-v4-flash \ --thinking off \ --message Use the shell command pwd once, then reply exactly: tool-ok output \ --json \ --timeout 240预期结果可用于自动化断言executionTrace.winnerProvider为ds4executionTrace.winnerModel为deepseek-v4-flashtoolSummary.calls至少为1证明 OpenAI 风格tools/tool_calls链路打通finalAssistantVisibleText以tool-ok开头。8. 故障排查curl /v1/models连不上ds4 没在运行或没有绑定到baseUrl中声明的主机/端口。先启动ds4-server再重试curl http://127.0.0.1:18000/v1/models500 prompt exceeds context配置的--ctx对 OpenClaw 的回合来说太小。调大ds4-server --ctx同时把models.providers.ds4.models[].contextWindow改成一致的值。带工具的完整 agent 回合所需上下文远大于一条 curl 单消息。Think Max 不生效ds4 只在--ctx至少为393216且请求要求reasoning_effort: max时才走 Think Max小上下文会回退到 high 推理。另外检查模型元数据的supportedReasoningEfforts是否包含max。首个请求很慢ds4 有冷 Metal 驻留与模型预热阶段。由 OpenClaw 按需拉起服务时把localService.readyTimeoutMs设为 300000避免就绪轮询在预热完成前超时报错。9. 延伸阅读Local model serviceslocalService全部字段的完整语义与冷启动/就绪/空闲停机控制Local models本地模型后端的选择与操作指引Model providersprovider 引用、鉴权与故障转移的通用机制DeepSeekDeepSeek 官方 provider 的原生行为与 thinking 控制可与 ds4 的 DeepSeek 线格式对照阅读。【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表