《本地 Agent 实践》系列之一:MacOS+Ollama+OpenClaw+飞书

前言

AI时代来临,身边不少技术人员或者科技爱好者对 AI Agent 的理论能聊得头头是道,但真正动手在本地跑起来一个能操作电脑的 Agent 的,少之又少。原因无非是:模型选型踩坑、权限配置劝退、消息通道搞不定、工具调用格式对不上......

本系列文章将基于我的 iMac (M4 芯片 + 24GB 内存),用 Ollama + OpenClaw + 飞书快速搭建一个可用的本地 Agent。 本系列文章设计每篇聚焦一个难点,贴关键代码、与大家探讨一下原理、附实测数据,确保真实可复制验证,且知道为什么这样设计。

本文是系列第一篇,聚焦整体架构与技术选型。

一、为什么要做本地 Agent?

在深入架构之前,先明确需求:我想要一个随时可以通过聊天软件(飞书)向我的 iMac 发送指令,让它帮我操作应用、获取信息、执行自动化任务的AI工具。

云端方案虽然成熟,但有两个无法回避的问题:

  1. 数据隐私:所有屏幕截图、文件内容、应用状态都要经过第三方服务器。

  2. 成本与延迟:频繁调用 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 + 飞书?

参考文章:

https://blog.csdn.net/qq_40600379/article/details/158467536?ops_request_misc=elastic_search_misc\&request_id=ad459f52d58d35adbefcdef2e21d6ce2\&biz_id=0\&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend\~default-1-158467536-null-null.142^v102^pc_search_result_base9\&utm_term=openclaw × 飞书\&spm=1018.2226.3001.4187

https://blog.csdn.net/ximenpiaofeixue/article/details/158735806?ops_request_misc=elastic_search_misc\&request_id=128fac4d51c1b3b3f898578af5130357\&biz_id=0\&utm_medium=distribute.pc_search_result.none-task-blog-2~all~ElasticSearch\~search_v2-1-158735806-null-null.142^v102^pc_search_result_base9\&utm_term=openclaw 飞书 如何配置多个机器人\&spm=1018.2226.3001.4187

四、iMac M4 芯片 + 24GB 内存的配置考量

本系列所有代码和实测均基于以下环境:

  • 硬件:iMac M4,24GB 统一内存

  • 系统:macOS Sequoia 15.x

  • 模型:Ollama 0.13.x,qwen、llama等支持工具调用的大模型


五、实操截图

飞书创建群组,将创建的两个ai助手拉到群组中,助手们可互相通信。(虽然还有点搞不清楚状况。。)两个助手分别对接了不同的模型。对接相同模型的情况并没有测试,根据各类技术文章来看,貌似也可正常运行。

六、系列预告

下一篇计划探讨 OpenClaw 的工具注册机制,手写第一个 macOS 专属 Tool。

如果你正准备落地本地 Agent,欢迎在评论区留下你的评论。动手是最好的学习方式,我们一起填坑。

相关推荐
Autumn_ing1 小时前
Design.md生成UI怎么验收?举例运营后台的颜色、状态和数据核对
前端·ui·ai·设计系统·paico·ai生成ui·design.md
数商思语行3 小时前
企微、Agent平台与业务系统各管什么:读懂系统图
人工智能·ai·供应链·商业分析·ontology·本体·fde
硅基流动4 小时前
岚图汽车 × 硅基流动:构建统一大模型调度管理平台
人工智能·科技·ai·汽车
土星云SaturnCloud5 小时前
土星云智慧服务区方案:AI视觉+边缘计算+视频存管一体化的全场景智能化落地解析
服务器·人工智能·ai·边缘计算
面包狗AI4S6 小时前
ChatGPT/Codex Windows:本地桌面端应用离线包安装与免安装启动方法(无需管理员权限)
人工智能·windows·ai·chatgpt
xjxijd9 小时前
AI 安全进入爆发周期:智能体安全成下一阶段核心竞争高地
人工智能·安全·ai
wflynn10 小时前
White Circle 提出 RISE 方法可绕过图像生成模型安全过滤
ai·技术
七牛云行业应用10 小时前
DeepSeek Harness 插件 dsh-zen-remote 教程:手机访问、桌面配对与通知配置
人工智能·ai·智能手机·ai编程
信也科技布道师11 小时前
信也AI数字人直播间实践:从单条视频到可复用生产系统
ai·数字人
niucloud-admin11 小时前
NIUCLOUD LITE AI开发文档--系统部署
开发语言·ai