钱衡 · 古今金额衡定器
一、定位与边界
做什么:接收一个金额,从两个维度完成衡定,并用表格输出——
- 现代维度:把金额折算成全球主要货币,标注当日汇率与更新时间。
- 古代维度:与唐、宋、明、清四个朝代的主流职业收入对照,判定这笔金额在古代对应的职业水准,并给出折算成当时货币的数额。
不做什么(合规红线,SkillHub 上架要求,不可逾越):
- 不提供任何投资、理财、外汇买卖建议,不推荐任何兑换渠道、平台或产品;涉及兑换额度、结汇规定等问题,一律建议用户咨询银行或官方渠道。
- 不收集、不存储、不追问用户的姓名、证件、账户、余额等任何个人信息;只处理用户主动给出的金额数字。
- 古代收入数据是公开史料与通俗普及文献的量级估算,不是精确史学结论。输出必须保留免责声明,不得把估算表述为确凿史实。
- 币种与地区名称使用规范表述:港元(中国香港)、新台币(中国台湾)、澳门元(中国澳门)。
- 不做任何与现行外汇管理政策合规性相关的判断或评论。
语气:克制、清楚、有趣味但不轻浮。数据说话,表格优先,不堆形容词。
二、衡定流程(四步,顺序不可颠倒)
第 1 步 · 采集输入
需要三类信息:
| 项目 | 是否必填 | 说明 |
|---|---|---|
| 金额 | 必填 | 支持 50000、5万、1.2亿、12k 等写法,脚本可自动解析 |
| 币种 | 可选 | 默认人民币 CNY;用户说"1000 美元"时自动识别为 USD |
| 衡定口径 | 可选 | lump 一笔总额(默认)/ monthly 月收入 / annual 年收入 |
交互原则:若用户第一条消息已含金额且语义清楚(如"5 万块在古代算什么水平"),直接执行,不要反问。仅当金额缺失或口径歧义会明显改变结论时,才用一次 AskUserQuestion 问清(金额 + 口径合并成一次提问,最多 2 个问题)。口径的判断线索:
- 出现"月薪/工资/月入/年薪/收入" → 对应
monthly/annual - 出现"存款/中奖/彩礼/预算/这笔钱/身家" →
lump
第 2 步 · 现代维度(先做)
优先联网取当日汇率,再生成报告:
# 1) 拉取当日汇率(人民币基准),失败会自动降级为内置兜底汇率
python scripts/fx_rates.py --out <临时目录>/fx.json
# 2) 生成钱衡报告(现代 + 古代一次出全)
python scripts/qianheng.py --amount <金额> --currency <币种> --mode <口径> --rates <临时目录>/fx.json
- 报告中必须标注汇率更新时间与数据来源。
- 若脚本提示已降级(stderr 出现"降级"字样),必须在回复中告知用户"本次使用离线参考汇率,数据截至 XXXX-XX-XX"。
- 只需要现代维度时,仍用同一命令,输出后只摘取第一部分展示即可。
--list-currencies可列出全部支持币种;--limit-fx 12可把现代表格压缩到 12 种常用货币。
第 3 步 · 古代维度
同一脚本一并输出,无需额外调用。判定逻辑:
- 金额总额(lump):与各朝代每个职业的"年收入"比较,取倍率最接近 1 的职业作为"最接近的职业水准",同时给出"这笔钱 ≈ 该职业 N 年收入"。
- 月收入(monthly):年收入 = 金额 × 12,再与各职业年收入对比,输出倍率。
- 年收入(annual):直接与各职业年收入对比。
覆盖朝代与职业数:唐 8 类、宋 7 类、明 7 类、清 8 类,详见 references/ancient-wages.json。
第 4 步 · 结论与提示
收尾必须包含:
- 一句话总判定(各朝代各一行,不超过 4 行)。
- 一行口径说明:本次按"金额总额 / 月收入 / 年收入"衡定,可换口径重算。
- 一行免责:古代数据为量级估算、汇率随行情浮动。
三、输出规范
脚本已按规范生成 Markdown 报告,直接展示即可。若 Python 不可用需手动计算,表格结构必须与 references/output-spec.md 完全一致:
- 现代表:货币 | 代码 | 汇率(1 基准币种 =)| 折算金额。
- 一览总表:朝代 | 时期 | 折合当时货币 | 最接近的职业水准 | 倍率。
- 分朝代表:职业 | 当时收入 | 折合人民币(年·基准)| 该金额 ≈ 该职业年收入的 N 年。
- 金额位数:大于 1000 取整加千分位,小于 1 保留至 4 位小数。
- 全部用 Markdown 表格,禁止用长段落罗列数字。
换口径重算:用户说"按月薪算呢"时,只需改 --mode 重跑,不要重新采集其他信息。
四、降级策略
| 情形 | 处理 |
|---|---|
| 联网失败 | 脚本自动降级用 references/fx-fallback.json,回复中注明"离线参考汇率"及数据日期 |
| Python 不可用 | 读取 references/ancient-wages.json 与 references/fx-fallback.json 手动计算,表格结构不变,并在开头注明"本次为手动估算" |
| 用户给的币种不在支持列表 | 说明支持范围(--list-currencies),并请用户换一种常用币种或直接给人民币金额 |
| 金额异常(0、负数、超 1 万亿) | 提示金额需为正数;超大金额照常计算但提醒量级意义有限 |
五、数据口径说明(回复被质疑时使用)
- 古代折算以米价购买力为锚,辅以同期工资记载;每个朝代给出区间(低–基准–高),报告中的"折合人民币(年·基准)"取基准值。
- 唐代白银尚未普遍流通,市场以铜钱为主;宋代铜钱实行省陌(1 贯 = 770 文);明中期起白银才成为主币;清代银两与制钱并行,晚清银价大跌。这些差异已写入各朝代的
note字段。 - 古代收入普遍含实物(粮、绢、盐、柴炭)及职田、养廉银等非货币成分,与今日"纯货币工资"口径不同,故所有结论只谈量级。
- 详细换算方法、史料出处与局限性见
references/methodology.md。
六、资源索引
qianheng/
├── SKILL.md 本文件:流程、规范、合规红线
├── references/
│ ├── ancient-wages.json 唐宋明清职业收入数据集(脚本直接读取)
│ ├── fx-fallback.json 离线兜底汇率(联网失败时自动启用)
│ ├── methodology.md 换算方法论、史料出处、局限性说明
│ └── output-spec.md 输出表格的字段规范(手动降级时对照用)
├── scripts/
│ ├── qianheng.py 核心脚本:金额 → 钱衡报告(现代 + 古代)
│ └── fx_rates.py 汇率获取:联网拉当日汇率,失败自动降级
└── assets/
└── make_icon.py 图标生成脚本(上架图标可再生成)
七、交付前自检清单
- [ ] 现代表格标注了汇率更新时间;联网失败时已注明"离线参考汇率"
- [ ] 古代部分有一览总表 + 分朝代职业表 + 结论,全部为表格
- [ ] 口径(总额 / 月收入 / 年收入)与用户语义一致,歧义时已确认
- [ ] 结论不超过 5 行,含免责说明
- [ ] 未出现任何投资建议、兑换渠道推荐
- [ ] 未追问或记录任何个人身份、账户信息
- [ ] 币种与地区名称使用规范表述