前言
AI时代来临,身边不少技术人员或者科技爱好者对 AI Agent 的理论能聊得头头是道,但真正动手在本地跑起来一个能操作电脑的 Agent 的,少之又少。原因无非是:模型选型踩坑、权限配置劝退、消息通道搞不定、工具调用格式对不上......
本系列文章将基于我的 iMac (M4 芯片 + 24GB 内存),用 Ollama + OpenClaw + 飞书快速搭建一个可用的本地 Agent。 本系列文章设计每篇聚焦一个难点,贴关键代码、与大家探讨一下原理、附实测数据,确保真实可复制验证,且知道为什么这样设计。
本文是系列第一篇,聚焦整体架构与技术选型。
一、为什么要做本地 Agent?
在深入架构之前,先明确需求:我想要一个随时可以通过聊天软件(飞书)向我的 iMac 发送指令,让它帮我操作应用、获取信息、执行自动化任务的AI工具。
云端方案虽然成熟,但有两个无法回避的问题:
-
数据隐私:所有屏幕截图、文件内容、应用状态都要经过第三方服务器。
-
成本与延迟:频繁调用 GPT-4 级别模型,月账单可能远超预期,且网络往返增加延迟。
本地 Agent 则将推理(LLM)+ 执行(操作系统交互) 全部放在自己的 iMac 上。M4 芯片的 24GB 统一内存根据网上的信息来看,流畅运行 7B 参数的量化模型,配合 Ollama 的 Metal 加速,首次推理延迟控制在 2~3 秒,缓存命中后亚秒级响应------完全具备实用价值。
二、全链路架构:在开始前,先了解一下大致的框架,五层职责清晰
┌─────────────────────────────────────────────────────────┐
│ 飞书客户端(自建ai助手应用支持用户输入自然语言指令) │
└─────────────────┬───────────────────────────────────────┘
│ HTTPS + 事件回调(加密)
┌─────────────────▼───────────────────────────────────────┐
│ Flask 接入层(端口 5000) │
│ - 验证签名、解密消息(AES) │
│ - 提取用户 open_id 和文本 │
│ - 异步处理(避免飞书 3 秒超时) │
└─────────────────┬───────────────────────────────────────┘
│ 调用 Agent(HTTP)
┌─────────────────▼───────────────────────────────────────┐
│ OpenClaw 核心(Agent 引擎) │
│ - 维护系统提示词(工具列表、角色约束) │
│ - 将用户消息 + 历史 + 工具 Schema 构造成 Chat 请求 │
│ - 解析模型返回的 tool_calls,路由到对应函数 │
└─────────────────┬───────────────────────────────────────┘
│ Ollama REST API(/api/chat)
┌─────────────────▼───────────────────────────────────────┐
│ Ollama 服务(本地推理引擎) │
│ - 加载量化模型(如 Qwen、Llama、kimi等) │
│ - 利用 Metal 加速推理 │
│ - 返回 JSON 格式的 tool_calls 或纯文本 │
└─────────────────┬───────────────────────────────────────┘
│ Python 系统调用 / subprocess
┌─────────────────▼───────────────────────────────────────┐
│ macOS 执行层(Accessibility API + AppleScript) │
│ - 模拟键盘鼠标、获取 UI 元素、控制应用 │
│ - 执行 shell 命令、读写文件 │
└─────────────────────────────────────────────────────────┘
三、技术选型: Ollama + OpenClaw + 飞书?
参考文章:
四、iMac M4 芯片 + 24GB 内存的配置考量
本系列所有代码和实测均基于以下环境:
-
硬件:iMac M4,24GB 统一内存
-
系统:macOS Sequoia 15.x
-
模型:Ollama 0.13.x,qwen、llama等支持工具调用的大模型
五、实操截图
飞书创建群组,将创建的两个ai助手拉到群组中,助手们可互相通信。(虽然还有点搞不清楚状况。。)两个助手分别对接了不同的模型。对接相同模型的情况并没有测试,根据各类技术文章来看,貌似也可正常运行。

六、系列预告
下一篇计划探讨 OpenClaw 的工具注册机制,手写第一个 macOS 专属 Tool。
如果你正准备落地本地 Agent,欢迎在评论区留下你的评论。动手是最好的学习方式,我们一起填坑。