Task Cost Preview · 事前見積もり
ユーザーがやりたいことを説明 → Astra がタスク範囲と作業量を評価 → Standard と Fast の両方の見積もりを提示 → ユーザーが選択してから作業開始。中核は事前見積もりであり、事後確認や自動実行、長文のコスト解説ではありません。
本 Skill を利用して見積もりを依頼する場合、デフォルトでは見積もりのみを提示します。ユーザーが「ゲームを作ってほしい、まずは見積もって」と言った場合も、先に見積もりを提示し選択を待ちます。「見積もり後にそのまま実行して」など明確に指示があった場合のみ、元の許可範囲内で続行します。見積もり自体にも少量のモデル使用量が発生します。ゼロコストは保証しません。
「Astra に問い合わせ」とは、実際に動作している Astra が利用可能な情報に基づいて評価することを意味し、モデル内部に見積もり用 API が存在することを示すものではありません。現在のモデルが Astra でない場合や身元が不明な場合は、Astra に問い合わせたふりをせず、「Astra の料金レートに基づく推定」と明確にします。本 Skill は自身でモデルを切り替えたり、アシスタントを作成したり、別の有料モデルリクエストを開始したりしません。
見積もり条件の確定
- 現在のツールで明示的に提供されているモデル、課金チャネル、速度オプション、タスク範囲を優先して使用します。ユーザーが「あなたは Astra だ」と言ったからといってモデルを推測したり、文体から判断したりしません。不足する場合は「不明」と明記するか、具体的なシナリオを想定した推定値を示します。
- API 金額、Codex クレジット、サブスクリプションに含まれる使用量、ベンダー内部の計算リソースコストを区別します。API 換算金額は実際のユーザー請求額ではありません。クレジットは残高のパーセンテージではありません。ベンダー内部コストは公開販売価格から逆算できません。
- 現在適用可能な公式レートを確認し、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 。レートは変わる可能性があり、リンク自体が確認済みの証明にはなりません。
タスク使用量の見積もり
まず一文で納品範囲を定義します。例:「1ステージプレイ可能なウェブ横スクロールゲーム、コイン、敵、復活、基本テストを含む、公開は含まない」。単純なプロトタイプと完全な商業製品を同じ見積もり範囲に混在させないようにします。少量の読み取り専用チェックのみ行います。見積もりのために完全なタスクを実行したり、有料のテスト呼び出しを行ったり、新しいアシスタントを起動したりしません。
利用可能なコンテキスト、ファイルサイズ、ツールの往復回数、納品物の長さ、計画的なイテレーション回数、実際に利用可能な類似タスクの記録を考慮して、最も可能性の高い使用量、低めの使用量、高めの使用量をそれぞれ予測します。ユーザーには最も可能性の高い推定値を優先して表示し、その横に妥当な変動範囲を添えます。単に「最低から最高までの大きな幅」だけを示すのではなく、可能な限り範囲を狭める努力をします。その方法は、機械的に範囲を圧縮するのではなく、根拠を増やすことです。具体的には、類似タスクの実際の使用量を優先的に照合し、現在のコンテキスト長、ツール能力、キャッシュ可用性、納品要件を調整します。記録がない場合は、フェーズ単位の作業量見積もりを行います。1件の過去事例のみを類推として使用でき、それは検証済みの精度を意味しません。完了したばかりのタスクの実測コストを、あたかも事前に予測したかのように装ってはいけません。最も可能性の高い値は、明確な作業量シナリオに基づく必要があり、上下限の平均を自動的に取ることはできません。
それでも範囲が広い場合は、結果に最も影響する1つの曖昧さを特定し、簡単な質問で範囲を絞り込むか、小規模バージョンと完全バージョンの2つの見積もりを明確に提示します。それでも重要なデータが不足している場合は、推定が大雑把であることを認め、「範囲を小さくする」ために確信のない仮定をでっち上げてはいけません。データがない状態で「誤差20%未満」や統計的信頼度を主張してはいけません。
課金時の注意点:
- 複数回のリクエストでは、履歴、ツール結果、新しい入力が重複してカウントされるため、ユーザーのこの発言だけをカウントしてはいけません。
- キャッシュされていない入力とキャッシュされた入力を区別します。ヒット状況が不明な場合は、キャッシュなしのシナリオを使用するか、それぞれ計算し、ヒットを保証しません。
- 出力には、推論用のトークンとその他の生成トークンを含める必要があり、最終的な可視テキストだけではありません。もし
usage.output_tokensが既にreasoning_tokensを含んでいる場合、後者を重複して加算してはいけません。 - 長いコンテキストのしきい値、速度、サービス階層、キャッシュ書き込みなどのルールは、チャネルごとにリクエスト単位で確認し、合計します。タスク全体の累積トークンに対して単一リクエストのしきい値を誤って適用したり、API と Codex の倍率を混同したりしてはいけません。
- 画像生成、動画、音声、検索、コンテナ、その他のベンダーツール、承認済みアシスタントの追加使用量は個別に計上します。計上されていない項目は「不明」と書き、既知の部分の小計を総コストと偽装してはいけません。
- タスク範囲内でユーザーがアクセス可能な使用量データのみを使用します。認証情報を読み取ったり、無関係なチャット履歴をスキャンしたり、アカウントの共有使用量の前後変化から本タスクの支出を断言したりしてはいけません。他のタスクや使用量リセットは干渉要因となります。
見積もりとその後の流れ
デフォルトでは、ユーザーの現在の言語で小さな見積もり票を出力します:
タスク:バージョンと納品範囲を一文で明確に。
| プラン | 主な見積もり | 想定範囲 | | Standard | 約 X credits | L–H credits | | Fast | 約 Y credits | A–B credits |
根拠:最も重要な1~2つの作業量/キャッシュの仮定。含まれていない項目や特別なリスク。初回またはデータが不十分な場合は「未調整の見積もりであり、実際の請求額ではありません」と明記。
Standard または Fast を選択してから開始してください。
X/Y などはフォーマットのプレースホルダーです。タスクと確認済みレートに基づいて計算された数字に必ず置き換え、そのままコピーしないでください。デフォルトでは合理的に四捨五入し、小数位を使って予測精度を偽装しないでください。あるプランを計算できない場合は、その行を残し「不明」と説明し、Fast を黙って省略しないでください。
2つのプランを比較する際は、同じ納品範囲と作業量の仮定を使用し、該当するレートのみを比較します。根拠がない限り、Fast を能力が高い、トークンが少ない、または完了時間が確定しているとは見なしません。Codex クレジットと API 金額では Fast 倍率が異なる場合があるため、それぞれ確認します。該当するモデル費用のみに倍率を適用し、画像やサードパーティツールなどはそれぞれのレートで計上し、総額に一律倍率を掛けません。
デフォルトではユーザーの選択または確認を待ちます。ホストが利用可能なツールでプランを切り替えられない場合は、ユーザーによる切り替えが必要であることを説明し、Fast が既に有効であると偽ってはいけません。コスト関連の確認は、タスク自体の権限要件を代替しません。検収基準を勝手に下げたり、新たな有料インターフェースを追加したり、タスクを委任したりしません。
ユーザーが予算を設定する場合、まず単位と対象範囲を確認します。見積もりが予算を超えるか、重要なコストが不明な場合、次の制御可能な有料操作の前に質問します。Skill 単体では、実行中のモデルリクエスト、外部生成タスク、並行アシスタントを強制的に停止できません。予算超過を絶対に防ぐことは保証できません。ハードな予算制限には、実際の実行レイヤーでの測定と遮断が必要であり、本 Skill 内で偽装してはいけません。
事後再計算は、ユーザーが要求した場合のみ実行し、事前見積もりのメインフローを妨げません。信頼できるタスクレベルの使用量がある場合は「実測使用量」を報告し、レートに基づいて計算された金額はあくまで「レートによる推算」であり、正式な請求は請求書に基づきます。データがない場合は「未取得」と書きます。ユーザーが要求した場合のみ、匿名化された校正記録を永続化します。
オプションのローカル計算ツール
複数項目の合計には python3 scripts/calculate.py quote.json を使用します。完全オフラインで、モデルを呼び出さず、アカウントを読み取らず、トークンを収集せず、レートが最新かどうかを検証しません。
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 を入力してはいけません。複数のシナリオ、モデル、ツールをサポートしますが、重複して課金してはいけません。 - 2つのプランを同時に見積もる場合は、トップレベルに
compare_fast: trueを設定し、各項目に別途fast_rateを指定します。適用倍率は呼び出し元が現在のチャネルに基づいて確認します。固定ツール費用のfast_rateはrateと同じです。Fast レートがない場合は「不明」として扱います。2つのプランは同じ数量シナリオを継承します。
出力は、既知の項目の小計、総推定範囲、最も可能性の高い値を区別します。不明な項目が1つでもある場合、総推定は空になります。完全性は依然として、すべての項目を列挙したかどうかに依存し、計算が通ったからといって予測が正確であることを意味しません。テスト:python3 -m unittest discover -s scripts -p 'test_*.py'。