雀魂智能辅助系统Akagi:技术架构与实战应用解析
雀魂智能辅助系统Akagi是一款基于深度学习的麻将策略分析工具,通过实时游戏数据捕获与神经网络决策模型,为玩家提供精准的牌局分析和策略建议。系统采用模块化设计,集成协议解析、数据处理和AI推理功能,既满足初级玩家的基础策略需求,又为进阶玩家提供深度技术分析支持,实现娱乐与竞技水平提升的双重价值。
技术原理:从数据捕获到智能决策
中间人代理数据捕获机制
Akagi采用中间人(Man-in-the-Middle)代理技术实现游戏数据的实时获取。系统通过拦截雀魂客户端与服务器之间的网络通信,利用协议解析模块(protocol.py)对加密数据进行解码,提取出牌局状态、玩家行为等关键信息。这一过程涉及TCP流量拦截、Protobuf协议解析(liqi.proto)和数据标准化处理三个核心步骤,确保原始数据转化为AI模型可理解的特征向量。
多层神经网络决策引擎
系统核心AI模块(mjai/bot/model.py)采用改进的深度残差网络架构,包含以下关键组件:
- 特征提取层:将牌局状态(手牌、牌河、剩余牌数)转化为128维特征向量
- 策略网络:使用3层卷积网络(Conv2D)分析牌效率和听牌概率
- 价值网络:通过LSTM循环层评估当前局势的胜率期望
- 蒙特卡洛树搜索(MCTS):结合历史数据进行多步决策推演,生成最优打牌策略
模型训练采用监督学习与强化学习相结合的方式,使用超过100万局职业比赛数据进行预训练,再通过自我对弈优化策略网络参数。
模块化系统架构设计
Akagi采用松耦合的模块化架构,主要包含五大核心模块:
- 数据采集模块(mitm.py):负责网络流量拦截与原始数据捕获
- 协议解析模块(protocol_pb2.py):处理Protobuf格式数据解码
- 数据处理模块(common.py):实现牌局数据标准化与特征工程
- AI决策模块(model.py):执行神经网络推理与策略生成
- 用户交互模块(gui.py):提供可视化界面与操作交互
各模块通过消息队列实现异步通信,确保实时性的同时提高系统稳定性。
应用实践:从环境部署到高级应用
多平台环境部署指南
Windows系统部署
- 克隆项目仓库:
git clone https://gitcode.com/gh_mirrors/ak/Akagi - 运行自动化安装脚本:
run_akagi.bat - 按照向导完成Python环境配置与依赖安装(requirements.txt)
- 启动系统:
python main.py
macOS系统部署
- 克隆项目仓库:
git clone https://gitcode.com/gh_mirrors/ak/Akagi - 终端执行安装命令:
chmod +x run_akagi.command && ./run_akagi.command - 系统会自动配置mitmproxy证书与Python虚拟环境
- 启动系统:
python3 main.py
基础功能使用流程
-
系统启动与连接
- 运行主程序后,系统自动启动代理服务(默认端口8080)
- 在雀魂客户端中配置代理服务器为localhost:8080
- 点击"连接游戏"按钮建立数据捕获通道
-
实时分析功能启用
- 在游戏开始后,点击界面"启用AI分析"按钮
- 系统会自动显示当前手牌的最佳打牌建议(绿色高亮)
- 鼠标悬停可查看详细分析(向听数、进张概率、铳率评估)
-
历史数据复盘
- 游戏结束后,数据自动保存至
mjai/online.json - 点击"复盘分析"选择对应对局
- 系统生成完整决策树与关键节点分析报告
- 游戏结束后,数据自动保存至
高级应用场景配置
自定义AI模型集成
- 将训练好的模型文件(.pth格式)放置于
mjai/bot/目录 - 修改
config.json中"model_path"参数指向新模型文件 - 调整"analysis_depth"参数控制分析深度(1-5,数值越高精度越高)
- 重启系统使配置生效
多账号配置与切换
- 在
settings.json中添加多账号配置:"accounts": [ {"name": "main", "server": "cn", "auto_login": true}, {"name": "test", "server": "jp", "auto_login": false} ] - 启动时通过命令行参数指定账号:
python main.py --account test
价值拓展:技术创新与行业应用
技术选型对比分析
| 技术方案 | 优势 | 劣势 | Akagi采用策略 |
|---|---|---|---|
| 基于规则的决策系统 | 速度快、可解释性强 | 复杂局面处理能力弱 | 作为神经网络的补充,处理简单规则场景 |
| 传统机器学习模型 | 训练成本低、资源消耗少 | 特征工程依赖人工 | 用于辅助特征提取,降低神经网络复杂度 |
| 深度强化学习 | 自学习能力强、策略灵活 | 训练周期长、资源需求高 | 核心决策引擎,结合监督学习加速收敛 |
| 纯蒙特卡洛搜索 | 决策全面、考虑长远 | 计算量大、实时性差 | 与神经网络结合,减少搜索空间提升速度 |
Akagi创新性地将深度神经网络与蒙特卡洛树搜索相结合,在保证决策质量的同时将单次分析时间控制在100ms以内,满足实时性需求。
性能优化实践指南
计算资源优化
-
GPU加速配置
- 确保安装CUDA Toolkit 11.0+
- 修改
config.json中"use_gpu"为true - 验证:启动时日志显示"GPU acceleration enabled"
-
内存占用控制
- 调整
model.py中BATCH_SIZE参数(建议值:8-32) - 启用内存缓存:设置"cache_enabled": true
- 定期清理:添加定时任务调用
common.clean_cache()
- 调整
算法效率优化
-
剪枝策略优化
- 在MCTS中设置"prune_threshold": 0.1(剪枝概率低于10%的分支)
- 实现动态深度调整:复杂局面增加搜索深度
-
预计算机制
- 预生成常见牌型的特征向量(
resource.py中配置) - 缓存开局10巡内的标准策略库
- 预生成常见牌型的特征向量(
常见误区解析
技术认知误区
-
"AI建议100%正确"
- 实际:AI基于概率模型给出最优解,但麻将存在随机性,建议仅供参考
- 正确使用:结合自身判断,AI建议作为决策辅助而非唯一依据
-
"配置越高效果越好"
- 实际:分析深度与性能消耗成正比,普通配置建议使用默认参数
- 优化方向:根据设备性能调整
config.json中"analysis_depth"参数
操作使用误区
-
代理配置错误导致无法连接
- 排查步骤:检查系统代理设置→测试8080端口是否占用→查看
mitm.log错误信息
- 排查步骤:检查系统代理设置→测试8080端口是否占用→查看
-
模型文件放置位置错误
- 正确路径:所有模型文件必须放置在
mjai/bot/目录下 - 验证方法:启动时检查日志"Model loaded successfully"信息
- 正确路径:所有模型文件必须放置在
项目发展与社区参与
未来发展路线图
-
短期计划(3个月内)
- 优化移动端适配性,支持安卓模拟器运行
- 增加多语言支持(日语、英语)
- 提升低配置设备的运行效率
-
中期计划(6个月内)
- 引入对手行为预测模型,提升策略针对性
- 开发Web端远程分析平台
- 支持自定义规则(如地方麻将变种)
-
长期计划(12个月内)
- 构建开放模型训练平台,允许用户贡献数据
- 开发AR实时分析功能
- 建立麻将AI竞技排行榜
社区参与指南
代码贡献流程
- Fork项目仓库并创建特性分支:
git checkout -b feature/your-feature - 提交代码前运行测试:
python -m pytest tests/ - 提交PR时需包含详细功能说明与测试报告
反馈与建议渠道
- 提交Issue:通过项目仓库Issue功能报告bug或建议
- 社区讨论:加入项目Discord频道(链接见README)
- 邮件联系:dev@akagi-mahjong.com
Akagi作为开源项目,欢迎所有麻将AI爱好者参与开发,共同推动智能麻将辅助技术的发展与创新。通过技术交流与社区协作,我们致力于打造更智能、更易用的麻将策略分析工具,为广大麻将爱好者提供技术支持与策略指导。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0152- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
LongCat-Video-Avatar-1.5最新开源LongCat-Video-Avatar 1.5 版本,这是一款经过升级的开源框架,专注于音频驱动人物视频生成的极致实证优化与生产级就绪能力。该版本在 LongCat-Video 基础模型之上构建,可生成高度稳定的商用级虚拟人视频,支持音频-文本转视频(AT2V)、音频-文本-图像转视频(ATI2V)以及视频续播等原生任务,并能无缝兼容单流与多流音频输入。00
auto-devAutoDev 是一个 AI 驱动的辅助编程插件。AutoDev 支持一键生成测试、代码、提交信息等,还能够与您的需求管理系统(例如Jira、Trello、Github Issue 等)直接对接。 在IDE 中,您只需简单点击,AutoDev 会根据您的需求自动为您生成代码。Kotlin03
Intern-S2-PreviewIntern-S2-Preview,这是一款高效的350亿参数科学多模态基础模型。除了常规的参数与数据规模扩展外,Intern-S2-Preview探索了任务扩展:通过提升科学任务的难度、多样性与覆盖范围,进一步释放模型能力。Python00
skillhubopenJiuwen 生态的 Skill 托管与分发开源方案,支持自建与可选 ClawHub 兼容。Python0112