软件案例 / 真实工作流
录放台 浏览器操作录制回放
在受控浏览器里录制一次网页操作,整理成可审阅、可编辑的工作流;之后一键按原步骤回放,数据全部留在本机。
背景
导出报表、巡检页面、批量填表这类重复网页操作,每次都要手动点一遍;自动化脚本编写门槛高,页面一改就失效,密码也不好处理。希望“录一次,以后点一下”就能完成,并且录到的每一步都可审阅、可修正。
核心功能
受控浏览器录制与步骤合并、定位器审阅、匹配数与唯一性校验、JSON Schema 与执行语义双层校验、秘密库只存引用名,按 Windows 账户加密、结果证据分类与从失败步重试、Agent API 与 MCP 工具接口
工作流程
受控录制 → 审阅与校验 → 秘密引用 → 一键回放 → 结果与续跑
录下来,还要审得清
录制把连续输入合并成一次 fill,并说明其他事件被丢弃的原因。审阅页为每一步列出候选定位器(role、label、test_id、text、css)和它们在当前页面的匹配数量,多匹配与找不到的步骤会被明确标出。
- 定位值、顺序和完成条件都可编辑,重新校验唯一性后再保存。
- 「试运行草稿」按当前草稿立即执行一次,不必先保存。
- 保存前必须通过 JSON Schema 与执行语义两层校验,有阻塞项时无法保存。
结果按证据说话
运行结果分为完成、完成·未验证、未确认、失败、已取消:动作是否发出、是否被验证决定归类。未确认不会被判成成功;从失败步重试只执行剩余步骤,已发出的动作绝不重跑。
- 密码类输入只记录“这是敏感字段”,不记录内容。
- 秘密库按当前 Windows 账户(DPAPI)加密在本机,缺值时运行被直接拦下。
- 运行历史记录事实日志;程序重启后不会自动续跑。
给 Agent 的工具接口
本机接口只监听 127.0.0.1,把工作流库变成一组带 schema 的工具:查看、校验、保存与回放,另经 MCP 桥接供任意 MCP 客户端调用。写入与回放必须显式确认,秘密值在任何工具响应中都不返回。
- 工具按读取、写入、执行分级,执行类返回步骤时间线与结果分类。
- 保存被双层校验拦截时返回阻塞项,Agent 不需要读源码即可修正。
- 数据全部留在本机,运行不依赖云服务。
操作与迭代
录一次操作
在受控浏览器里按正常习惯操作页面:连续输入合并为一次 fill,其他事件列出丢弃原因;密码类输入只记录“这是敏感字段”,不记录内容。
审阅、校验并回放
审阅页列出每一步的候选定位器与匹配数量,多匹配和找不到的步骤被明确标出;通过 JSON Schema 与执行语义双层校验后保存,回放按原步骤执行并输出证据化结果。
从“能用”到“可审阅”
最初只想要“录完就能放”,但页面一变回放就断。把候选定位器、匹配数量和结果分类做成显式的审阅界面后,出错时能直接看到是哪一步、为什么;修正定位值再重放,比改脚本快得多。
真实软件界面

实现方法
Python / Playwright / JSON Schema / Windows DPAPI / AGENT API / MCP
个人职责
需求定义 / 产品规划 / 工作流分析 / AI 辅助开发 / 界面实现 / 测试与迭代
我从需求出发设计产品和工作流程,通过 Vibe Coding 完成开发,也负责功能验证、界面迭代和交付整理。
实际使用结果
形成日常可用的本机自动化工具:录制、审阅、校验、回放、运行历史与秘密库齐备,工作流库还能作为带 schema 的工具被任意本机 Agent 调用。
项目问答
密码是怎么处理的?
工作流只保存秘密引用名,真实值按当前 Windows 账户(DPAPI)加密保存在本机;缺值时运行被直接拦下并指出引用名,任何工具响应都不返回秘密值。
运行结果为什么会分为五类?
完成、完成·未验证、未确认、失败、已取消按动作是否发出、是否被验证划分。未确认表示动作已发出一次但无法判断页面是否生效,不会被判成成功;从失败步重试只执行剩余步骤,已发出的动作绝不重跑。
Agent 如何使用录放台?
本机接口只监听 127.0.0.1,把工作流库开放为一组带 schema 的工具(查看、校验、保存、回放),另经 MCP 桥接供任意 MCP 客户端调用;写入与回放必须显式确认,工具按读取、写入、执行分级。