端侧 AI Agent 不只是"在本地跑个模型"那么简单。从视觉理解到高效推理,再到自动化应用交付,每一层都有独立的工程挑战。本文以明略科技开源的 Mano-P 全栈架构为例,拆解端侧 Agent 的三层技术栈设计。

一、为什么端侧 AI Agent 需要全栈方案

当前大多数 AI Agent 产品依赖云端大模型 API:用户操作指令发往服务器,模型推理后返回动作序列,再由本地执行器操作 GUI。这种架构在延迟、隐私和离线可用性上存在天然硬伤。

端侧 Agent 的理想形态是:模型运行在用户设备上,数据不出本机,交互延迟足够低。但要实现这个目标,仅有一个小模型远远不够:

  • 模型层:需要在有限参数量下保持 GUI 理解和操作规划能力
  • 加速层:端侧硬件算力有限,必须有针对性的推理加速方案
  • 应用层:Agent 的价值最终体现为自动完成复杂任务,需要稳定的执行框架

这三层能力缺一不可,任何一层的短板都会让端侧 Agent 停留在"Demo 能跑"的阶段。

二、架构总览:三层协同设计

明略科技开源的端侧 Agent 全栈方案包含三个独立仓库,分别对应三层能力:

层级 项目 定位 GitHub
模型层 Mano-P GUI-VLA 视觉语言动作模型 github.com/Mininglamp-AI/Mano-P
加速层 Cider SDK 激活量化推理引擎 github.com/Mininglamp-AI/cider
应用层 Mano-AFK 全自动应用构建框架 github.com/Mininglamp-AI/mano-afk

三层各自独立开源(Apache 2.0 协议),可以单独使用,也可以组合形成完整的端侧 Agent 流水线。

三、模型层:Mano-P — GUI 视觉语言动作模型

3.1 核心设计思路

Mano-P 是一个专为 GUI 操作设计的 VLA(Vision-Language-Action)模型。与通用 VLM 不同,Mano-P 的训练目标不是"看图说话",而是"看到界面 → 理解状态 → 规划动作 → 执行操作"。

3.2 训练方法:三阶段递进

Mano-P 的训练采用三阶段方案,逐步提升模型的 GUI 操作能力:

Stage 1 — Supervised Fine-Tuning (SFT)

基于 OSWorld 等 GUI 操作数据集进行监督微调,让模型学会基本的界面理解和动作映射。

Stage 2 — Offline Reinforcement Learning

利用离线轨迹数据进行强化学习,优化模型在多步操作序列中的决策质量。

Stage 3 — Online Reinforcement Learning

在真实环境中进行在线 RL 训练,模型通过与操作系统的实际交互来修正策略偏差。

3.3 推理机制:Think-Act-Verify 循环

Mano-P 的推理不是一次性输出动作序列,而是采用 Think-Act-Verify 循环:

  1. Think:分析当前屏幕截图,理解任务上下文和界面状态
  2. Act:基于分析结果输出下一步操作(点击、输入、滚动等)
  3. Verify:执行后再次截图,验证操作是否达到预期效果

这种循环机制使 Agent 具备自纠错能力,不会因为一次误操作导致任务失败。

3.4 视觉 Token 剪枝:GSPruning

GUI 截图包含大量冗余信息(空白区域、重复图标),直接送入模型会浪费大量计算资源。Mano-P 引入 GSPruning(Guided Sparse Pruning)机制:

  • 在保留仅 25.09% 的视觉 tokens 时,任务成功率(SR)为 0.370,对比未剪枝 baseline 的 0.390,性能损失极小
  • 换来的是 2-3x 的推理吞吐加速

这意味着端侧设备可以在不显著损失精度的前提下,大幅降低每次推理的计算开销。

3.5 性能数据

模型 Benchmark 得分 备注
Mano-P 72B OSWorld 58.2% 排名第一,第二名 45.0%
WebRetriever NavEval 41.7 Gemini 2.5 Pro: 40.9, Claude 4.5: 31.3

四、加速层:Cider SDK — 激活量化推理引擎

4.1 为什么需要 Cider

Apple Silicon 生态已有 MLX 框架提供高效推理,但 MLX 目前主要支持权重量化(Weight-only Quantization,如 W4A16),即只量化权重、激活值保持 FP16。

Cider SDK 的定位是补充 MLX 缺失的激活量化能力,支持 W8A8W4A8 方案——同时量化权重和激活值。激活量化可以:

  • 减少矩阵乘法中的计算量(INT8 × INT8 比 FP16 × FP16 更快)
  • 降低内存带宽压力
  • 在 Apple Silicon 的 ANE/GPU 上获得更好的硬件利用率

4.2 量化方案对比

方案 权重精度 激活精度 相比 MLX W4A16 加速 平台
Cider W8A8 per-channel INT8 INT8 1.8x prefill 加速 M5 Pro
Cider W8A8 per-group gs=128 INT8 INT8 1.5x prefill 加速 M5 Pro
Cider W8A8 per-group gs=64 INT8 INT8 1.3x prefill 加速 M5 Pro
Cider W4A8 INT4 INT8 1.4-2.2x 范围 M5 Pro

量化粒度越粗(per-channel > per-group),速度越快但精度损失越大。实际部署时需要根据模型和任务做 trade-off。

4.3 精度影响评估

在 CUA Benchmark(M5 16GB 设备)上的测试结果:

量化方案 准确率
W8A16 58.0%
W8A8 54.0%

W8A8 相比半精度激活损失约 4 个百分点,对于端侧实时交互场景,这是一个可接受的精度-速度 trade-off。

4.4 端侧推理性能

Mano-P 4B 在 Apple Silicon 上的实测性能:

芯片 量化方案 Prefill Decode 峰值内存
M5 Pro - - ~80 tok/s -
M4 Pro W4A16 476 tok/s 76 tok/s 4.3 GB

4.3 GB 的峰值内存占用意味着 32 GB 内存的 Mac 可以在运行其他日常应用的同时部署 Agent,不会出现内存压力。

五、应用层:Mano-AFK — 全自动应用构建框架

5.1 定位

Mano-AFK 是端侧 Agent 的"应用交付层"。它的目标是:给定一个产品需求描述(PRD),自动完成从代码生成到部署测试的全流程,零人工干预。

5.2 全闭环流程

PRD 输入 → 代码生成 → 自动部署 → 自动化测试 → Bug 修复 → 交付

每一步都由 Agent 自主完成:

  1. PRD 解析:理解需求文档,拆分为可执行的技术任务
  2. 代码生成:基于任务描述生成代码实现
  3. 自动部署:将生成的代码部署到目标环境
  4. 自动化测试:执行功能测试和回归测试
  5. Bug 修复:根据测试结果自动定位并修复问题
  6. 循环迭代:直到所有测试通过,完成交付

5.3 与模型层的配合

Mano-AFK 底层调用 Mano-P 的 GUI 操作能力:当需要操作 IDE、浏览器、终端时,通过 Think-Act-Verify 循环驱动界面交互。Cider SDK 保证每次推理的响应速度足够快,不会让自动化流程因为等待模型推理而卡顿。

三层协同形成完整链路:Mano-P 提供智能 → Cider 提供速度 → AFK 提供自动化

六、技术细节深入

6.1 Think-Act-Verify 的工程实现

在实际实现中,Think-Act-Verify 循环需要处理几个关键问题:

  • 截图频率:每次 Act 后等待 UI 渲染完成再截图,避免捕获中间态
  • 失败重试:Verify 失败后不是简单重试同一动作,而是回到 Think 阶段重新分析当前状态
  • 超时控制:对整个任务和单步操作都设置超时,防止 Agent 陷入死循环

6.2 GSPruning 的实现原理

GSPruning 不是随机丢弃视觉 token,而是基于注意力分布进行引导式剪枝:

  1. 在前几层 Transformer 中计算每个视觉 token 的注意力权重
  2. 根据权重分布保留信息密度高的 token(如文字区域、按钮、输入框)
  3. 丢弃低信息密度的 token(如纯色背景、重复图案)

这种方式保证了对 GUI 操作关键区域的感知能力不受影响。

6.3 三阶段训练的数据来源

训练阶段 数据来源 规模
SFT OSWorld 操作轨迹 + 内部标注数据 大规模 GUI 操作对
Offline RL 历史成功/失败轨迹 正负样本对比学习
Online RL 真实 OS 环境在线交互 实时反馈优化

七、硬件要求与部署建议

最低配置

  • Mac mini 或 MacBook
  • Apple M4 芯片
  • 32GB 内存

推荐配置

  • Apple M4 Pro / M5 Pro + 32 GB RAM
  • 可同时运行 Agent 和日常办公应用

需要注意的是,当前版本对 Intel Mac 和低于 M4 的 Apple Silicon 设备不提供官方支持。

八、总结

端侧 AI Agent 的核心挑战不在于"能不能在本地跑模型",而在于如何在有限算力下构建一个精度够用、速度够快、能力够全的完整方案。

Mano-P 全栈架构的设计哲学是分层解耦:

  • 模型层专注 GUI 理解和操作规划,通过三阶段训练和 GSPruning 在精度和效率间取得平衡
  • 加速层通过激活量化突破权重量化的速度天花板,为端侧实时交互提供保障
  • 应用层将 Agent 能力封装为自动化工作流,让技术能力转化为实际生产力

三个项目均以 Apache 2.0 协议开源,欢迎在 GitHub 上查看源码、提交 Issue 或参与贡献:

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐