129 lines
10 KiB
Markdown
129 lines
10 KiB
Markdown
---
|
||
name: 票据合规预审助手
|
||
description: "高校报销场景的发票合规性秒级预审:核对字段完整性、购买方税号白名单、开票日期与出差行程逻辑、住宿交通经费标准,对连号、同商家集中开票、节假日开票等风险点红黄灯预警,生成《初审意见单》。"
|
||
version: 1.0.2
|
||
author: 深圳匠厂科技有限公司
|
||
metadata:
|
||
openclaw:
|
||
slug: verify-invoice-default
|
||
platform_kit_min_version: "1.2.11"
|
||
emoji: "🧾"
|
||
category: "财务"
|
||
brands:
|
||
- jiangchang
|
||
- huashang
|
||
developer_ids:
|
||
- 79017 # 开发者本人匠厂用户 ID(设置 → 用户信息 → 复制)
|
||
allowed-tools:
|
||
- bash
|
||
---
|
||
|
||
# 票据合规预审助手(verify-invoice-default)
|
||
|
||
高校财务报销场景的票据合规性"秒级预审":对发票结构化字段执行**四步审核**(字段完整性 → 三方交叉验真 → 经费标准硬约束 → 风控标记),输出 ✅ 通过 / ⚠️ 待确认 / ❌ 驳回 三色清单并生成《初审意见单》HTML 报告。预审结果仅作提示,不构成最终报销结论;发票真伪以人工/官方查验结果为准(可回填)。
|
||
|
||
## Agent / 宿主编排
|
||
|
||
- **Agent 是入口与编排者**:理解用户意图、收集发票字段与报销上下文、选择 Action,并用业务语言解读红黄绿灯结论。
|
||
- 发票照片 → 结构化字段的提取由 Agent 多模态能力(或用户粘贴/手工录入)完成;本技能接收**结构化 JSON** 并做确定性规则审核,不做 OCR、不连接外部系统。
|
||
- 遇到字段大面积缺失(照片模糊/折叠)时,提示用户重拍或补录,不要编造字段值。
|
||
- **RPA功能**:本技能支持从指定网站(sandbox.jc2009.com)自动提取发票信息,需要用户提供登录凭证和浏览器配置目录。RPA功能用于自动化数据采集,不修改外部系统数据。
|
||
|
||
## 能力类型与触发
|
||
|
||
| 你要做什么 | Agent 怎么做 | 进任务中心? |
|
||
|------------|--------------|--------------|
|
||
| 查询初审历史 / 统计 / 查看标准 / 节假日 | 短 CLI:`list-reports` / `stats` / `view-standards` / `list-holidays` | 否 |
|
||
| 预审一张或多张发票(同步秒级) | `run_skill_action` → `prereview-invoice`(`input.invoiceJson` + 上下文) | 否 |
|
||
| 批量预审 input/ 目录 JSON 文件 | `run_skill_action` → `prereview-batch-input` | 是(该 Action 为 async) |
|
||
| 回填人工查验结果 | `run_skill_action` → `mark-verified`(`input.reportId/result/note`) | 否 |
|
||
| 重建《初审意见单》HTML | `run_skill_action` → `render-html` | 否 |
|
||
| 维护税号白名单 / 经费标准 | 数据管理表上操作,或短 CLI:`add-whitelist` / `remove-whitelist` / `set-standard` | 否 |
|
||
| 从网站提取发票信息 | `run_skill_action` → `extract-invoices`(`input.username/password/profileDir`) | 否 |
|
||
| 测试RPA连接 | `run_skill_action` → `test-rpa-connection` | 否 |
|
||
| 查询RPA提取记录 | `run_skill_action` → `list-rpa-invoices` | 否 |
|
||
| 查看RPA提取详情 | `run_skill_action` → `show-rpa-invoice` | 否 |
|
||
| RPA提取统计 | `run_skill_action` → `rpa-invoice-stats` | 否 |
|
||
| 用户只问用法 / 能做什么 | 读根目录 `README.md`;逐步操作再读 `TUTORIAL.md` | — |
|
||
|
||
进不进任务中心**只**看该 Action 的 `executionProfile`(sync 当场返回 / async 进任务中心),与数据管理、对话等触发入口**无关**;每个 Action 都已显式声明 `executionProfile`。
|
||
|
||
本技能为"即时审核"型能力:提交即审、当场出结论,不存在「先准备本地数据、再对外产生副作用」的两段式,因此无需拆分准备与执行;若后续接入需要外部副作用的扩展(如对接报销系统提交),须按「准备 vs 执行」拆分并可由 Agent 分别触发。本技能支持网页RPA功能,用于从指定网站自动提取发票信息,需要账号管理;宿主账号/Profile/租约规范见 `development/ACCOUNT_MANAGER.md`。
|
||
|
||
## 用户意图路由表
|
||
|
||
| 用户意图 | Agent 怎么做 | 进任务中心? |
|
||
|------------------------|--------------|--------------|
|
||
| "帮我预审这张发票 / 查一下这张票能不能报" | 引导用户提供发票字段(照片可由 Agent 读取后转写字段);`run_skill_action` → `prereview-invoice`,`input.invoiceJson` 传结构化字段,差旅场景补 `tripStart/tripEnd/tripCity/staffTitle` | 否 |
|
||
| "这批发票一起预审"(input 目录已放 JSON) | `run_skill_action` → `prereview-batch-input` | 是(因该 Action 为 async) |
|
||
| "查一下我之前预审了哪些 / 结果怎么样" | 短 CLI:`list-reports [--verdict …]`;详情 `show-report --report-id N` | 否 |
|
||
| "我在查验平台查过了,结果是…" | `run_skill_action` → `mark-verified`,`input.result=pass|fail` + 备注 | 否 |
|
||
| "重新生成意见单 / 我要那份 PDF 式报告" | `run_skill_action` → `render-html`;结果在数据管理 HTML 报告侧栏 | 否 |
|
||
| "住宿标准是多少 / 一线城市的上限" | 短 CLI:`view-standards [--category 住宿费]` | 否 |
|
||
| "预审成功率怎么样" | 短 CLI:`stats` | 否 |
|
||
| "把 XX 税号加进白名单 / 改一下住宿标准" | 数据管理表上操作;或短 CLI:`add-whitelist` / `set-standard` | 否 |
|
||
| "从网站提取发票信息" | `run_skill_action` → `extract-invoices`,需要提供用户名、密码和浏览器配置目录 | 否 |
|
||
| "测试RPA连接" | `run_skill_action` → `test-rpa-connection`,需要提供用户名、密码和浏览器配置目录 | 否 |
|
||
| "查看RPA提取记录" | `run_skill_action` → `list-rpa-invoices`,可按批次ID、用户名、状态筛选 | 否 |
|
||
| "查看RPA提取详情" | `run_skill_action` → `show-rpa-invoice`,需要提供记录ID | 否 |
|
||
| "RPA提取统计" | `run_skill_action` → `rpa-invoice-stats` | 否 |
|
||
|
||
**硬规则:**
|
||
|
||
1. `prereview-batch-input` 是本技能唯一 async Action;禁止用 bash 跑它再轮询等待。
|
||
2. 预审输入必须结构化;Agent 不得替用户编造票面字段(金额、税号、日期)。
|
||
3. 预审结论必须向用户说明"不构成最终报销结论";驳回项要读出规则引用。
|
||
4. 发票真伪只提示查验指引;除非用户明确说已在官方平台查验,不得代替用户勾选"已查验"。
|
||
5. 一个业务能力一个 Action,用多个 placements 挂入口;底层同一 `scripts/main.py` CLI。
|
||
6. RPA功能需要用户提供登录凭证和浏览器配置目录;禁止存储用户密码到日志或代码中。
|
||
7. RPA提取的发票数据存储在本地数据库,不自动同步到外部系统。
|
||
|
||
Agent 执行契约细节:`references/CLI.md`、`references/ACTIONS.md`、`references/SCHEMA.md`。
|
||
|
||
## 共享 Python(必读)
|
||
|
||
宿主共享 runtime 在 `{JIANGCHANG_DATA_ROOT}/python-runtime/.venv`,并已前置到 PATH(同时设 `VIRTUAL_ENV`)。短 CLI 一条命令直接跑:
|
||
|
||
```bash
|
||
python {baseDir}/scripts/main.py health
|
||
python {baseDir}/scripts/main.py version
|
||
python {baseDir}/scripts/main.py init-db
|
||
python {baseDir}/scripts/main.py prereview --invoice-json <file|-> [--purpose 文本] [--trip-start YYYY-MM-DD] [--staff-title 职级]
|
||
```
|
||
|
||
- 公共库来自共享 venv 的 `jiangchang-platform-kit>=1.2.11`(包名路径 `jiangchang_skill_core`);不要 vendor。
|
||
- **禁止**用 `uv run python` 跑技能脚本(会建临时环境,缺 `jiangchang_skill_core`);**禁止** Agent 自行 `pip install`。
|
||
- 根目录 `requirements.txt` 只声明技能特有依赖(本技能当前无)。
|
||
- 配置:用户 `.env` 在 `{JIANGCHANG_DATA_ROOT}/{JIANGCHANG_USER_ID}/{slug}/.env`;优先级:进程环境变量 > 用户 `.env` > `.env.example`。
|
||
|
||
## 面向用户问答(LLM 规则)
|
||
|
||
- 本文(`SKILL.md`)是 LLM / OpenClaw 平台读取的技能入口,**不是**用户市场说明。
|
||
- 当用户询问"这个技能是做什么的 / 怎么用 / 适合什么场景 / 用前准备什么 / 得到什么",**必须优先读取**根目录 `README.md`(能力说明)与 `TUTORIAL.md`(逐步用法),并用业务语言回答。
|
||
- **回答「怎么用 / 能做什么」时的要求**:优先读 `TUTORIAL.md`;**禁止**在回答中粘贴 `python …/scripts/main.py …` 或其它命令行(除非用户明确索要命令,或自称技术人员/开发者);**禁止**为答用法去 `dir` / `ls` 列技能目录,或默认打开 `references/`、`development/`。
|
||
- **禁止**向普通用户暴露 JSON 字段名、表名、`error_code` 等实现细节(除非用户明确询问技术实现)。
|
||
- 市场说明 Tab(`README.md`)不含分步操作;排障步骤在 `TUTORIAL.md`「常见卡住怎么办」。
|
||
|
||
## 文档分工
|
||
|
||
| 文档 | 读者 | 用途 |
|
||
|------|------|------|
|
||
| 根目录 `README.md` | 普通用户 | 市场 **说明** Tab(`readme_md`) |
|
||
| 根目录 `TUTORIAL.md` | 普通用户 | 市场 **教程** Tab(`tutorial_md`) |
|
||
| 根目录 `DEMO.md` | 普通用户 | 市场 **演示** Tab(`demo_video_url` + `demo_md`) |
|
||
| 根目录 `CHANGELOG.md` | 普通用户 | 市场 **更新日志** Tab(`changelog`) |
|
||
| `SKILL.md`(本文) | LLM / OpenClaw 平台 | 技能入口、触发与运行契约摘要 |
|
||
| `references/` | Agent 编排 / 调用 | CLI、Action、schema 契约(Agent 主读) |
|
||
| `development/` | 开发者 / AI 编程代理 | 需求、开发教程、测试、深度技术规范 |
|
||
|
||
## 目录约定
|
||
|
||
- CLI 入口固定为 `scripts/main.py`;业务逻辑按 `cli / db / service / util` 分层。
|
||
- 业务表:`invoice_records`(发票登记)、`prereview_reports`(初审意见)、`expense_standards`(经费标准库)、`taxid_whitelist`(税号白名单)、`holiday_calendar`(节假日)。
|
||
- HTML 报告写入技能数据目录 `html/`,重建走固定 Action id `render-html`。
|
||
|
||
## 平台元数据
|
||
|
||
- `metadata.openclaw.developer_ids`:发布后默认可见的用户 ID 列表;**发布前必须替换为本人的匠厂用户 ID**(设置 → 用户信息 → 复制),否则开发期自己无法在市场安装自测。
|
||
- 当 `access_scope = 0`(不公开)时,平台会把 `developer_ids` 中的用户自动补写到 `skill_user_access`。
|