Skip to content

fix(selling): 对齐架构规划粗估与 ROS 询价的成本口径 - #304

Closed
ruanzhengxin-zhuxing wants to merge 1 commit into
mainfrom
harness/e182bc3e
Closed

fix(selling): 对齐架构规划粗估与 ROS 询价的成本口径#304
ruanzhengxin-zhuxing wants to merge 1 commit into
mainfrom
harness/e182bc3e

Conversation

@ruanzhengxin-zhuxing

Copy link
Copy Markdown
Collaborator

背景

Aone #85833794。证据 Session d4c6272042684114b45d190aaefc753e613e22c9f326426b92336226e5eaa417 复现同一根因:architecture_planning 给出月成本约 ¥80-120,而 cost_estimating 询价得到列表价 ¥289.81/月(相差约 2.5 倍),且合同优惠后有效价约 ¥0.00/月无可核对来源。两个阶段的计价口径不可对照,用户在 confirm_and_select 看到的金额不可解释。

修改内容

  1. architecture_planning 标注粗估口径

    • monthly_estimate 明确为"粗略估算 + 月度列表价口径"(对应询价的 OriginalAmount
    • 候选新增必填 estimate_basispricing_mode + assumptions),写明实例规格、磁盘、公网带宽与计费方式等关键假设
    • 禁止把合同优惠、代金券、活动折扣折算进粗估
  2. cost_estimating 回填并校正规划粗估

    • 结论新增必填 pricing_calibersplanning_estimate(原样复制候选粗估)、list_price(本次询价 OriginalAmount 汇总)、calibers_aligned,可选 effective_price / discount_source / deviation_ratio / deviation_reason
    • 偏差超过 ±30% 或口径不一致时必须依据 candidate.estimate_basis 给出 deviation_reason
  3. 代码级门禁,避免仅靠提示词约束

    • 新增 pipeline/engine/pricing_calibers.py 校验器与 require_pricing_caliber_alignment 完成守卫
    • 拦截 pricing_calibers_missing / planning_estimate_mismatch / deviation_reason_missing / invalid_deviation_ratio / invalid_effective_price / discount_source_missing / zero_effective_price_without_source
    • 有效价低于列表价必须给出可核对的 discount_source;接近 0 的有效价还要求询价结果真实返回过 TradeAmount,禁止无来源的 ¥0.00/月
  4. 双口径端到端展示

    • show_candidate_detail 新增可选 planning_monthly_estimate / cost_caliber_note,贯通 CLI 候选页签、A2A 事件与选项投影、Web outputs/diagrams/mermaid
    • total_monthly_cost 仍严格取最终 ROS 估算,不被粗估污染

验收

  • 新增 tests/pipeline/engine/test_pricing_calibers.py(34 项,覆盖 2.5 倍偏差与无来源 ¥0 有效价场景)
  • test_complete_step_tool.py 新增守卫 accept/reject 用例;test_loader.py 新增守卫键解析用例
  • 架构/成本 SKILL 与提示词的口径断言,以及展示链路(tool/event/UI/web)字段断言
  • 全量 pytest:14399 passed / 4 skipped;make lint(ruff check + ty check)全部通过
  • 3 项失败为 HEAD 上既有失败(i18n msgfmt、repl_e2e sidecar、prerequisites URL),与本次改动无关

说明

顺带包含锁定 ruff 0.15.10 的基线格式化改动(仓库 pre-commit format 钩子要求,HEAD 本身未格式化干净)。

architecture_planning 的月费粗估与 cost_estimating 的候选步骤列表价出现约 2.5 倍
偏差,且成本结论中出现无来源的 ¥0 有效价,导致两个阶段的成本口径不可对照、
用户看到的金额不可解释。

- architecture_planning: monthly_estimate 明确标注为"粗略估算 + 月度列表价口径",
  新增必填 estimate_basis(pricing_mode + assumptions),禁止把合同优惠折算进粗估
- cost_estimating: 结论新增必填 pricing_calibers,把规划粗估与本次询价的列表价
  (OriginalAmount)逐项对照;偏差超过 ±30% 或口径不一致时必须给出 deviation_reason
- 新增 pricing_calibers 校验器与 require_pricing_caliber_alignment 完成守卫,
  在代码层拦截 pricing_calibers_missing / planning_estimate_mismatch /
  deviation_reason_missing / discount_source_missing /
  zero_effective_price_without_source,避免只靠提示词约束被绕过
- 有效价低于列表价时必须给出可核对的 discount_source;接近 0 的有效价还需要
  询价结果中真实返回过 TradeAmount,禁止无来源的 ¥0.00/月
- confirm_and_select 与 CLI/A2A/Web 展示链路同时呈现规划粗估与最终 ROS 估算及
  偏差说明,total_monthly_cost 仍严格取最终 ROS 估算
- 顺带应用锁定 ruff 0.15.10 的基线格式化(pre-commit format 钩子要求)
@guima-why guima-why closed this Aug 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants