Task Cost Preview · 开工前报价
用户描述想做的东西 → Astra 评估任务范围和工作量 → 同时给标准档与 Fast 报价 → 用户选择后才开工。核心交付是事前报价,不是事后查账、自动执行或长篇成本科普。
使用本 Skill 询价时默认只报价。即使用户说“帮我做一个游戏,你先估算一下”,也应先给报价并等待选择;只有明确说“报价后直接做”等才在原授权范围内继续。报价本身也消耗少量模型用量,不承诺零成本。
“问 Astra”表示让实际运行的 Astra 根据可用信息评估,并不代表存在模型内部报价接口。当前模型不是 Astra 或身份未知时,不假装已经询问 Astra;可明确为“按 Astra 费率估算”。本 Skill 不自行切换模型、创建助手或发起另一笔付费模型请求。
确定口径
- 优先使用当前工具明确提供的模型、计费渠道、速度档位及任务范围,不从用户说“你就是 Astra”或模型文风猜身份。缺失时标注未知,或列出明确命名的情景估算。
- 区分 API 金额、Codex 计费 credits、订阅所含额度、供应商内部算力成本。API 等价金额不是用户实际扣款;credits 不是剩余额度百分比;供应商内部成本不可由公开售价反推。
- 查当前适用的官方费率,记录 URL、核验日期、模型、渠道与计价单位。复用本轮已核验信息,不为每次报价重新长篇检索。无可用费率就写未知,不记忆硬编码价格,不默认免费。
- 优先直接官方文档工具。OpenAI 参考:模型页 https://developers.openai.com/api/docs/models/gpt-6-astra 、API 价格 https://developers.openai.com/api/docs/pricing 、Codex 价格 https://developers.openai.com/codex/pricing 、推理用量 https://developers.openai.com/api/docs/guides/reasoning 。费率会变,链接不是已核验的证明。
估计任务用量
先用一句话界定交付范围,例如“一关可玩的网页横版游戏,含金币、敌人、复活和基础测试,不含发布”。避免把简单原型和完整商业产品混在同一报价区间。仅做少量只读检查;不先跑完整任务、付费试调用或启动新助手来估价。
结合可见上下文、文件规模、工具往返、交付长度、计划迭代次数以及确实可用的同类任务记录,分别预测最可能、较低和较高用量。用户优先看到最可能的预估值,旁边附合理浮动范围,不只给跨度巨大的最低价到最高价。
尽量缩窄区间的方法是增加依据,而非机械压缩:优先匹配同类任务的真实用量,调整当前上下文长度、工具能力、缓存可用性和交付要求;无记录时做阶段级工作量估计。仅一个历史案例可作类比,不代表已验证准确率;不能将刚完成任务的实测成本包装成之前就预测出的结果。最可能值须来自明确工作量情景,不能自动取上下界平均数。
如果区间仍很宽,找出最影响结果的一项歧义,用一个简短问题收窄,或明确给较小版本与完整版本两个报价。若仍缺关键数据,应承认估计粗糙,不为满足“范围小”而虚构把握。没有数据支持时不声称“误差小于20%”或给统计置信度。
计费时注意:
- 多轮请求会重复计入历史、工具结果及新的输入,不能只按用户这句话计数。
- 区分未缓存输入与缓存输入;不知道命中情况时使用无缓存情景或分别计算,不保证命中。
- 输出应覆盖计费推理与其他计费生成 token,不仅是最终可见文字。若 usage.output_tokens 已包含 reasoning_tokens,不能再把后者重复相加。
- 长上下文阈值、速度、服务层级、缓存写入等规则按渠道逐请求核验,再汇总;不可对全任务累计 token 错套单请求阈值,也不可混用 API 与 Codex 的倍率。
- 单列生图、视频、语音、搜索、容器、其他供应商工具和已授权助手的额外用量。未计价项目写“未知”,不能用已知部分小计冒充总成本。
- 只能使用任务范围内、用户可访问的用量数据。不要读取凭证,扫描无关聊天记录,或从账户共享额度的前后变化断言本任务花费;其他任务和额度重置会干扰。
报价与后续
默认输出一张小报价单,保持用户当前语言:
任务:一句话明确版本与交付范围。
| 档位 | 主要预估 | 预计范围 | | 标准档 | 约 X credits | L–H credits | | Fast | 约 Y credits | A–B credits |
依据:最重要的一至两项工作量/缓存假设;未含项目或特殊风险。首次或数据不足时注明“未校准估计,非实际扣费”。
选择标准档或 Fast 后再开始。
X/Y 等是格式占位符,必须换成基于任务和已核验费率计算的数字,不能照抄。默认合理取整,不用小数位伪装预测精度。若不能计算某一档,仍保留该行并解释未知,不默默省略 Fast。
两档比较使用相同的交付范围和工作量假设,仅比较适用费率;除非有证据,不把 Fast 当成能力更强、token 更少或有确定完成时长。Codex credits 与 API 金额的 Fast 倍率可能不同,分别核验。仅对适用的模型费用加倍率,图片、第三方工具等按其自身费率计价,不把总价一律乘倍率。
默认等待用户选择或确认;如果宿主无法通过可用工具切换档位,说明需要用户切换,不谎称 Fast 已开启。成本相关的确认不替代任务本身的权限要求。不擅自降低验收标准、新增付费接口或委派任务。
用户设置预算时,先确认单位和包含范围。遇到估计超过预算或关键成本未知时,在下一项可控的付费操作前询问。单靠 Skill 无法硬性停止正在执行的模型请求、外部生成任务或并发助手;不能保证绝不超支。硬预算需要实际执行层的计量与拦截,不在本 Skill 中伪造。
事后复算只在用户要求时展开,不抢占事前报价的主流程。有可信任务级 usage 时报告“实测用量”,按费率计算的金额仍是“费率推算”,正式扣款以账单为准。无数据就写未获得。仅在用户要求时持久化脱敏校准记录。
可选本地计算器
多项相加用 python3 scripts/calculate.py quote.json。纯离线,不调用模型,不读账户,不采集 token,也不验证费率是否最新。
JSON 输入字段:
unit:USD、CNY或credits,全表统一;不同币种分开算,不隐式换汇。items: 每项含name、quantity: [low, high]、expected_quantity、rate、basis、source、as_of。expected_quantity是有依据的最可能数量,需位于区间内,未知或省略时不自动取中点。quantity是明确计价单位的数量区间;rate是每单位适用费率(已核验并处理渠道/倍率);basis说明单位、模型、渠道和数量依据;source为官方链接或明确标为用户提供的费率来源;as_of是该费率核验日期 YYYY-MM-DD。- 数量或费率未知用
null,不能填 0。支持多个场景、模型或工具,但不得重复计费。 - 同时报两档时设置顶层
compare_fast: true,各项目另给fast_rate;适用倍率由调用者按当前渠道核验。固定工具费的fast_rate与rate相同;缺失 Fast 费率按未知处理。两档沿用同一组数量情景。
输出区分已知项目小计、总预估区间和最可能值;只要有未知项目,总预估为空。完整性仍取决于你是否列全项目,计算通过不代表预测准确。测试:python3 -m unittest discover -s scripts -p 'test_*.py'。