在线总手册下载材料包常见问题练习1练习2练习3

练习三:三路独立审核同一批报销单,交叉比对

任务

财务审核要准,也要保守:放过一张违规的单据,和错退一张合规的单据,都有代价。这个练习用模式二里“几路独立做同一件事,再比对”的做法:

这里不另设审阅员:三位审核员做的就是审核,比对三份结论本身就是检查。

准备

材料包 03_交叉审核/:

文件或文件夹 内容
报销单据/ 12 张报销单,格式各不相同:报销单、转发邮件、聊天式留言、表格。只读
制度/差旅报销制度_虚构.md 星辰科技有限公司差旅与费用报销制度(节选),审核的唯一依据。只读
审核要求.md 三类结论(通过/退回/人工复核)的定义,每位审核员交的结果文件格式

单据、制度和公司都是教学虚构。

第 0 步:建项目,新开会话

做什么:把 03_交叉审核 拷出来,改名 报销交叉审核,用 VS Code 打开,退出上一个练习的 Claude Code,在这个文件夹里启动 claude。

做对了会看到:欢迎框路径最后一段是 报销交叉审核;文件栏里有 报销单据(12 个文件)、制度、审核要求.md。

第 1 步:自己读制度,翻几张单据

做什么:读一遍 制度/差旅报销制度_虚构.md(七节,一页多),再打开两三张单据看看。

做对了会看到:制度里有住宿按职级分档、一线城市上浮 10%、招待人均上限、同日多张发票、培训要附两样材料、打车单次上限、发票抬头全称、明细加总等于总额,以及一条标着“待确认条款”的日期规定。单据有的是正式报销单,有的是转发了几次的邮件,有的是一段留言,有的是 Excel 导出的表。

第 2 步:同时派三个审核员

做什么:粘贴下面这段话,回车。

这个项目审核 报销单据/ 里的全部报销单。财务审核要准、要保守,所以用“几路独立审,再比对”的做法。你当主控,自己先不审单据。
1. 同时派三个子代理当审核员,代号甲、乙、丙。三人拿到的任务一字不差:按 审核要求.md,对照 制度/差旅报销制度_虚构.md,审核 报销单据/ 里的全部单据,结果分别写进 审核结果/审核员甲.md、审核结果/审核员乙.md、审核结果/审核员丙.md。
2. 三个审核员互相独立:只读 审核要求.md、制度/ 和 报销单据/,不读 审核结果/ 里别人的文件。派活时不要告诉他们你对任何单据的看法。
3. 每个审核员做完只回复一句:文件路径、审了几张。
三份都写好后停下来,告诉我三个文件在哪、各审了几张。

做对了会看到

  1. 三个子代理同时派出,试跑时的屏幕:

    ⏺ 3 background agents launched (↓ to manage)
       ├ 审核员甲审报销单
       ├ 审核员乙审报销单
       └ 审核员丙审报销单
    
  2. 半分钟左右,三行 Agent "审核员…审报销单" finished。主代理停下来,列出三个文件,各审 12 张。

  3. 审核结果/ 里三份文件,每份一张 12 行的表(文件名、单号、申请人、类别、填报金额、结论、制度条款、理由),表后一行合计。

主代理自己数文件时可能数错(试跑时它先说 11 个,后来自己更正为 12 个)。以三份结果文件里的行数为准,不够 12 行的,让它说明漏了哪张。

第 3 步:主控逐单比对

做什么:粘贴下面这段话,回车。

现在你打开三份审核结果,逐单比对,写 审核结果/交叉比对.md:
1. 一张表,每张单据一行:文件名、单号、甲、乙、丙三人的结论、最终结论、说明。
2. 规则:三人结论一致,且都不是“人工复核”,才采纳为最终结论;只要三人不一致,或任何一人判“人工复核”,最终结论一律写“需人工复核”,说明里写清谁判了什么、分歧在哪。
3. 你不重新审单据,也不改三位审核员的结论。
4. 表后写合计:采纳几张(其中通过几张、退回几张)、需人工复核几张。再列出三人金额填报不一致的单据(如果有)。
最后告诉我:几张一致、几张需人工复核。

做对了会看到:屏幕上 Read 3 files、Write(审核结果/交叉比对.md);表里 12 行,每行甲、乙、丙三列和最终结论;“需人工复核”的行,说明里写了谁判什么、分歧在哪。试跑时 9 张采纳、3 张需人工复核;每次跑出的张数可能不同。试跑时表里的一行(甲、乙、丙三列依次是通过、退回、退回):

| 6 | 报销单_ER-202607-020_龚晓菲.md | ER-202607-020 | 通过 | 退回 | 退回 | **需人工复核** |
分歧:甲判通过(深圳住宿 520≤770、打车 100≤150、560+520+100=1280 与填报一致);
乙、丙判退回(明细 560+520+100=1180,与填报 1280 元差 100 元,加总不等于总额,引条款六.2)。
分歧点:同一列示明细的加总结果不同(1280 还是 1180),属金额一致性判断的实质分歧。

560+520+100 等于 1,180,这一张里审核员甲加错了。如果只派甲一个人审,这张单据就直接“通过”了。

第 4 步:你来做人工复核

做什么

  1. 对 交叉比对.md 里每张“需人工复核”的单据,打开原单据和制度,自己判断:通过、退回,还是要找报销人补材料。涉及金额的,自己算一遍。
  2. 对 Claude Code 说出你的判断和理由,让它记进 审核结果/人工复核.md:
新建 审核结果/人工复核.md,按我说的逐张记录,不要改我的判断:
(这里逐张写:单据文件名、我的结论、理由、依据制度第几条)

做对了会看到:人工复核.md 里每张需人工复核的单据一行,结论是你定的,理由写得出依据制度哪一条。三位审核员意见不一致的单据,你能说清谁对、错在哪一步。

第 5 步:回头看一致的那几张

做什么:从“采纳”的单据里挑两张,一张通过、一张退回,打开原单据和制度核一遍。

做对了会看到:你能说出这两张为什么通过、为什么退回,和三位审核员写的理由对得上。三人一致不等于对:三个审核员用的是同一种模型、读的是同一份制度,可能在同一个地方一起看错。比对能挑出“意见不一”的单据,挑不出“三人一起错”的单据,所以采纳的单据也要抽查。

✅ 练习三自查

想一想:三路比两路多花了一路的 token,换来了什么?如果三人里两人判退回、一人判通过,能不能按“少数服从多数”直接退回?财务审核和投票表决有什么不同?


开始之前

在终端里用 Claude Code

和 W04 一样,本手册的操作都在终端里运行 claude:VS Code 菜单“终端 → 新建终端”,在下方终端里输入 claude 回车。VS Code 图形面板里显示的内容和本手册有些地方不一样,按终端写的为准。

什么是“派子代理”

你在对话里对 Claude Code 说“派两个子代理……”,它会把任务写成一段说明交给子代理。子代理在自己的上下文里读文件、写文件,做完只交回一句话;它读过的大段内容不回到你和主代理的这段对话里。主代理要用子代理的成果,就去打开子代理写出的文件。

提示词里直接写“子代理”就行,试跑时不用加英文也能派出来。派出去之后,屏幕上会出现这样几行:

⏺ 2 background agents launched (↓ to manage)
   ├ 写生产与景气交接文件
   └ 写物价与货币交接文件

✻ Waiting for 2 background agents to finish

⏺ Agent "写生产与景气交接文件" finished · 10s

├、└ 后面是主代理给每个子代理起的名字,每次不一样。子代理在后台跑,主代理在等的时候可能先做点别的。行尾提示 ctrl+o to expand 的地方,按 Ctrl + O 可以展开看详细过程,再按一次收起。

💡 常识:权限模式与弹窗

屏幕最下面一行显示当前权限模式,试跑时是 ⏵⏵ auto mode on:Claude Code 自己判断哪些操作风险低就直接做。你的电脑上可能是别的模式,它要写文件、运行命令时会弹出请你批准的选项,看清是在本项目文件夹里写文件,选 Yes 回车。按 Shift + Tab 可以切换模式。

接国内模型时,启动或第一次派子代理时可能弹出一段英文说明(例如 auto mode 计费方式的通知、isn't described by this version's model catalog 的提示),不影响使用:前者按回车继续,后者是一行黄字,不用管。

省 token 的几个做法

多代理比一个代理费 token:每个子代理都要重新读一遍任务说明和材料,派得越多、审得越多轮,用得越多。下面几个做法可以少花:

  1. 子代理用便宜一档的模型。主代理要统筹,用好一点的模型;子代理做的是读表、写小结、照清单核对,便宜的模型一般够用。用 CC Switch 或 settings.json 配 DeepSeek 的,CLAUDE_CODE_SUBAGENT_MODEL 一项填 Flash 档(见下面的常识框),子代理就用这一档。
  2. 限定输出长度。给子代理写清“每份不超过 300 字”“做完只回复一句:文件路径和状态”。子代理交回的话越短,主代理的对话越干净,后面每一轮要带着走的内容也越少。
  3. 定好轮数上限。审阅写“只审一轮”或“最多两轮”。不写的话,它可能审了改、改了再审,一直转下去。
  4. 一个练习一个会话。做完一个练习,退出 Claude Code(两次 Ctrl + C)再在下一个项目文件夹里启动。上一个练习的对话不会被带进下一个练习,每轮请求要带的内容就少。
  5. 自己先看一眼材料。打开数据表、简报、单据扫一遍,比让它“先把所有文件读一遍讲给我听”省得多。
  6. 随时看用了多少。在 Claude Code 里输入 /cost 回车,弹出的面板里 Usage by model 一行列出本次会话的输入(input)、输出(output)和缓存读取(cache read)token 数;按 Esc 关掉。接国内模型时,面板上的美元金额是按 Claude 的价格估的,不准,看 token 数,以模型平台控制台里的账单为准。

💡 常识:Claude Code 接国内模型

Claude Code 可以接 DeepSeek 等国内模型,按对方平台的价格计费。W01 的环境安装手册已经讲了用 CC Switch 接 DeepSeek 的做法(https://ai.lingnan.top/materials/2026-autumn/w01/installation),这里补两点:

Mac:

export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=sk-你的密钥
export ANTHROPIC_MODEL=deepseek-flash
export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-flash
export CLAUDE_CODE_SUBAGENT_MODEL=deepseek-flash
claude

Windows PowerShell:

$env:ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
$env:ANTHROPIC_AUTH_TOKEN="sk-你的密钥"
$env:ANTHROPIC_MODEL="deepseek-flash"
$env:ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-flash"
$env:CLAUDE_CODE_SUBAGENT_MODEL="deepseek-flash"
claude

这样启动后,欢迎框第二行显示 deepseek-flash,上方会有一行黄字说这个模型名“isn't described by this version's model catalog”,并按 200k 上下文处理。本周三个练习用不到那么长的上下文,不影响;主模型名后面加 [1m](如 deepseek-flash[1m])可以用满 1M 上下文,写法同 W01 手册。

注意:~/.claude/settings.json 的 env 里写了同名项的,以文件为准,临时变量不起作用(W01 手册有说明)。API Key 只放在自己电脑上,不发给别人,不写进任何文件和截图。