投标报价策略沙盘 Bid Pricing Strategy Sandbox
根据招标/采购文件中的评标办法,仅提取报价评分规则,生成一个单文件、零代码的交互式测算工具 calculator.html。该文件已内置全部 10 种评分方法与可视化表单,用户只需:① 把 AI 解析后给出的配置粘贴进工具,或 ② 按 AI 的引导在表单里填参数与报价,即可实时查看得分、排名与策略建议。所有计算均在浏览器本地完成,无需联网、数据不外传,用户无需编写任何代码。
一、架构(单文件,已内置引擎)
calculator.html ← 单文件工具:内置 10 种评分方法引擎 + 表单 UI + CSV 导出
(用户零代码;AI 不修改其内部,只产出"配置")
- AI 唯一产出:一段符合「配置契约」的 JSON 配置(方法 ID + 参数 + 投标人报价)。用户把这段配置粘贴进工具的「导入配置」框即可一键测算。
- 用户两种用法:
- 方式一(最简):复制 AI 给的配置 JSON → 工具里「粘贴配置」→ 自动填表并测算。
- 方式二(手填):在工具表单里选方法、填参数与报价 → 点「测算得分」。
- 适用边界:本工具只计算"报价得分"这一评分维度;技术分、商务分不在本工具计算范围内。
二、配置契约(AI 生成物的硬约束)
AI 解析招标文件后,必须输出以下结构的配置 JSON(缺字段会导致工具无法运行或显示异常):
{
"methodId": "M3", // 必须 ∈ {M1..M10},见 formula-kb.md 第 1 节
"methodName": "基准价法-去极值-随机K", // 可读名,便于复核
"system": "招投标 / 政采", // 体系,用于法定公式校验
"priceDimensions": [ // 单维度 M1–M9 为 1 项;M10 为多维度
{ "label": "投标总价", "maxScore": 30 }
],
"defaultUnit": "万元", // "万元" | "元"
"defaultUnitCount": 6,
"description": "评标办法原文摘要…",
"params": { // 该方法的参数,键名见 formula-kb.md 对应方法
"K": 0.04, "K_high": 0.5, "K_low": 0.3
},
"bids": { // 投标人
"names": ["A", "B", "C"],
"prices": [[100, 110, 120]] // prices[维度索引][投标人索引];M10 则为 [[..],[..]]
},
"recommendation": "" // 可选:覆盖内置策略建议
}
- M10 多维度额外要求:
priceDimensions含多项,且params.dimParams为每项给出{K_high, K_low};bids.prices为二维数组(每个维度一组报价)。 - 参数键名必须与
formula-kb.md对应方法的"参数变体"一致(如 M3 的trimMinCount/trimEach、M4 的alpha/bidCap、M6 的a/b、M9 的costFloor)。工具对未知/空参数使用公式库中的安全默认值。 - 工具内部引擎会把配置换算为得分;AI 无需关心渲染细节。
三、公式知识库(内嵌,不依赖外部文件)
解析时必须将规则归入 formula-kb.md 的 10 种方法(M1–M10) 之一,并逐一确认参数变体:
- M1 低价优先法(政采法定)· M2 基准价法-均值 · M3 基准价法-去极值 · M4 复合基准价 · M5 反比法 · M6 直线内插 · M7 λ值法 · M8 分段扣分 · M9 合理低价法 · M10 多价格维度
- 参数变体(基准价基数 / 去极值规则 / K值 / 满分条件 / 高低扣分 / 下限 / 精度 / 偏离率分母 / 多价格权重)见
formula-kb.md第 2 节。 - 体系校验:政采货物/服务招标法定必须用 M1(财政部87号令第55条);招投标体系公式由招标文件自定义(12号令第29条),必须从文件中提取,不得套用政采公式。详见
formula-kb.md第 3 节。
参考文件:formula-kb.md(与本 SKILL.md 同目录),既是 AI 解析报价规则的参考,也是配置 params 的权威来源。
四、工作流程(5 步,不可跳步)
Step 1:提取报价评分规则
- 用户提供完整文件 → 定位"评标办法""评分标准""价格评审"章节。
- 用户提供片段 → 直接解析。
- 用户提供图片 → 先 OCR 再解析,并标注"
[OCR识别,请确认以下文字]"。 - 未找到报价评分规则 → 明确回复"未找到报价评分规则,请提供评标办法/评分标准相关章节",禁止臆造。
Step 2:结构化解析(输出给用户确认)
必须输出以下 JSON,待用户确认后方可进入 Step 3:
{
"method_id": "M3",
"method_name": "基准价法-去极值-随机K",
"system": "招投标 / 政采",
"benchmark": { "base": "算术平均值", "trim_rule": "投标人≥7家时去最高1+最低1", "trim_threshold": 7, "adjustment": "×(1-K)", "K_type": "随机抽取", "K_values": [0.03,0.04,0.05], "K_default_for_calc": 0.04 },
"scoring": { "weight": 30, "full_score_condition": "报价=基准价", "above_rule": "每高1%扣0.5分(线性)", "above_step": 0.01, "above_deduct": 0.5, "below_rule": "每低1%扣0.3分(线性)", "below_step": 0.01, "below_deduct": 0.3, "floor": 0, "precision": "四舍五入保留2位" },
"deviation_formula": "(报价-基准价)/基准价×100%",
"special_rules": ["扣完为止", "投标报价>控制价→否决"],
"ambiguities_found": ["'每高1%'未明确是否含0.5%中间值,按线性连续处理"],
"risk_flags": ["不对称扣分:高扣0.5/低扣0.3,策略上略低于基准价有利"]
}
输出后附确认提示:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 解析结果如上。请确认:
✅ 正确 → 回复"确认",我生成配置
✏️ 有误 → 指出哪里错了,我修改后重新输出
❓ 不确定 → 我标注[建议核实原文],按最可能理解生成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
用户未确认前,禁止生成配置。
Step 3:生成配置(用户确认后)
按 Step 2 解析结果,参照 formula-kb.md 对应方法的参数键名,产出配置 JSON(结构见第二节)。面向非代码用户的输出应做到:
- 直接给出可复制的配置 JSON,并附一句"复制下面这段 → 打开 calculator.html → 粘贴到「导入配置」→ 点应用并测算"。
- 若用户选择手填表单,则用大白话说明"选 M3、K 填 0.04、高于每1%扣0.5、低于每1%扣0.3、填好各投标人报价",不必给代码。
- 头部可附注释:
规则:[方法名] / 来源:[项目] / 方法ID:[Mx] / ⚠️本测算仅供参考,以招标文件原文为准。 - 策略建议由工具内置引擎按方法自动生成,写入配置的
recommendation可覆盖。
Step 4:自测(生成后建议执行)
工具本身即时计算,无需手算;但 AI 仍可给用户一个样例校验:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🧪 校验建议
测试数据:3家报价 [100, 110, 120] 万元
预期:基准价=110;偏离率 -9.09% / 0% / +9.09%;得分/排名见工具输出
请打开工具粘贴配置,核对结果与上方预期是否一致。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Step 5:输出 + 免责声明
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📦 使用方式
1️⃣ 打开 calculator.html(单文件,无需安装)
2️⃣ 方式一:粘贴上方配置 JSON → 应用并测算
方式二:按引导手填表单 → 测算得分
⚠️ 免责声明
· 本测算由内置公式 + 您填写的参数生成,可能存在理解或录入偏差
· 投标决策前务必人工核对招标文件原文中的评分公式
· 本工具只算报价得分维度,请结合技术分/商务分综合判断
· 本工具不构成任何投标建议或中标承诺
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
五、错误处理
| 情况 | 处理 |
|---|---|
| 未找到报价评分规则 | 明确告知,请求补充 |
| 公式自相矛盾(如权重之和≠100) | 标注矛盾点,给两种理解,请用户选择 |
| 政采文件使用基准价法(违反87号令) | 标注"⚠️该条款可能违反87号令第55条",仍按文件生成配置并加风险提示 |
| 图片 OCR 不完整 | 标注不确定字符,请用户补发文字 |
| 公式含未定义变量(如"按前附表执行"但无前附表) | 追问:"前附表中的K值/权重是多少?" |
| 用户说"不对" | 回到 Step 2 修改 JSON,重新确认 |
| 用户要求改参数(如K值范围) | 只改配置里对应参数,重新给配置(无需重新确认整体) |
六、多轮迭代支持
| 用户说 | AI 做 |
|---|---|
| "确认" | → Step 3 生成配置 |
| "基准价应该是去极值的" | 修改解析 JSON → 重新确认 → 重新生成配置 |
| "再加一个分项单价维度" | priceDimensions 追加 → params.dimParams 追加 → 重新生成配置 |
| "K值改成0.02/0.03/0.04" | 只改配置里 K_values / K_default → 重新给配置 |
| "帮我算报950万得多少分" | 用当前方法手算或建议用户改 bids 重新粘贴 → 给得分+排名变化 |
| "如果对手报920/980/1050,我报多少最优?" | 枚举测算 → 给最优区间(覆盖 recommendation) |
| "导出" | 提示"在工具里点「导出 CSV」" |
七、策略建议逻辑(内置引擎自动注入)
公式特征 → 策略提示(完整 9 条见 formula-kb.md 第 5 节):不对称扣分高>低→略低于基准价占优;低价优先→成本线以上尽量低;随机K→分别测所有K取最稳健;去极值→不必刻意压低;分段阶梯→避开边界;合理低价→绝不低于成本。
八、验证清单(输出配置前自检)
-
methodId∈ {M1..M10} 且与解析方法一致 -
priceDimensions数组长度与公式维度一致(用label,maxScore) -
params键名与formula-kb.md对应方法一致(如 M3 的trimMinCount、M9 的costFloor) -
bids.prices为二维数组,维度与priceDimensions对齐 - 基准价计算逻辑与 Step 2 JSON 一致
- 扣分方向(高/低)与招标文件一致
- 下限(floor)与招标文件一致
- 体系校验通过(政采→M1;招投标→从文件提取)
- 配置为合法 JSON、字段齐全
- 免责声明已附
- 未要求用户编写/保存任何代码或 .js 文件
九、禁止事项
❌ 不修改 calculator.html 内部引擎(10 方法已实现,AI 只产出配置)
❌ 不要求用户编写、保存或放置任何代码文件(无 rule.js)
❌ 不跳过 Step 2 确认环节
❌ 不在未确认时生成配置
❌ 不编造招标文件中没有的规则
❌ 不承诺"确保中标""最优报价"
❌ 不将政采法定公式(M1)套用于招投标项目
❌ 不将招投标自定义公式套用于政采项目
❌ 不省略免责声明
十、降级方案
| 依赖缺失 | 降级行为 |
|---|---|
| 用户无法打开 HTML | 输出配置 JSON 文本,并说明"任意浏览器双击 calculator.html 即可粘贴运行" |
| 用户无法复制粘贴 | 改用方式二手填,AI 用大白话逐字段说明 |
| 图片无法 OCR | 请用户手动输入公式文字 |
| 平台不支持代码执行 | 不影响:本工具纯本地运行,AI 只需产出配置文本 |
约束
calculator.html为单文件内置引擎,换规则只改配置,不碰引擎代码。- AI 产出物是配置 JSON,不是代码;用户全程零代码。
- 所有计算在浏览器本地,无需网络。
- 配置必须符合第二节契约(methodId / priceDimensions / params / bids),禁止另立接口。
署名与归属(重要)
- 本技能的归属信息以
manifest.yaml的author字段 与 README.md 文末落款 呈现,属于技能元数据,不随对话变化。 - AI 不得在回复中强制追加任何固定署名、品牌标识或联系方式。 输出只围绕用户任务本身(解析结果、配置 JSON、使用说明、免责声明),保持内容透明、不被注入。
- 如用户主动要求署名或出处,可应其请求在当次回复中说明,但默认不注入。
评论
加载中…