可行性调研报告 — 考勤助手生态扩展
考勤助手 已能自动计算补考勤单(补签到/补签退/年假),但用户仍需手动登录公司内网考勤 Web 系统逐条填写提交。本调研评估用浏览器自动化替代手动操作的可行性。
Node.js 脚本 + Playwright 启动 headless Chromium,自动登录内网系统 → 读取补考勤单 JSON → 逐条填写提交 → 截图存档。
触发方式:用户手动执行 node fill-attendance.js
运行环境:本地/VPS(需连内网或VPN)
✅ 优点:开发简单、单文件可维护、结果可截图审计
⚠️ 缺点:需手动触发、内网/VPN依赖、验证码需人工介入
做成 Hermes 的一个 skill,用户在 Discord 对话中说「帮我填上个月考勤单」→ Hermes 调用考勤助手计算 → 调用 Playwright 自动填写 → 结果反馈到 Discord。
触发方式:Discord 对话自然语言指令
运行环境:VPS(Hermes 服务器)
✅ 优点:对话式触发、实时反馈、全流程自动化、集成考勤助手
⚠️ 缺点:开发复杂度高、依赖 Hermes 框架版本、VPS 需连通内网
| 维度 | 方案A: 独立脚本 | 方案B: Hermes 工具 |
|---|---|---|
| 触发方式 | 手动执行命令 | Discord 对话指令 |
| 开发复杂度 | 中 单文件脚本 | 高 需集成 skill 框架 |
| 运行环境 | 本地 / VPS | VPS (Hermes 服务器) |
| 维护成本 | 低 | 中 依赖 Hermes 版本 |
| 凭证存储 | 环境变量 / 加密文件 | Hermes 加密配置 |
| 结果反馈 | 终端输出 + 截图文件 | Discord 消息 + 截图 |
| 错误恢复 | 脚本重跑 | 对话中重试指令 |
| 适用场景 | 每月一次性批量填写 | 持续使用 / 临时补单 |
| 风险 | 概率 | 影响 | 降级方案 |
|---|---|---|---|
| 登录页有图形验证码 | 中 | 阻断自动登录 | 脚本暂停,通知用户手动输入验证码后继续 |
| 内网需 VPN 才能访问 | 中 | VPS 无法直连 | 脚本在连了 VPN 的本地机器运行 |
| 考勤表单 DOM 结构变化 | 低 | 填写失败 | 脚本检测 DOM,失败时截图 + 报警,手动修复选择器 |
| 提交频率限流 | 低 | 部分被拒 | 每条之间加 2-5 秒随机延迟,模拟人类操作 |
| 账号密码泄露 | 低 | 安全风险 | 使用系统 keyring 或加密环境变量;代码中不硬编码 |
| Session 超时 | 中 | 中途掉线 | 每次操作前检查登录态,过期自动重新登录 |
理由:
| # | 待确认事项 | 重要性 |
|---|---|---|
| 1 | 内网考勤系统的 URL 和登录方式(账号密码/SSO?) | 必须 |
| 2 | 补考勤单页面的表单字段结构(日期/类型/工时/备注等) | 必须 |
| 3 | 是否有图形验证码?频率如何? | 必须 |
| 4 | VPS 是否能直连内网?还是需要 VPN? | 重要 |
| 5 | 提交是否有频率限制? | 重要 |
| 6 | 单次 session 有效期多久? | 建议 |