-
使用 MLX 在 Mac 上本地运行 AI 智能体
在本地运行 AI 智能体,兼顾隐私保护、低延迟和离线访问。深入了解 MLX 改进和 Mac 硬件如何彼此配合,让强大的智能体工作流程能完全在设备端实现。你将探索 OpenCode 等编码智能体,看看这些智能体如何集成到 Xcode 中;还将了解实现多台 Mac 扩展的技巧,以及不用切换设备就能无缝整合各种工具的做法。
章节
- 0:00 - Introduction
- 0:32 - The chat and agentic loop
- 2:42 - Local agentic AI stack
- 4:36 - Setting up your own agent
- 5:39 - Making agents fast
- 6:53 - Concurrency and distributed inference
- 9:20 - More examples
- 13:01 - Next steps
资源
- MLX Swift LM on GitHub
- MLX Swift Examples
- MLX Examples
- MLX Swift
- MLX LM - Python API
- MLX Explore - Python API
- MLX Framework
- MLX
相关视频
WWDC26
WWDC25
-
搜索此视频…
你好 我是Angelos MLX团队的工程师
今天我来展示如何构建 并完全在你的Mac上 使用MLX运行智能体AI工作流 无需云端 无需API密钥 只靠你的硬件完成工作 过去一年里 AI智能体 已从研究原型 演变为日常生产力工具 但在讨论智能体之前 先来看看我们之前有什么
这是你熟悉的对话体验 你向语言模型发送提示 模型返回响应 如果你需要基于响应 执行命令 检查文件或修复错误 这些都需要你自己来做 但现在你在与智能体交互 智能体与模型交互 以决定下一步操作 然后它调用工具来实际执行 运行命令 读取文件 调用API—— 它观察结果并返回模型 以确定下一步 用户到智能体 智能体到模型 智能体到工具 这就是智能体循环 它不断循环 直到任务完成 这在Apple silicon上 尤为令人兴奋 整个循环可以在本地运行
你的数据留在本机 AI随时随地可用 且无需使用费用 现在让我展示 实际效果是什么样的
这是一个在我Mac上 本地运行的智能体 屏幕上可以看到设置 左侧是运行模型的MLX 右侧是我正在使用的 OpenCode智能体
我请它获取MLX仓库 的最近Pull Request 总结变更内容并指出 需要我关注的事项 模型分析请求 调用GitHub CLI获取PR数据 读取差异内容 并生成简洁摘要 这一切都在本地完成 模型在我的硬件上运行 只有git命令会访问网络 看来这个视频结束后 我还有很多工作要做 现在你已经看到了可能性 让我带你了解今天 我们将如何实现它 我们首先介绍 本地智能体AI技术栈 让一切成为可能的四个层次 从底层的MLX 一直到顶层的智能体 然后我将一步一步展示 如何搭建你自己的本地智能体 之后我们看看MLX如何 充分发挥你的硬件性能
让智能体运行得更快 最后 我们将进行更多实机演示 包括从零构建SwiftUI应用 以及在Xcode中修复Bug 让我们从技术栈开始
支撑Mac本地智能体AI的 技术栈共有四个层次 让我带你了解每一层 从底部开始 最底层是MLX 我们专为Apple silicon 构建的开源数组框架 它负责所有底层计算 Metal加速和内存管理 这是一切的基础 往上一层是语言模型层 MLX-LM提供 加载 运行 量化 以及微调大型语言模型所需的一切 它支持HuggingFace 上数千个模型 并同时提供CLI工具 和Python API 如果你看过我们去年的议程 这正是我们深入介绍的内容 但为了服务智能体 我们需要更多 一个具有标准API的持久化服务器 这就是MLX-LM Server的用武之地 这是一个兼容OpenAI的HTTP服务器 通过标准API暴露你的本地模型 它支持结构化工具调用 让模型可以可靠地调用函数 以及推理模型可以 逐步分析复杂问题 然后再给出响应 它可以直接替代 任何云端LLM API 技术栈的顶层是智能体本身 这可以是任何框架 或支持OpenAI 聊天补全协议的工具 Xcode OpenCode Pi智能体 自定义脚本或任何其他工具 由于MLX-LM Server 提供标准接口 任何智能体框架都可以开箱即用 不只是我们在构建这个技术栈 多个流行应用和工具 都基于MLX和MLX-LM构建 Ollama LM Studio和vLLM 是其中最受欢迎的几个 生态系统广泛且持续增长 如果你正在使用这些工具 很可能你已经在运行MLX了
这就是整个技术栈 现在让我展示 如何自己搭建一切
只需三个步骤 即可从零到完整的本地智能体工作流 第一步:安装MLX-LM 一条pip install命令 即可获取所需的一切 第二步:启动服务器 使用支持工具调用的模型 运行mlx_lm.server 先用小模型测试你的配置 始终是个好主意 服务器启动并加载模型 准备好在本地主机上 接受请求 第三步:将智能体 指向本地服务器 在大多数智能体框架中 只需将base URL设置为 本地服务器地址 就完成了 智能体不知道也不关心 模型是在你的Mac上运行 还是在云端
让我展示一个具体示例 这是OpenCode的配置 我们定义一个本地提供者 具体来说 我们将URL 设置为本地主机 并设置服务器期望的模型名称 我们还告诉OpenCode 对所有内容使用这个本地模型 就这样 现在每次交互都通过 你的本地模型进行
现在智能体已经与MLX通信 让我们来看看MLX如何 充分发挥你的硬件性能 并解决在本地运行 智能体的主要挑战
第一个挑战是提示处理 在智能体工作流中 每次模型收到工具输出 它必须先处理所有新上下文 才能推理下一步
这在整个智能体循环中 反复发生 累积很快 智能体会话通常包含 数十万个Token 其中大多数并非生成的
M5芯片引入了专用的 Neural Accelerator MLX可以针对这类工作 专门使用它们 具体来说 Neural Accelerator 使矩阵乘法 在M5上比M4快四倍 配合MLX中专用的 乘法和注意力内核 这几乎直接转化为 提示处理速度的提升
减少提示处理时间意味着 你的智能体可以读取代码库 或处理工具结果的速度 快近四倍 最棒的是什么? 使用Neural Accelerator 不需要任何特殊参数 或修改你的代码 MLX会为可用硬件 自动选择最佳内核
现在来聊聊 第二个挑战:并发 实际上 智能体很少单独工作 常见的模式是一个智能体 派生多个子智能体 每个子智能体并行处理 问题的不同部分 一个可能在读取文档 另一个在搜索代码 第三个在编写测试 三者同时进行 这意味着多个请求 同时发送到你的本地模型 MLX-LM Server通过 连续批处理来处理这个问题
它不是逐个处理请求 而是将进入的请求 动态分组为批次 并在GPU上一起处理 新请求可以加入正在进行的批次 无需等待 当前批次完成 结果是你的子智能体 不会在队列中等待停滞 它们都被并发处理 这让整个智能体工作流 持续运转 最后 第三个挑战 是模型大小 有时单台机器 即使有512GB内存 也不够用 因为模型 太大无法装入内存 以最新的DeepSeek模型为例 它拥有1.6万亿个参数 仅权重就需要超过 800GB的内存 MLX的分布式支持让你 可以跨多台Mac分散模型 通过Thunderbolt或以太网连接 对智能体来说 这在两方面很强大 首先 它让你可以运行 更大 更强大的模型 这些模型无法在单台机器上运行 其次 它在设备间 并行化提示处理 这直接加速智能体循环 因为模型可以更快地 处理工具结果
使用MLX-LM Server 设置分布式推理 相当简单 使用mlx.launch启动服务器 以及包含节点信息 和连接类型的主机文件 模型自动分片到 所有可用设备 其他一切都自动工作 从macOS 26.2开始 我们支持Thunderbolt RDMA 通过Thunderbolt提供 低延迟 高带宽通信 因此 使用MLX的分布式推理 性能显著提升 四节点最高可达三倍速度 要了解如何为MLX分布式推理 设置你的Mac 请查看我们的议程 "Explore distributed inference and training with MLX" 还记得我们之前 的PR摘要演示吗? 那是一个简单的读取并报告任务
现在让我们更进一步 看看会发生什么 当我们要求智能体 从零开始编写整个项目 然后修复现有项目中的Bug
在这个演示中 我将请智能体 从零构建一个小型 SwiftUI应用
我从一个空白的Xcode项目开始 请智能体为iPad 构建一个绘图应用
它开始了 智能体首先查看当前目录 以了解现有的项目结构 制定实现计划 然后开始编写代码 使用智能体意味着 无需复制或构建项目 智能体写好文件 然后构建应用 修复过程中遇到的任何错误
好了:模型完成了 只用了几分钟就创建了 应用的第一个版本 与此同时 我在Xcode中打开了项目 并在模拟器中启动应用
让我们看看智能体创建了什么
看起来我们有了 一个功能完整的绘图应用 对于2分钟内构建出来的东西 真的很不错 不过使用智能体编程 我们可以持续迭代 直到我们满意为止 例如 我更喜欢圆形端点 我觉得它们看起来更好 让我们请智能体添加它们
智能体会编辑代码 并重新编译应用 直到编译无错误
让我们测试新版本
我们现在有了圆形端点 确实很酷 更酷的是这一切都在本地发生 模型通过MLX-LM Server 在这台Mac上运行 智能体使用了标准开发工具 比如xcodebuild来验证 和构建其工作成果
最后一个演示 让我们看看可以 直接集成 到你的开发环境中的功能
这里我在Xcode中 打开了同一个绘图应用项目 让我们将Xcode连接到 我们已经运行中的MLX服务器 打开设置并导航到 Intelligence标签页 点击"添加Chat提供者..." 并选择本地托管提供者 将端口设置为8080或我们 启动MLX服务器时选择的端口 就完成了 现在Xcode可以与 我们的本地模型通信
我在之前正常工作的 应用中引入了一个Bug 现在我们可以请模型修复它
几秒钟内 它就识别了Bug 并检查周围的代码 最后 它写出了修复方案 我们现在可以构建并运行应用
这展示了本地运行的智能体 如何与你在Xcode中 现有的开发工作流集成 读取项目文件 理解构建错误 并进行有针对性的修复 本地AI意味着你的代码 永远不会离开你的Mac
今天 我们展示了在Mac上 本地运行智能体AI的完整技术栈 从MLX一直到智能体 以及Neural Accelerator 连续批处理 和分布式推理如何让它更快 要开始 安装MLX-LM 启动服务器 并将你喜欢的智能体指向它 我们今天展示的一切 都是开源的 现在就可以使用 感谢观看 我很期待看到你用
Mac上的本地智能体AI构建的作品
-
-
4:40 - Set up MLX-LM and start the local server
# Step 1: Install MLX-LM pip install mlx-lm # Step 2: Start the server mlx_lm.server --model mlx-community/Qwen-3.5-4B-8bit # Step 3: Point your agent to the server curl -X POST \ http://127.0.0.1:8080/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"model":"default_model","messages":[{"role":"user","content":"Hello!"}]}' -
5:18 - Configure an agent to use your local MLX server
{ "$schema": "https://opencode.ai/config.json", "model": "mlx/default_model", "small_model": "mlx/default_model", "provider": { "mlx": { "npm": "@ai-sdk/openai-compatible", "name": "MLX (local)", "options": { "baseURL": "http://127.0.0.1:8080/v1" }, "models": { "default_model": { "name": "Default MLX Model" } } } } } -
8:33 - Launch distributed inference with MLX
mlx.launch --hostfile hosts.json \ --backend jaccl \ /remote/path/to/mlx_lm.server \ --model mlx-community/Qwen-3.5-122B-A3B-8bit
-
-
- 0:00 - Introduction
Overview of building and running agentic AI workflows entirely on Mac using MLX — no cloud, no API keys, just your hardware.
- 0:32 - The chat and agentic loop
How traditional chat differs from the agentic loop: the model decides what to do, calls tools to run commands, read files, and hit APIs, observes the results, and iterates — all running locally for privacy and offline availability.
- 2:42 - Local agentic AI stack
A walkthrough of the four-layer stack powering local agentic AI on the Mac: MLX (array framework for Apple Silicon), MLX-LM (model loading, quantization, and fine-tuning), MLX-LM Server (OpenAI-compatible HTTP server), and the agent layer — including popular tools like Ollama, LM Studio, and vLLM.
- 4:36 - Setting up your own agent
Three steps to go from zero to a fully local agentic workflow: install MLX-LM with pip, start the server with a tool-calling model, and configure your agent to point at the local endpoint.
- 5:39 - Making agents fast
How MLX tackles the first challenge of agentic workloads — efficiently processing large contexts with hundreds of thousands of tokens — including how M5 Neural Accelerators accelerate prompt processing speed.
- 6:53 - Concurrency and distributed inference
How MLX handles continuous batching for concurrent multi-agent requests, and distributed inference to spread large models across multiple Macs over Thunderbolt.
- 9:20 - More examples
Two-part live demo building SwiftUI apps entirely on-device. First, using OpenCode with MLX to generate a complete SwiftUI project from a description; then, using Xcode's agentic coding capabilities to build and fix a SwiftUI app — all running locally.
- 13:01 - Next steps
Summary of the full local AI stack and practical steps to get started: install MLX-LM, launch the server, and connect your agent. All shown tools are open-source and available now.