SOP:日度成本与行为效率审查(daily_review + /cost)¶
1. 背景¶
用户需要的不再是「把钱数出来」,而是每天一次带结论的审查:当天用得合理不合理、不合理在哪一条、下次怎么改。
既有能力缺口有三:analyze_usage.py 是全量聚合,没有「今天 vs 基线」的对照,说不出「合理 / 不合理」;它不挑可疑项,异常要人自己看;每次提问的措辞不同,取数范围随之漂移,成本不可控。
2. 目标¶
变更完成后应达到:
- 一条只读命令即可拿到「当日汇总 / 基线对比 / 可疑项清单 / 余额对账」四段事实;
- 一句
/cost即可得到「汇总 → 异常判定 → 评估 → 改进建议」四段结论,并落盘reports/daily-review-YYYYMMDD.md; - 脚本只读、幂等(重复运行输出逐字节一致)、退出码 0,不影响代理运行。
3. 前置条件¶
- 在工程根执行;
./venv/bin/python可用(依赖 PyYAML,与analyze_usage.py同); logs/usage.jsonl存在且有当日记录;logs/balance_history.jsonl有当日与次日 00:00 快照才能对账(次日快照由 cron0 0 * * *生成,故当日只能待明日对账)。
4. 影响范围¶
| 项 | 值 |
|---|---|
| 主机 | 192.168.31.250(单机,无冗余) |
| 是否停服 | 否。脚本纯只读,不改系统状态、不写任何文件、不碰代理端口 |
| 窗口期 | 无限制,任何时刻可跑 |
| 在跑作业 | 不涉及 Slurm / LSF;仅读取日志文件 |
5. 分步操作¶
实现体:cost_audit/daily_review.py(只读取数)与 ~/.trae-cn/commands/cost.md(分析框架)。以下以实现体为准,本节供人复核与手工复现。
cd /home/rain/Documents/services/token_proxy # 工程根
./venv/bin/python cost_audit/daily_review.py # 取数:今天(默认)
./venv/bin/python cost_audit/daily_review.py --date 2026-09-22 # 取数:指定日
./venv/bin/python cost_audit/daily_review.py --days 14 # 取数:基线窗口改 14 日
# 分析:在 TraeCode 里对本工程开新会话,输入 /cost
# 命令正文规定四段输出结构,并把结论写入 reports/daily-review-YYYYMMDD.md(同日重复执行覆盖)
6. 验证¶
./venv/bin/python cost_audit/daily_review.py > /dev/null; echo $? # 预期 0
a=$(./venv/bin/python cost_audit/daily_review.py | md5sum) # 幂等:两次输出一致
b=$(./venv/bin/python cost_audit/daily_review.py | md5sum)
[ "$a" = "$b" ] && echo "幂等 OK"
./venv/bin/python cost_audit/daily_review.py --date 2026-09-22 | sed -n '/余额对账/,$p'
# 预期:真实扣费 8.420 元(67.51 → 59.09)| 自算 8.470 元 | 偏差 +0.050 元(+0.6%)
实测结果(2026-09-23):退出码 0;输出 65 行;两次运行 md5 一致;昨日对账偏差 +0.6%(价目表口径可用)。
7. 回滚¶
本次为新增文件,无覆盖、无服务改动,回滚即删除:
rm -f /home/rain/Documents/services/token_proxy/cost_audit/daily_review.py # 删除取数脚本
rm -f /home/rain/.trae-cn/commands/cost.md # 删除 /cost 命令
docs/HANDOFF.md 为定点修订,回滚用备份覆盖:
cp daily-cost-review-20260923/backup/docs/HANDOFF.md.bak.20260923-051042 docs/HANDOFF.md
备份位置:daily-cost-review-20260923/backup/,台账见该目录下 README.md。
回滚后验证:docs/HANDOFF.md 中不再出现 daily_review.py 与 /cost;ls ~/.trae-cn/commands/ 只剩 deploy-py.md。
8. 风险说明¶
| 风险 | 缓解 |
|---|---|
| 误读「整段失效」标签 | 脚本区分「会话首条」与「会话中段」;命令正文要求二者区别对待,会话首条未命中属结构必然 |
| 重复提问误判 | [5] 按轮次去重后再统计同句重复;若按请求计数,一轮 60 次步进会被误报成 60 次重复提问(初版即此错误,已修) |
| 思考 token 重复计价 | 思考已含在输出内(「其中」关系),命令正文明确不得重复计入总成本 |
| 对账依赖 cron | 次日 00:00 快照未生成时脚本明示「待明日对账」,不给出可疑结论 |
| 跨口径比较 | 2026-09-23 04:51 前无 turn_seq,步/轮跨该时点不可比,命令正文已注明 |
| 报告覆盖 | 同日重复执行会覆盖 reports/daily-review-YYYYMMDD.md,属预期行为 |
附录:交付物清单¶
| 文件 | 说明 |
|---|---|
cost_audit/daily_review.py |
只读取数脚本(新增) |
~/.trae-cn/commands/cost.md |
/cost 命令正文,规定四段分析框架与落盘要求(新增) |
reports/daily-review-YYYYMMDD.md |
每日分析结论(运行时生成,不在本次交付内) |
daily-cost-review-20260923/backup/docs/HANDOFF.md.bak.20260923-051042 |
修订前 HANDOFF 快照 |
docs/HANDOFF.md |
更新命令速查与文档地图(定点修订) |
来源:
/home/rain/Documents/services/token_proxy/daily-cost-review-20260923/SOP.md| 最后更新:2026-09-23 05:10(由build/sync.py同步,请勿在站点侧修改)