
MTPLX Anthropic 协议接入实战/v1/messages 端点、流式输出与工具调用完整详解【免费下载链接】MTPLXThe fastest way to run Qwen 3.8 Flash Next, Qwen 3.8 27B and Ternary Bonsai 2 27B on a Mac: 125 tok/s in OpenCode on an M5 Max, and a 27B model on 16 GB Macs. Native MTP speculative decoding on Apple Silicon, exact at any temperature. OpenAI and Anthropic compatible local server.项目地址: https://gitcode.com/gh_mirrors/mt/MTPLXMTPLX 是目前在 Mac 上运行 Qwen 3.8 Flash Next、Qwen 3.8 27B 与 Ternary Bonsai 2 27B 最快的本地推理引擎内置原生 MTP 投机解码并提供 OpenAI 与 Anthropic 双兼容的本地服务器。本文带你完整掌握 MTPLX 的 Anthropic 协议接入/v1/messages端点如何使用、流式输出SSE事件如何逐条映射以及工具调用tool_use块是怎么实现的——让你的本地模型直接对接 Anthropic SDK 与 Claude Code 风格客户端。一、MTPLX 的 Anthropic 协议是什么简单来说MTPLX 服务端把 Anthropic 格式的请求翻译成内部统一的 chat 推理路径与/v1/chat/completions完全同源再把结果回填成 Anthropic 形状的消息负载返回。端点定义位于 mtplx/server/openai.py 的anthropic_messages路由官方接口说明见 docs/api.md。目前支持的能力清单类别支持项系统提示system支持纯文本或 text content blocks消息体messages[].content支持文本块与 tool_result 块采样参数max_tokens、temperature、top_p、top_k高级控制tools、tool_choice、stop_sequences、thinking输出模式streamfalse整包返回streamtrueSSE 流式此外还有一个轻量端点POST /v1/messages/count_tokens可在不发请求的情况下预估输入 token 数方便客户端做上下文预算管理。二、最快启动步骤三步接入本地服务器第 1 步启动服务器mtplx serve --port 8000第 2 步用 curl 验证 /v1/messages 端点curl http://127.0.0.1:8000/v1/messages \ -H Content-Type: application/json \ -d { model: mtplx, max_tokens: 128, system: Be concise., messages: [ {role: user, content: [{type: text, text: Write one sentence about native MTP.}]} ] }完整示例可参考仓库中的 examples/curl-messages.sh。第 3 步接入 Anthropic Python SDK只需改两个字段——api_key填占位符、base_url指向本地端口即可复用 Anthropic 官方 SDK 的全部类型定义from anthropic import Anthropic client Anthropic(api_keylocal, base_urlhttp://127.0.0.1:8000) message client.messages.create( modelmtplx, max_tokens256, systemBe concise., messages[{role: user, content: Write a tiny Python function that clamps a number.}], ) for block in message.content: if block.type text: print(block.text)完整版见 examples/anthropic-python-client.py。⚠️ 注意非 localhost 绑定如--host 0.0.0.0必须配合--api-key客户端需携带Authorization: Bearer key或X-API-Key: key头。三、流式输出详解SSE 事件逐条映射MTPLX 的流式实现非常巧妙内部引擎产出 OpenAI 风格的 SSE再由_anthropic_stream_from_openai_sse实时转译成 Anthropic 标准事件流。完整生命周期如下message_start— 携带消息 idmsg_前缀、模型名与初始 usagecontent_block_start— 开启一个内容块text / thinking / tool_use 三种之一content_block_delta— 增量事件含三种 deltatext_delta正文增量thinking_delta推理过程增量input_json_delta工具参数 JSON 片段partial_jsoncontent_block_stop— 当前内容块结束message_delta— 携带stop_reason、stop_sequence与完整的累计 usageinput/output tokensmessage_stop— 流结束推理内容如何映射为 thinking 块MTPLX 的 Qwen 推理reasoning内容会自动映射为 Anthropic 的 thinking 块先发出type: thinking的content_block_start随后是连续的thinking_delta事件正文随后在独立的 text 块中恢复输出。客户端如 Anthropic SDK 的流式解析无需任何适配代码即可正确拆分思考与回答。长 prefill 的看门狗保活机制这是一个容易被忽略的实战细节Claude Code 的流式看门狗只被真实消息事件重置不认 SSE 注释或 ping。MTPLX 的解法是——在长 prefill 期间预先打开一个 thinking 块并用空内容的thinking_delta事件打心跳。这样既不累积任何内容又能让 137k–165k token 级别的首轮请求实测场景安全跨越 300s 空闲窗口prefill 完成后模型的真实推理无缝续写在同一块内。四、工具调用实战tool_use 块是如何拼出来的MTPLX 完整实现了 Anthropic 工具调用协议覆盖模型发起调用和客户端回填结果两个方向 模型发起调用下行当模型决定调用工具时流中会先关闭已有的 text/thinking 块再为每个工具调用打开一个tool_use块{type: content_block_start, index: 1, content_block: {type: tool_use, id: call_..., name: get_weather, input: {}}}随后参数以input_json_delta事件逐片段流式输出partial_json字段客户端按 index 拼接即可还原完整 JSON。生成因工具调用结束时message_delta中的stop_reason会正确标记为tool_use并附带mtplx_statsMTP 接受率等引擎统计。 客户端回填结果上行请求侧将工具执行结果以 Anthropic 标准的 tool_result 块放入messages[].content服务端会将其翻译为内部 chat 路径的 tool 消息与tool_call_id精确配对——这正是 mtplx/server/openai.py 中_anthropic_tool_result_id与消息转换函数负责的部分。️ 容错设计未知或畸形的工具输出不会导致挂起或 500 错误而是降级回退为 assistant 文本内容保证长链路 Agent 会话的稳定性。五、常见问题与实战技巧Q1Claude Code 能直接连 MTPLX 吗可以。代码中专门识别了走/v1/messages的 Claude Code 代理请求扁平化的请求头形态保活机制即为它设计。Q2流式 usage 为什么 message_start 里是 0因为 token 统计在生成结束时才已知。桥接层会把完整累计 usage放进message_delta客户端合并时以该事件为准否则会出现 token 计 0 的账单偏差。Q3如何调整流式事件频率使用mtplx serve --stream-interval N将已提交 token 的 SSE 分块合并为每 N 个一批适合偏好低频事件的客户端服务端另有--stream-interval与 App 的 Pi/Hermes 托管配置可联动见 docs/api.md 的 Server Flags 章节。Q4stop_sequences 匹配到了吗匹配结果会回显在message_delta的stop_sequence字段中方便客户端校验终止原因。写在最后MTPLX 把 Anthropic 协议做成了开箱即用的一等公民从system块、thinking 推理流、tool_use工具调用到count_tokens预算接口全部就位而底层引擎仍是 M5 Max 上 125 tok/s 的原生 MTP 投机解码。如果你正打算把 Claude 生态的客户端Anthropic SDK、Claude Code、Open WebUI 等迁到 Mac 本地模型/v1/messages这条路径已经可以直接生产使用了。【免费下载链接】MTPLXThe fastest way to run Qwen 3.8 Flash Next, Qwen 3.8 27B and Ternary Bonsai 2 27B on a Mac: 125 tok/s in OpenCode on an M5 Max, and a 27B model on 16 GB Macs. Native MTP speculative decoding on Apple Silicon, exact at any temperature. OpenAI and Anthropic compatible local server.项目地址: https://gitcode.com/gh_mirrors/mt/MTPLX创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考