# macMLX v0.8.0

当前版本：有界、权重安全、可重启保留且非阻塞的冷 SSD KV 缓存。

## 直接回答

v0.8.0 是当前审计基线。它对分层 SSD KV 缓存进行加固：冷层按字节约束并最旧优先清理、以权重身份守护使替换后无法提供陈旧 KV、由可在重启后保留的持久跨会话索引支撑，并将写入迁出缓存 actor，使一次 spill 不再阻塞其他请求。标签版发布记录与更新日志是权威依据；复用仍仅为精确最长前缀，不含块共享或分页 KV 分配。

- 规范网址：https://macmlx.app/zh/releases/v0-8-0/
- 最后核验：2026-07-19

## 页面事实

- **Apple 芯片 macOS 安装** — 已发布; 始于 0.1.0; 最后核验 2026-07-19. macMLX 支持运行 macOS 14 或更高版本的 Apple 芯片 Mac。 请使用项目当前安装与 Gatekeeper 指南；不要仅为打开应用而关闭系统级安全保护。
- **Swift 进程内推理** — 已发布; 始于 0.1.0; 最后核验 2026-07-19. 默认引擎在 Swift 进程内加载并运行 MLX 模型。 模型加载、生成、缓存与服务通过 MacMLXCore 使用 Apple MLX；默认推理路径不需要 Python 运行时。
- **Apple 芯片统一内存** — 已发布; 始于 0.1.0; 最后核验 2026-07-19. MLX 数组使用 Mac 的 CPU/GPU 共享内存系统。 统一内存减少 CPU 编排与集成 GPU 计算之间的显式传输，但模型权重、激活值和 KV 缓存仍会占用有限的物理内存。
- **共享代码，进程内各自运行** — 已发布; 始于 0.1.0; 最后核验 2026-07-19. 应用与 CLI 都导入 MacMLXCore，推理和服务由核心负责。 两个产品共享实现与行为；当应用和 CLI 分别运行在不同进程时，它们不会共享同一个内存中引擎实例。
- **默认路径无需 Python** — 已发布; 始于 0.1.0; 最后核验 2026-07-19. 已发布的默认引擎为 Swift 原生，不需要 Python 运行时。 可选兼容引擎可能使用子进程与其他运行时，因此这并不表示项目任何地方都没有 Python。
- **OpenAI 端点兼容** — 已发布; 始于 0.5.3; 最后核验 2026-07-19. 聊天、传统补全、模型列表与嵌入使用兼容的请求和响应结构。 兼容范围按端点界定。/x/models 下的模型加载与卸载是 macMLX 扩展，不属于 OpenAI 兼容的模型管理。
- **Anthropic Messages 兼容** — 已发布; 始于 0.5.3; 最后核验 2026-07-19. v0.5.3 提供 POST /v1/messages，并支持流式响应。 这里只兼容 Messages API，不代表兼容完整 Anthropic API。
- **部分 Ollama 端点** — 已发布; 始于 0.3.7; 最后核验 2026-07-19. macMLX 支持 /api/version、/api/tags、/api/show、/api/chat 与 /api/generate。 该兼容层自 v0.3.7 起提供；它只覆盖选定端点，不是完整 Ollama API 的无差别替代。
- **MCP 服务端** — 已发布; 始于 0.5.0; 最后核验 2026-07-19. CLI 可向 MCP 客户端提供本地推理能力。 MCP 服务端在 v0.5.0 发布，与聊天侧调用外部工具的路由功能不同。
- **MCP 客户端池** — 已发布; 始于 0.5.3; 最后核验 2026-07-19. v0.5.3 包含受管理的 MCP 客户端连接。 客户端池负责管理外部 MCP 进程与连接；聊天侧集成工具路由是另一个在 v0.6.0 发布的能力。
- **聊天集成工具路由** — 已发布; 始于 0.6.0; 最后核验 2026-07-19. v0.6.0 为 OpenAI、Anthropic 与 GUI MCP 循环交付多轮工具路由。 各协议的验证明确约束工具调用历史；该路由与 MCP 服务端及客户端池基础设施不同。
- **本地嵌入** — 已发布; 始于 0.5.3; 最后核验 2026-07-19. POST /v1/embeddings 已在 v0.5.3 发布。 系统可以检测编码器模型家族，但若使用不合适的聊天模型，仍可能生成缺乏语义保证的向量。
- **双编码器重排 MVP** — 已发布; 始于 0.5.3; 最后核验 2026-07-19. POST /v1/rerank 对独立嵌入的文本计算余弦相似度。 这一已发布 MVP 不是交叉编码器重排器。
- **精确前缀 RAM 与 SSD 缓存** — 已发布; 始于 0.5.0; 最后核验 2026-07-19. 内存热层与内容寻址 SSD 冷层支持提升和降级。 v0.5.0 发布的缓存复用完整精确前缀，不包含已发布的块共享或分页 KV 分配。
- **Trie 最长前缀复用** — 已发布; 始于 0.6.0; 最后核验 2026-07-19. v0.6.0 可复用最长兼容缓存词元前缀。 多轮提示可裁剪到最长公共前缀，只增量预填充新增后缀，同时用量统计仍按完整提示计算。
- **有界模型池** — 已发布; 始于 0.5.0; 最后核验 2026-07-19. 预算、LRU 淘汰、固定、冷切换、空闲 TTL 与探针共同约束多模型使用。 模型池在 v0.5.0 发布并于 v0.5.3 加固；它不是统一自适应控制器。
- **受支持的 LoRA 适配器** — 已发布; 始于 0.5.0; 最后核验 2026-07-19. 原生引擎可应用受支持的 LoRA 适配器。 适配器兼容性取决于基础架构与权重，不宣称通用 LoRA 兼容。
- **检测 14 个 VLM 家族** — 已发布; 始于 0.5.3; 最后核验 2026-07-19. 模型库可检测 14 个视觉语言 model_type 家族。 这是有证据支持的家族数量，不保证每个检查点或处理器变体都能加载。
- **DeepSeek V3.2 Swift 覆盖层** — 已发布; 始于 0.5.3; 最后核验 2026-07-19. v0.5.3 包含 DeepSeek V3.2 架构的纯 Swift 组件对齐实现。 真实检查点冒烟测试仍待完成，且缺少 FP8 反量化，因此不构成端到端或通用 MoE 声明。
- **资格门控的连续批处理** — 已发布; 始于 0.6.0; 最后核验 2026-07-19. v0.6.0 仅在真实并发下批处理符合条件的稠密文本请求，并自动回退到串行路径。 标签版 4 客户端基准测得 2.5–3.2× 聚合吞吐量；VLM、推测解码、Ollama、Anthropic 与嵌入仍保持串行。
- **固定预填充准入节流** — 已发布; 始于 0.6.0; 最后核验 2026-07-19. 固定 prefillBatchSize 限制每个调度步骤接纳的行数。 已发布的节流采用固定配置，并非规划中的自适应内存控制器。
- **结构化输出** — 已发布; 始于 0.6.0; 最后核验 2026-07-19. v0.6.0 支持 response_format 的 json_object 与明确界定的 JSON Schema 子集。 不支持的 Schema 关键字返回 400；VLM 与结构化输出、工具与结构化输出都是不支持的组合，会被明确拒绝而非静默降级。
- **推测解码** — 已发布; 始于 0.6.0; 最后核验 2026-07-19. v0.6.0 通过 API 与 GUI 交付经典草稿模型路径。 接受率遥测用于呈现草稿效率；若目标使用不可裁剪的混合或线性注意力缓存，系统会检测并回退到标准解码。
- **API 兼容功能包** — 已发布; 始于 0.6.0; 最后核验 2026-07-19. v0.6.0 新增 logit_bias、logprobs 与 top_logprobs、XTC、逐请求 LoRA 适配器和 tools。 明确的兼容矩阵约束参数组合，不支持的配对返回 400，而不会静默降级。
- **KV 缓存量化** — 已发布; 始于 0.6.0; 最后核验 2026-07-19. v0.6.0 为兼容请求开放 kv_bits、kv_group_size 与 quantized_kv_start。 这些参数改变 KV 缓存精度，而非模型权重精度；非正数 kv_bits 会禁用该功能，兼容矩阵会拒绝不支持的模型或请求组合。
- **Hugging Face 缓存发现** — 已发布; 始于 0.6.0; 最后核验 2026-07-19. v0.6.0 可发现配置的 Hugging Face 缓存根目录中的模型，无需重复下载权重。 发现仅确认本地候选项，并不保证通用加载；架构、分词器、处理器与检查点兼容性仍然适用。
- **逐模型聊天模板覆盖** — 已发布; 始于 0.6.2; 最后核验 2026-07-19. v0.6.2 按用户文件、内置 model_type、检查点模板的顺序解析模板。 内置覆盖具备标准路径等价性证据，但模板支持并非通用；检查点特定分支与 swift-jinja 不支持的语法仍可能构成边界。
- **Track G 已测试模型** — 已发布; 始于 0.6.2; 最后核验 2026-07-19. v0.6.2 新增四个通过检查点实测的原生模型家族。 真实检查点生成实测：Seed-OSS-36B 4-bit 为 18.2 tok/s；Hunyuan V1 Dense 1.8B 4-bit 为 80.3 tok/s；Cohere Command R7B 7B 4-bit 为 21.7 tok/s；MiniCPM3-4B 4-bit 为 18.7 tok/s。结果仅适用于对应检查点，不构成整个家族的性能保证。
- **InternLM3 理论支持** — 理论支持; 始于 0.6.2; 最后核验 2026-07-19. v0.6.2 交付通过等价性验证的 InternLM3 代码，支持等级为理论级。 真实生成尚未得到演示。公开检查点提供 tokenizer.model，但没有 tokenizer.json，而 Swift 分词器栈需要 tokenizer.json；在该加载路径边界改变前，支持仍为理论级。
- **temperature 与 top-p** — 已发布; 始于 0.1.0; 最后核验 2026-07-19. temperature 与核采样 top-p 是已发布参数。 它们是当前已开放的核心采样控制。
- **硅活动面板** — 已发布; 始于 0.7.0; 最后核验 2026-07-19. 新的主窗口活动标签页显示实时 Apple 芯片读数、预填充/解码吞吐拆分，以及当前推理瓶颈与相应建议。 面板读取 GPU 占用、内存带宽、热与内存压力以及各电轨功耗，无需管理员权限或辅助进程。它是可观测性，而非性能保证：不可用的计数器会显示破折号并给出原因，空闲引擎显示无活动生成，估算值会被标注而非当作实测值。
- **推理瓶颈分类器** — 已发布; 始于 0.7.0; 最后核验 2026-07-19. v0.7.0 将硬件采样与引擎实时的预填充或解码阶段融合，归因限制生成的因素。 由于分类器在进程内运行，它知道当前处于哪个推理阶段——这是外部 GPU 监视器无法获取的信号。它是经过平滑的启发式判断，而非性能剖析器：优先级为内存高于热、热高于计算或带宽，应用迟滞与三帧平滑，并自校准带宽上限，因此结论是指引而非真值测量。
- **免 sudo 的硅采样** — 已发布; 始于 0.7.0; 最后核验 2026-07-19. 运行时 IOReport 桥接与一组采样器读取 GPU 占用、内存带宽、热与内存压力以及 ANE 功耗。 IOReport 桥接通过 dlopen 解析，因此未来若某个 macOS 重命名或移除该私有框架，读数会降级为不可用而非无法启动。内存带宽以估算值呈现，ANE 提供功耗代理且不虚构利用率百分比，而无占空比信号的媒体引擎则被省略而非猜测。
- **基准瓶颈归因** — 已发布; 始于 0.7.0; 最后核验 2026-07-19. 基准运行在生成过程中采样硅指标，并将限制其解码稳态的因素附加到保存的结果上。 归因给出解码限制项（内存、热、带宽或计算）及其置信度和背后的代表性硬件。过短而无法归因的运行会报告为不可用，而不是编造结论；低置信度或基于估算的判断会被标注。它描述的是一次实测运行，而非家族级基准保证。
- **OCR 模型识别** — 已发布; 始于 0.7.0; 最后核验 2026-07-19. 专用 OCR 检查点会获得区别于通用 Vision 徽章的 OCR 徽章，且 GLM-OCR 已端到端验证。 GLM-OCR 通过原有 VLM 路径加载，无需新增模型代码，并能读回图像文字。该徽章刻意保持克制：仅出现在真正能加载的模型上，因此被检测到但尚未移植的 OCR 家族（如 dots_ocr 或 deepseek-ocr）不会获得徽章。这是模型识别，而非通用 OCR 质量声明。
- **字节有界的冷 KV 层** — 已发布; 始于 0.8.0; 最后核验 2026-07-19. v0.8.0 将磁盘冷 KV 缓存约束到明确的字节预算，按最旧优先清理，并提供关闭冷层的开关。 此前无上限的冷目录现遵循 Cold（SSD）预算，并同时接入 Hot（RAM）预算；首次启动时超出预算的目录会被裁剪，且只移除可再生的缓存，而非模型文件或设置。它并未新增块共享或分页分配；已发布的缓存仍只复用完整精确前缀。
- **以权重身份守护的冷条目** — 已发布; 始于 0.8.0; 最后核验 2026-07-19. v0.8.0 将每个冷条目与模型权重身份指纹绑定，使权重替换后无法再提供陈旧 KV。 指纹覆盖模型 config 及每个 safetensors 分片；若同一路径后续换成重新下载、重新量化或替换的权重，陈旧条目会被拒绝并删除，而不是恢复为静默错误的输出。它是冷层复用的完整性守护，而非对所有缓存路径的正确性证明，也不改变已发布的精确前缀复用语义。
- **跨会话的持久冷索引** — 已发布; 始于 0.8.0; 最后核验 2026-07-19. v0.8.0 持久化冷索引，使最长前缀复用可在重启后跨会话保留。 延续更早会话提示的后续轮次可直接从磁盘复用共享前缀；缺失、不可读或版本不匹配的索引会降级为精确命中，绝不会导致错误输出。复用仍为精确前缀，而非规划中的分页或块共享虚拟化；持久索引只是把既有的最长前缀复用延伸到进程重启之后。
- **脱离 actor 的冷层写入器** — 已发布; 始于 0.8.0; 最后核验 2026-07-19. v0.8.0 将冷层写入从缓存 actor 迁移到专用的串行后台写入器。 持久化被逐出的 KV 快照（大型缓存可达数百毫秒）不再阻塞其他请求的缓存查找；写入通过临时文件加重命名原子落盘，磁盘上的结果保持不变。它将磁盘写入迁出以保持存储 actor 的响应性，并不改变缓存内容或已发布的复用语义。
- **分页 KV、块共享与 CoW** — 规划中; 始于 future; 最后核验 2026-07-19. 分页分配、共享块与写时复制分支处于规划阶段。 这些缓存虚拟化能力均未在 v0.8.0 发布。
- **统一自适应内存守卫** — 规划中; 始于 future; 最后核验 2026-07-19. 跨缓存、模型池与并发的反馈控制器处于规划阶段。 已发布的内存探针和模型池上限是独立机制，不能称为该守卫。
- **扩展采样控制** — 规划中; 始于 future; 最后核验 2026-07-19. top-k、min-p、presence、frequency 与 repetition 惩罚项，以及逐请求 seed 处于规划阶段。 DeepSeek 专家路由 top-k 是架构内部操作，与用户采样 top-k 无关。

## 来源

- https://github.com/magicnight/mac-mlx/releases/tag/v0.8.0
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/README.md
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Engine/MLXSwiftEngine.swift
- https://ml-explore.github.io/mlx/build/html/usage/unified_memory.html
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Server/HummingbirdServer.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/CHANGELOG.md
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/MCP/MCPClientPool.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/MCP/ToolCallingSession.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Engine/EmbeddingEngine.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Engine/RerankScoring.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/PromptCache/PromptCacheStore.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/PromptCache/PromptTrie.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/ModelPool/ModelPool.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Managers/ModelLibraryManager.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Models/DeepseekV32.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Batching/BatchScheduler.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Engine/MLXSwiftEngine+BatchGenerationServing.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Constraint/ResponseFormatDecoder.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Engine/SpeculativeDecodingUsage.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Engine/GenerateRequest.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Engine/ChatTemplateOverride.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/docs/model-support.md
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Models/InternLM3.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Managers/ModelParametersStore.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/macMLX/macMLX/Views/Activity/ActivityView.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Silicon/SiliconMonitorModel.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Silicon/BottleneckClassifier.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Silicon/BottleneckVerdict.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Silicon/IOReportReader.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Silicon/IOReportSiliconSampler.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Silicon/BenchmarkBottleneck.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Models/BenchmarkResult.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/Models/LocalModel.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/PromptCache/PromptCacheConfig.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/PromptCache/PromptCacheKey.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/PromptCache/ColdIndex.swift
- https://github.com/magicnight/mac-mlx/blob/v0.8.0/MacMLXCore/Sources/MacMLXCore/PromptCache/ColdTierWriter.swift
- https://github.com/magicnight/mac-mlx/blob/main/docs/superpowers/specs/2026-07-10-engine-scroll-story-design.md
- https://github.com/magicnight/mac-mlx/blob/main/MacMLXCore/Sources/MacMLXCore/Managers/ModelParametersStore.swift

## 相关页面

- [不混淆路线图的版本状态](https://macmlx.app/zh/releases/)
- [按任务与内存选择模型](https://macmlx.app/zh/models/)
- [macMLX v0.7.0（历史版本）](https://macmlx.app/zh/releases/v0-7-0/)
