命令行工具
MaaAssistantArknights/MaaAssistantArknights avatar
MaaAssistantArknights/MaaAssistantArknights

MAA 评测:用图像识别把明日方舟日常任务交给脚本,值不值得?

|用于执行 Arknights 日常任务的一键式工具,支持所有客户。

23,264 个 Star2,841 个 ForkC++AGPL-3.0

秒懂

它是什么?
MAA 是一款基于图像识别的明日方舟日常任务自动化工具,支持全客户端与多语言接口。本文从机制、上手、局限与替代方案四个角度评估其适用性。
适合谁用?
MAA 适合两类人:一是国服玩家,愿意花半小时配置并接受脚本偶尔识别失败,二是开发者,想研究或扩展图像识别任务流程。不适合外服重度玩家,因为文档明确承认国际服、日服、韩服、繁中服功能未经全面测试,遇到 Bug 只能自行体验。
能商用吗?
可以,但条件严格。AGPL-3.0 是网络 copyleft 许可证:如果别人通过网络使用你修改过的版本(例如作为托管服务),你必须以同一许可证向他们提供源代码。
还在维护吗?
在维护。仓库最近一次提交在 1 天前。
用什么语言写的?
主要是 C++(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月14日)和我们的分析,不构成法律意见。

开源项目深度解析

它解决的是重复点击,不是游戏策略

明日方舟的日常任务,刷理智、收信用、换基建班次、公招刷新,都是固定操作,但每天要花十几分钟手动点。MAA 把这一层重复劳动自动化了。它不替代你的决策,比如高星公招选哪个干员,它只负责识别界面并执行预设动作。README 里明确写着基于图像识别技术,一键完成全部日常任务。这意味着它不读取游戏内存,不修改客户端文件,而是像人一样看屏幕、点屏幕。适合的人群很具体:每天上线但不想手动清日常的玩家,以及想用脚本批量管理多个账号的玩家。不适合追求极限作战或新活动首日探索的人,因为那些场景需要实时判断,MAA 的作业系统依赖社区上传的 JSON 文件,存在滞后。

图像识别加任务流程,机制比想象中直接

MAA 的核心是 OpenCV 做图像匹配,PaddleOCR 做文字识别,然后用任务流程协议把识别结果串成动作。它截取游戏画面,找到对应按钮或文本,再通过 Minitouch 或 MaaTouch 模拟触控。整个流程由任务描述文件驱动,文档里给出的任务流程协议和回调消息协议说明,每个任务可以定义条件、动作和超时。基建换班是其中较复杂的模块,它自动计算干员效率并支持跨设施组合,这背后是游戏数据的静态解析,不是实时计算。掉落识别则上传到企鹅物流和一图流,属于数据回传,不是核心自动化。这套机制的优势是通用,换外服或新活动,只要截图和 JSON 调整就能适配,README 的外服适配教程也强调这一点。但代价是识别依赖截图质量,分辨率、缩放比例、模拟器型号都会影响成功率。

从下载到跑起来,命令和配置都在文档里

安装不是一条命令搞定的事。你需要先读新手上路文档,然后从官网或 Releases 页面下载对应版本。Windows 用户直接运行 GUI,Linux 和 macOS 用户走 CLI。CLI 支持在无图形界面的服务器上运行,适合挂机。具体命令在 CLI 使用指南里,比如 maa 命令配合 config 文件指定客户端类型和任务列表。配置的关键键包括客户端类型(国服、国际服等)、显示设置、任务开关。如果你要集成到自己的程序,C 接口是基础,头文件在 include/AsstCaller.h,示例在 src/Cpp/main.cpp。Python 接口在 src/Python/asst/asst.py,Golang 在 src/Golang,还有 Java、Rust、Dart 和 Woolang 接口。每个接口都有示例代码,但文档没有给出完整的端到端集成教程,你需要自己读源码。

外服支持是最大短板,文档自己承认了

README 里外服支持那段话写得很直白:国际服、日服、韩服、繁中服的绝大部分功能均已支持,但由于外服用户较少及项目人手不足,很多功能并没有进行全面的测试。这不是谦虚,是实际状态。国服每天有大量用户反馈,外服只能靠社区催更。如果你玩外服,遇到基建识别错位、公招词条识别错误,大概率要自己截图改 JSON 适配,或者等 Issue 被处理。更麻烦的是,游戏客户端更新后,MAA 需要同步适配,外服的更新时间往往比国服长。这个短板对轻度外服玩家可能无所谓,日常任务就那几样,但对依赖 MAA 清日常的重度玩家,一次适配失败就可能断签。

接口多但深度不一,集成前先看示例

README 列了九种接口,从 C 到 Woolang,看起来覆盖面很广。但实际深度差别大。C 接口是核心,其他语言都是绑定。Python 和 Golang 示例完整,Java 有 easySample,Rust 有 HTTP 接口。Dart 和 Woolang 只有接口文件,没有独立示例。TypeScript 接口不在本仓库,在 MaaX 项目的 coreLoader 里。集成文档和回调消息协议写得比较详细,但任务流程协议和自动战斗协议需要你理解 JSON 结构。对普通用户来说,这些接口不是必需品,GUI 已经够用。但对想写自定义脚本的人,Python 接口是最快的入口,sample.py 里能看到基本调用流程。如果你只想用现成功能,接口部分可以跳过,不影响日常使用。

AGPL-3.0 和额外用户协议,不是随便能改的

MAA 使用 AGPL-3.0-only 许可证,并附带额外用户协议。这意味着如果你修改了代码并部署为网络服务,必须开源修改后的源码。对个人用户没影响,但如果你想把 MAA 集成到商业产品里,AGPL 的传染性会要求你的整个服务端代码开源。额外用户协议还规定,logo 不是 AGPL 授权,不得未经许可用于商业用途。README 声明部分还提到,如果有人用 MAA 做代练并收费,产生的问题与软件无关。这些条款对普通玩家只是阅读成本,但对想二次开发的公司是硬约束。另外,项目依赖的 PaddleOCR、onnxruntime 等库各有自己的许可证,集成时要注意兼容性。文档没有提供完整的许可证清单,你需要自己检查。

替代方案:手动脚本与 MaaFramework 的取舍

如果你不想用 MAA,最简单的替代是 ADB 命令加截图脚本,自己写循环点击。这种方式灵活,但需要你懂 shell 或 Python,而且没有图像识别,界面一变脚本就废。另一个替代是 MaaFramework,MAA 的关联项目,README 称其为全新框架。它把 MAA 的图像识别和任务流程抽象成通用工具,你可以用它开发其他游戏的自动化。区别在于,MAA 是成品,开箱即用,MaaFramework 是半成品,需要你写任务定义。如果你只想自动化明日方舟,MAA 更省事。如果你想做更通用的自动化工具,MaaFramework 更合适,但学习曲线陡。还有商业的自动化工具,比如按键精灵,但那些不针对明日方舟优化,识别准确率低,而且不提供掉落上传这类数据功能。

编辑结论

MAA 适合两类人:一是国服玩家,愿意花半小时配置并接受脚本偶尔识别失败,二是开发者,想研究或扩展图像识别任务流程。不适合外服重度玩家,因为文档明确承认国际服、日服、韩服、繁中服功能未经全面测试,遇到 Bug 只能自行体验。不适合对账号安全极度敏感的人,任何自动化工具都有封号风险,MAA 的用户协议也未承诺豁免。采用前先验证三件事:确认你的客户端版本与 MAA 最新 release 匹配,阅读 docs.maa.plus 上的新手上路,检查你的显示分辨率和缩放比例是否在支持列表内。MAA 的边界很清楚,它是为日常长草设计的,不是为高难作战或新活动首日开荒设计的,认清这个边界再决定是否引入。

官方来源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社区笔记

社区笔记