Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

把「游戏录屏」变成「可复现的自动化脚本」

一个 Windows 桌面自动化流水线:录一段操作 → 多模态模型看懂界面 → 生成步骤清单 → 你在对话里逐条确认 → 产出可离线回放的脚本配置 → 在带 GUI 的「游戏实验室」里运行。

运行时 0 token —— 识别与生成阶段用大模型,回放阶段是纯本地的模板匹配 + 键鼠回放。

定位:这是一个工具(把任意游戏的录屏变成脚本),不是"某个游戏的脚本"。 仓库里的 profiles/ 是示例配置,换游戏要自己录。


它能做什么

① 录制        录屏(只存变化帧)+ 同步采集真实鼠标键盘(毫秒级时间戳)
              ↓
② 视觉分析    多模态模型分段理解 + 控件定位 → 操作清单 JSON + 自动裁模板图
              ↓
③ 讨论确认    在对话里逐条核对("清单可改"),AI 不会闷头写代码
              ↓
④ 生成配置    config.json(步骤 + 模板 + 延时 + 循环段)+ 自动做需求对账 + 模板体检
              ↓
⑤ 运行        离线模板匹配 + 键鼠回放;F8 强停、暂停/继续、切页自动暂停

还支持:视频直接投喂(不用录制窗口,甩个 mp4 走另一条流水线)、 OCR 文本定位(按钮带中文时比像素模板稳)、反应式闭环 (如塔防"巡检补塔"、钓鱼"溜鱼"这类需要看状态做动作的场景)、 拖动/长按(含用录制真值自动校准坐标)。

也内置了一套开发工具(改代码时用,不是运行时):模板体检、按钮定位、 代码快照/回滚、模型代码审查、机械门禁、发布前体检。

📖 完整执行逻辑、19 个踩过的坑与解法、15 项优化的实测收益 → 见 PIPELINE.md


完整执行逻辑

一句话:三条链路,一份 config,同一个引擎回放。

链路 A(主线)录制会话线 —— 有真实点击坐标,定位最准
  录制(变化帧 + 真实键鼠)
    → 选帧(事件锚点 + 画面突变 + 阶段覆盖,≤18 张)
    → 第一问「分段理解」:阶段划分 + 漏段自查
    → 第二问「控件定位」:对每个点击单独求 bbox + 推荐模板帧
    → 自动裁模板 → analysis.json
    → 讨论确认(人工逐条核对清单)
    → 生成 config.json(真值校准 + 需求对账 + 自动模板体检)
    → 离线回放(0 token)

链路 B(支线)视频投喂线 —— 手上只有 mp4 时用
  mp4 → 登记(sha256 内容寻址) → ffmpeg 切片(≤60s, 360p)
    → 逐片视频理解 → 回原片按时间戳抽帧取证 → 问 bbox → 裁模板
    → OpenCV 复核命中率(并区分"常驻 HUD")→ 只放行复核通过的步骤 → config.json

链路 C(支线)反应式闭环 —— 无法用固定步骤表达时用
  固定周期截屏 → 局部视觉判定 → 按键/点击 → 直到满足结束条件
  例:fight_control(钓鱼溜鱼:HSV 找蓝区+小柱子 → 点 A/D)
      guard_repair(塔防巡检:逐格判空 → 选塔 → 左键放置)

运行期 0 token:识别与生成用大模型,回放是纯本地的模板匹配 + 键鼠回放。

📖 详细版见 PIPELINE.md —— 逐阶段输入/输出/失败处理、 19 个踩过的坑(现象→根因→解法→验证)、15 项优化的实测收益、质量保证体系、已知限制。


快速开始

🆕 第一次用(从 GitHub 下载/克隆的)→ 看 QUICKSTART.md —— 从解压到跑通的完整步骤、Key 去哪申请、常见问题(装依赖失败 / 录不到键鼠 / 点不到按钮)。 下面是速查版。

方式一:一键安装(推荐,拿到压缩包就用这个)

解压后双击 setup.bat —— 它会自动完成:

1) 检测 Python 3.12(没装就用 winget 装,或提示你手动装)
2) 建虚拟环境 agent_env/
3) 装依赖(直连失败会自动切清华镜像)
4) 生成 .env 并问你要不要现在填 Key
5) 跑 274 项自检 ← **全绿就是装好了**

方式二:手动装(也就三步)

:: 1) 装环境(需要 Python 3.12)
python -m venv agent_env
agent_env\Scripts\python.exe -m pip install -r requirements.txt

:: 2) 配 Key(填你自己的,见 .env.example 里的说明)
copy .env.example .env
notepad .env

:: 3) 自检(**强烈建议先跑这个**)
agent_env\Scripts\python.exe tools\run_all.py

自检会跑 274 项验收(合成窗口/合成帧,不碰真实游戏、不消耗 API)。 全绿 = 环境没问题,可以开始用。

:: 启动对话 Agent(推荐入口)
agent_env\Scripts\python.exe vision_script_writer.py

:: 或直接开「游戏实验室」GUI
scripts\YourLab\启动游戏实验室.bat

:: 或单独开录制窗口(游戏是管理员权限时,必须用这个)
启动录制窗口(管理员).bat

环境要求

系统 仅 Windows(深度依赖 ctypes 取客户区 / pygetwindow 找窗口 / UIPI 提权读键鼠)
Python 3.12(已在 3.12.7 验证)
API Key 视觉 Key 必填(推荐阿里云百炼「按量计费」);写手 Key 可选
其他 目标游戏建议窗口化 1280×720;游戏若是管理员启动,录制/运行也需管理员

关键概念(踩过的坑,写在这里省你时间)

  • 客户区坐标系:全项目统一用「游戏画面那块」(客户区),不含标题栏和边框。 Windows 上 pygetwindow 给的是外框(实测异环外框 1296×759,客户区正好 1280×720)—— 用外框会导致点击位置线性偏移(屏幕底部偏 ~38px)。项目已修正,见 screen_geom.py
  • 模板体检:坏模板(纯色块/裁错)会让"点击位置不对"。生成配置时会自动体检, 报 bad_template(匹配不上)或 not_discriminative(到处都命中)都必须处理。
  • 平坦区域陷阱TM_CCOEFF_NORMED 在低对比度区域会病态虚高(纯色块能到 1.000), 所以判据模板要裁有纹理/边框的局部。
  • 管理员权限:游戏以管理员启动时,普通权限程序采不到键鼠(Windows UIPI)—— 录制窗口必须提权,否则 inputs.jsonl 里点击坐标是空的。

目录结构

vision_script_writer.py   对话 Agent(入口):21 个工具,编排整条流水线
screen_capture.py         录屏采集(变化帧去重 + 操作瞬间强制补帧)
input_logger.py           键鼠采集(与帧时间轴对齐)
record_gui.py             录制按钮窗口
vision_analysis.py        两段式视觉分析(分段理解 → 控件定位)
screen_agent_generator.py 步骤 → config.json(含需求对账 + 真值校准)
requirement_gate.py       需求对账门禁(需求 vs 产物的机器化校验)
profile_notes.py          游戏档案(跨会话记住坑/标定值/失败记录)
template_check.py         模板体检
locate_button.py          按钮定位(OCR + 颜色连通域 + 邻帧验证)
snapshot.py               代码快照/回滚(改代码前的后悔药)
code_review.py            模型代码审查(带项目坑清单)
tools/                    验收测试 + 开发门禁(run_all.py 一把跑完)
scripts/YourLab/          引擎(runner/actor/locate/ocr)+ GUI + 交付产物
  ├─ engine/              步骤解释器、键鼠执行、找图、OCR
  └─ profiles/<游戏>/      config.json + assets/ + requirement.json + notes.json
captures/                 录制会话(已 gitignore)
work/                     分析产物(已 gitignore)

常用命令

:: 全部验收(改代码后必跑)
agent_env\Scripts\python.exe tools\run_all.py

:: 只跑相关验收(按改动文件自动挑)
agent_env\Scripts\python.exe tools\verify_change.py

:: 模板体检 / 按钮定位
agent_env\Scripts\python.exe template_check.py 异环_咖啡店营业
agent_env\Scripts\python.exe locate_button.py --frame frame_0191.jpg --session 20260914_181442 --text 领取

:: 代码快照(改核心代码前)
agent_env\Scripts\python.exe snapshot.py create "改 XXX 之前"
agent_env\Scripts\python.exe snapshot.py diff --lines 60
agent_env\Scripts\python.exe snapshot.py restore <快照id>

:: 发布前体检
agent_env\Scripts\python.exe tools\pre_release.py

已知限制

  • 只支持 Windows,没有跨平台计划(桌面自动化的前提就是真实桌面)。
  • 运行时要和游戏同一台机器(这不是云端服务)。
  • 长录制有上限:喂给模型的日志约 10 万字符,密集操作约 9 分钟;超过会被截断 (会打警告)。建议按"一个可复现的闭环"录(几十秒~几分钟),循环用 config.loop
  • 需要 Key 才能用识别功能;录制、回放、OCR 是纯本地的,不需要 Key。
  • 游戏自动化请遵守目标游戏的服务条款,自用风险自负

License

MIT(见 LICENSE

About

一个将「游戏录屏」转化为「可复现自动化脚本」的 Windows 桌面流水线。多模态模型理解界面生成步骤,人工确认后产出离线配置。运行时 0 token,纯本地模板匹配与键鼠回放,不修改游戏内存/文件。仅供桌面自动化技术学习与效率工具研究,自用风险自负,在准备之前请先阅读quickstart.md文件辅助你的安装,请先阅读相关md文件明白清楚再安装,这是一个学生的作品,希望能获得你们的建议,后续优化的部分增加可录制脚本的时长上限,分辨率大小可调整,如果有问题希望能给我提出建议我会优化采纳。

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages