Claude Opus 4.7 Task Budgets 是什麼?讓 AI Agent 自動管控 Token 預算(2026)

Claude Opus 4.7 Task Budgets 是什麼?讓 AI 不再燒光你的預算

Claude Opus 4.7 Task Budgets(任務預算)是 Anthropic 在 2026 年推出的新功能,專門解決一個所有 AI Agent 開發者都會遇到的痛點:agentic loop 無限燒 token 導致成本失控

想像一下這個情境:你讓 Claude 幫你審查整個程式碼庫,它開始瘋狂呼叫工具、讀檔案、分析架構、生成報告⋯⋯結果半小時後你收到帳單發現燒了 50 萬 token(約台幣 750 元),但任務只完成 30%。Task Budgets 就是為了防止這種事情發生。

根據官方文件說明,Task Budgets 讓你可以告訴 Claude:「這整個 agentic loop 只能花 6.4 萬 token」。模型會看到一個即時倒數計時,用來決定要做哪些事情、何時該收尾,並在預算即將用完時優雅地完成任務,而不是突然被截斷。

目前狀態:公開 Beta 階段(2026年5月),只支援 Claude Opus 4.7,不支援 Opus 4.6、Sonnet 4.6 或 Haiku 4.5。

為什麼需要 Task Budgets?AI Agent 的成本失控問題

傳統的 max_tokens 參數只能限制「輸出的文字長度」,但 AI Agent 的成本不只來自輸出,還包括:

  • Thinking(思考過程):Claude 內部推理消耗的 token
  • Tool calls(工具呼叫):每次呼叫工具的請求本身也算 token
  • Tool results(工具結果):工具回傳的資料(可能是整份檔案內容)
  • 歷史訊息累積:每一輪對話都會把前面的完整歷史再送一次

舉個實際案例:你要求 Claude 分析一個 GitHub repo,它可能會:

  1. 讀 README.md(2,000 tokens)
  2. 讀 10 個主要檔案(20,000 tokens)
  3. 執行測試看結果(5,000 tokens)
  4. 生成重構建議(8,000 tokens 輸出)

這樣一輪下來就是 3.5 萬 token,但如果模型判斷「還不夠」,它可能再跑第二輪、第三輪⋯⋯最後你的成本是當初預期的 5 倍。

Task Budgets 的核心價值:給模型一個「成本目標」而不是「硬性截止」,讓它學會在預算內做最重要的事,而不是做到一半被強制中斷。

Task Budgets 的組成結構:三個關鍵參數

Task Budgets 透過 API 的 output_config 欄位設定,主要包含三個參數:

1. type(類型)

目前固定為 "tokens",未來可能支援其他計量單位(如時間、費用)。

2. total(總預算)

整個 agentic loop 可以花費的 token 數量。最少 20,000 tokens,低於此值 API 會回傳 400 錯誤。

建議範圍:

  • 簡單任務(查詢資料、單檔分析):20,000 ~ 40,000 tokens
  • 中等任務(代碼審查、多檔分析):40,000 ~ 80,000 tokens
  • 複雜任務(全專案重構、深度研究):80,000 ~ 200,000 tokens

3. remaining(剩餘預算,可選)

用於跨請求攜帶剩餘預算。當你做了 context 壓縮(compaction)後,可以用這個參數告訴模型「上次已經花了多少,這次繼續用剩下的」。

{
  "type": "tokens",
  "total": 100000,
  "remaining": 73000  // 上次花了 27,000,這次繼續
}

注意:修改 remaining 會使 prompt cache 失效,因為預算倒數標記會被寫進快取的內容裡。

Task Budgets 與其他參數的關係

Task Budgets 不是單獨運作,它需要跟其他 API 參數搭配使用:

與 max_tokens 的關係

  • task_budget.total建議目標(soft hint),模型會盡量遵守但可能偶爾超預算
  • max_tokens絕對上限(hard cap),達到後立刻強制中斷

最佳實踐:max_tokens 設為 task_budget.total 的 1.2 ~ 1.5 倍,給模型一點彈性空間。

與 effort 的關係

effort 控制每一步的思考深度(low / medium / high / xhigh / max),task_budget 控制總共可以跑幾步。

兩者搭配策略:

  • 高品質 + 低預算effort: "high" + task_budget: 40000 → 少量高品質步驟
  • 快速探索 + 高預算effort: "low" + task_budget: 100000 → 大量快速嘗試
  • 深度分析effort: "xhigh" + task_budget: 150000 → 完整深入研究

怎麼用?完整 API 範例

方法一:curl 指令(直接測試)

curl https://api.anthropic.com/v1/messages \
    --header "x-api-key: $ANTHROPIC_API_KEY" \
    --header "anthropic-version: 2023-06-01" \
    --header "anthropic-beta: task-budgets-2026-03-13" \
    --header "content-type: application/json" \
    --data '{
        "model": "claude-opus-4-7",
        "max_tokens": 128000,
        "messages": [
            {
                "role": "user",
                "content": "Review the codebase and propose a refactor plan."
            }
        ],
        "output_config": {
            "effort": "high",
            "task_budget": {
                "type": "tokens",
                "total": 64000
            }
        }
    }'

關鍵點

  • 必須加入 anthropic-beta: task-budgets-2026-03-13 header 才能啟用
  • model 必須是 claude-opus-4-7
  • output_config 裡同時設定 efforttask_budget

方法二:Python SDK(正式專案)

from anthropic import Anthropic

client = Anthropic(api_key="your-api-key")

response = client.beta.messages.create(
    model="claude-opus-4-7",
    max_tokens=128000,
    output_config={
        "effort": "high",
        "task_budget": {
            "type": "tokens",
            "total": 64000
        }
    },
    messages=[
        {
            "role": "user",
            "content": "Analyze this dataset and find patterns."
        }
    ],
    betas=["task-budgets-2026-03-13"]
)

print(response.content[0].text)

Python SDK 的 betas 參數等同於 curl 的 anthropic-beta header。

方法三:跨請求攜帶剩餘預算

# 第一次請求
response1 = client.beta.messages.create(
    model="claude-opus-4-7",
    max_tokens=128000,
    output_config={
        "effort": "high",
        "task_budget": {"type": "tokens", "total": 100000}
    },
    messages=[{"role": "user", "content": "Step 1: Analyze"}],
    betas=["task-budgets-2026-03-13"]
)

# 假設第一次花了 27,000 tokens
# 第二次請求攜帶剩餘預算
response2 = client.beta.messages.create(
    model="claude-opus-4-7",
    max_tokens=128000,
    output_config={
        "effort": "high",
        "task_budget": {
            "type": "tokens",
            "total": 100000,
            "remaining": 73000  # 剩下的繼續用
        }
    },
    messages=[
        # 壓縮後的歷史訊息
        {"role": "user", "content": "Step 2: Continue"}
    ],
    betas=["task-budgets-2026-03-13"]
)

倒數計時如何運作?三回合範例解析

官方文件提供了一個詳細的三回合範例,展示預算如何在每一步被消耗。假設初始預算是 100,000 tokens

回合請求 payload 大小本回合計入預算的 token剩餘預算
第 1 回合~20 tokens(初始訊息)5,000(thinking + tool_use)95,000
第 2 回合~7,800(含第1回合歷史)6,800(tool result 2,800 + thinking 4,000)88,200
第 3 回合~13,000(完整歷史)7,200(tool result 1,200 + text 6,000)81,000

重要發現:重複傳送的舊訊息不會重複計入預算!

第 2 回合的 payload 有 7,800 tokens,但只有「新增的部分」(tool result + thinking)被計入預算。第 1 回合的 20 tokens 初始訊息不會再算一次。

這表示什麼?你可以放心地把完整歷史傳給 Claude,不用擔心重複計費。Task Budgets 的計算邏輯是「增量計費」,不是「全量計費」。

適合使用 Task Budgets 的場景

根據官方建議,以下情境最適合使用 Task Budgets:

1. 長時間 agentic 任務

需要多次 tool call、分析、再輸出的任務。例如:

  • 代碼審查:讀檔案 → 分析架構 → 找問題 → 生成報告
  • 資料分析:讀 CSV → 清洗資料 → 統計 → 視覺化 → 撰寫洞察
  • 研究任務:搜尋資料 → 閱讀文件 → 交叉比對 → 撰寫摘要

2. 需要預測成本或延遲上限

當你要向客戶承諾「這個 AI Agent 每次執行不會超過 X 元」時,Task Budgets 讓你可以設定硬性預算上限。

3. 希望優雅完成而非突然中斷

max_tokens 硬截斷可能導致輸出到一半被切斷(例如 JSON 格式不完整)。Task Budgets 會讓模型「看著倒數計時」,在接近預算時主動收尾。

4. 與 effort 搭配調控品質與成本

你可以設定:

  • 快速模式effort: "low" + task_budget: 30000 → 3 分鐘內給初步結果
  • 標準模式effort: "medium" + task_budget: 60000 → 10 分鐘給完整分析
  • 深度模式effort: "xhigh" + task_budget: 150000 → 30 分鐘給專家級報告

不適合 Task Budgets 的情境

官方也明確指出,以下情境不建議使用 Task Budgets:

1. 單一請求查詢

如果任務只需要一次請求就能完成(例如「翻譯這段文字」「總結這篇文章」),用 max_tokens 就夠了,不需要 Task Budgets。

2. Claude Code / Cowork 介面

這些官方介面目前不支援 Task Budgets(截至 2026 年 5 月)。只有透過 API 才能使用。

3. 需要硬性截止時

Task Budgets 是 soft hint(軟性建議),模型偶爾可能會超預算 5~10%。如果你需要「絕對不能超過 X tokens」的硬性保證,還是要靠 max_tokens

常見錯誤與解決方式

錯誤 1:預算設太小導致拒絕行為

症狀:模型輸出「我無法在這個預算內完成任務」或提前結束。

原因:當預算少於 20,000 tokens 或明顯不足以完成任務時,Claude 會變得保守,甚至拒絕執行。

解決

  • 確保 task_budget.total ≥ 20,000
  • 如果任務複雜,至少給 40,000 ~ 60,000
  • 觀察實際消耗,再調整預算

錯誤 2:修改 remaining 破壞 prompt cache

症狀:跨請求攜帶剩餘預算後,回應時間變慢,成本沒有降低。

原因:預算倒數標記會被寫進 prompt cache,修改 remaining 會使快取失效。

解決

  • 只在真正需要時才用 remaining(例如 context 壓縮後)
  • 如果沒有壓縮,就讓模型自動繼續用原本的預算

錯誤 3:把 Task Budgets 當成 hard cap

誤解:以為設定 task_budget: 50000 就能保證「絕對不超過 5 萬 tokens」。

真相:Task Budgets 是建議目標,模型會盡量遵守但可能超預算 5~10%。

解決:如果需要硬性上限,用 max_tokens 搭配 Task Budgets:

{
  "max_tokens": 55000,  // 硬性上限
  "output_config": {
    "task_budget": {"type": "tokens", "total": 50000}  // 目標
  }
}

錯誤 4:忘記加 beta header

症狀:API 回傳 400 錯誤,說不認識 task_budget 參數。

原因:Task Budgets 是 Beta 功能,必須明確啟用。

解決

  • curl:加 --header "anthropic-beta: task-budgets-2026-03-13"
  • Python SDK:加 betas=["task-budgets-2026-03-13"]

實際應用場景:三個完整範例

場景一:代碼審查 Agent

def review_codebase(repo_path: str):
    client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
    
    response = client.beta.messages.create(
        model="claude-opus-4-7",
        max_tokens=100000,
        output_config={
            "effort": "high",
            "task_budget": {"type": "tokens", "total": 70000}
        },
        messages=[{
            "role": "user",
            "content": f"Review the codebase at {repo_path}. Focus on: 1) Architecture issues 2) Security risks 3) Performance bottlenecks. Provide a prioritized refactor plan."
        }],
        betas=["task-budgets-2026-03-13"],
        tools=[
            {"name": "read_file", "description": "Read file content"},
            {"name": "list_directory", "description": "List directory structure"},
            {"name": "run_tests", "description": "Execute test suite"}
        ]
    )
    
    return response.content[0].text

預算規劃

  • 讀檔案:~30,000 tokens
  • 分析:~20,000 tokens
  • 生成報告:~10,000 tokens
  • 緩衝:~10,000 tokens

場景二:資料分析 Agent

def analyze_dataset(csv_path: str):
    client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
    
    response = client.beta.messages.create(
        model="claude-opus-4-7",
        max_tokens=120000,
        output_config={
            "effort": "xhigh",  # 深度分析
            "task_budget": {"type": "tokens", "total": 90000}
        },
        messages=[{
            "role": "user",
            "content": f"Analyze {csv_path}. Find patterns, outliers, and correlations. Generate visualizations and a business insights report."
        }],
        betas=["task-budgets-2026-03-13"],
        tools=[
            {"name": "read_csv", "description": "Load CSV data"},
            {"name": "run_python", "description": "Execute pandas/matplotlib code"},
            {"name": "save_chart", "description": "Save visualization"}
        ]
    )
    
    return response.content[0].text

預算規劃

  • 讀資料:~10,000 tokens
  • 統計分析:~30,000 tokens
  • 視覺化:~20,000 tokens
  • 撰寫報告:~20,000 tokens
  • 緩衝:~10,000 tokens

場景三:多步驟研究 Agent(跨請求)

def research_topic(topic: str):
    client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
    
    # 第一階段:搜尋與閱讀
    response1 = client.beta.messages.create(
        model="claude-opus-4-7",
        max_tokens=80000,
        output_config={
            "effort": "medium",
            "task_budget": {"type": "tokens", "total": 100000}
        },
        messages=[{
            "role": "user",
            "content": f"Research '{topic}'. Find 5 key sources and summarize main arguments."
        }],
        betas=["task-budgets-2026-03-13"]
    )
    
    # 假設第一階段用了 45,000 tokens
    # 第二階段:深度分析(攜帶剩餘預算)
    response2 = client.beta.messages.create(
        model="claude-opus-4-7",
        max_tokens=80000,
        output_config={
            "effort": "high",
            "task_budget": {
                "type": "tokens",
                "total": 100000,
                "remaining": 55000  # 繼續用剩下的
            }
        },
        messages=[
            # 壓縮後的歷史
            {"role": "assistant", "content": response1.content[0].text[:500]},
            {"role": "user", "content": "Based on these sources, write a comprehensive analysis with counterarguments."}
        ],
        betas=["task-budgets-2026-03-13"]
    )
    
    return response2.content[0].text

進階技巧:結合 Adaptive Thinking 與 Task Budgets

Claude Opus 4.7 支援 thinking 參數(adaptive / enabled / disabled),可以與 Task Budgets 結合使用:

response = client.beta.messages.create(
    model="claude-opus-4-7",
    max_tokens=100000,
    output_config={
        "effort": "high",
        "task_budget": {"type": "tokens", "total": 60000},
        "thinking": "adaptive"  # 讓模型自己決定何時 thinking
    },
    messages=[{"role": "user", "content": "Complex analysis task"}],
    betas=["task-budgets-2026-03-13"]
)

adaptive 模式的優勢

  • 簡單步驟跳過 thinking(省 token)
  • 複雜決策自動觸發 thinking(提升品質)
  • 與 Task Budgets 搭配,讓模型在預算內自動優化 thinking 使用頻率

Task Budgets 與其他 Opus 4.7 新功能的搭配

Claude Opus 4.7(2026 年 4 月 16 日發布)還帶來其他新功能,可以與 Task Budgets 一起使用:

1. 高解析度圖片支援

最高支援 2,576px / 3.75MP(是前代的 3 倍)。當任務涉及圖片分析時,Task Budgets 可以幫你控制「讀多少張圖片」的成本。

2. 新增 xhigh effort level

介於 highmax 之間的思考深度。搭配 Task Budgets 使用:

{
  "effort": "xhigh",
  "task_budget": {"type": "tokens", "total": 80000}
}

適合「需要深度思考但有預算限制」的場景。

3. 1M token context window

Opus 4.7 支援 100 萬 token 的 context window,但這不代表你可以無限使用。Task Budgets 讓你在大 context 下仍能控制成本。

監控與除錯:如何查看實際消耗

API 回應中的 usage 欄位會顯示實際消耗:

{
  "id": "msg_xxx",
  "content": [...],
  "usage": {
    "input_tokens": 15234,
    "output_tokens": 8721,
    "cache_creation_tokens": 0,
    "cache_read_tokens": 12000
  }
}

計算實際預算消耗:

total_used = (
    response.usage.input_tokens +
    response.usage.output_tokens +
    response.usage.cache_creation_tokens
)

remaining_budget = initial_budget - total_used
print(f"已使用:{total_used} tokens")
print(f"剩餘預算:{remaining_budget} tokens")

注意cache_read_tokens 不計入預算(快取讀取是免費的)。

FAQ:Task Budgets 常見問題

Q1:Task Budgets 會讓回應變慢嗎?

A:不會。預算倒數是伺服器端自動注入的標記,不需要額外計算。實際延遲與不用 Task Budgets 相同。

Q2:可以中途修改預算嗎?

A:每次請求的預算是固定的。如果要修改,只能在下一次請求時用 remaining 參數調整。

Q3:Task Budgets 支援哪些模型?

A:目前(2026 年 5 月)只支援 Claude Opus 4.7。Sonnet / Haiku 不支援。

Q4:如果模型超預算怎麼辦?

A:Task Budgets 是軟性建議,可能超預算 5~10%。如果需要硬性上限,用 max_tokens 搭配。

Q5:Task Budgets 會影響 prompt cache 效果嗎?

A:預算倒數標記在快取中不匹配,修改 remaining 會使快取失效。如果不修改 remaining,快取正常運作。

總結:Task Budgets 讓 AI Agent 成本可控

Claude Opus 4.7 Task Budgets 解決了 AI Agent 開發的核心痛點:成本失控。透過設定 task_budget,你可以:

  • ✅ 給模型一個「成本目標」而不是「硬性截止」
  • ✅ 讓模型在預算內優先做最重要的事
  • ✅ 優雅地完成任務,而不是做到一半被截斷
  • ✅ 搭配 effort 調控品質與成本平衡
  • ✅ 跨請求攜帶剩餘預算,支援長時間任務

最佳實踐建議

  1. 先用較高預算(如 80,000)跑一次,觀察實際消耗
  2. 根據實際消耗設定合理預算(實際消耗的 1.2 ~ 1.5 倍)
  3. max_tokens 設為 task_budget.total 的 1.5 倍(給緩衝空間)
  4. 搭配 effortthinking: "adaptive" 優化品質與成本
  5. 監控 usage 欄位,持續調整預算

Task Budgets 目前仍在 Beta 階段,未來可能支援更多模型與計量單位(如時間、費用)。如果你的專案涉及長時間 agentic loop,現在就是最佳導入時機。


🚀 EvoForge 進化工坊|讓 Claude Code 會記憶、會學習、會進化 →

解壓縮 → 拖入 Claude Code → 輸入任意一句話,5 分鐘完成安裝

✅ EvoForge 核心功能:

🧠 三層記憶系統,50 Token 完成查詢(關掉不再忘記)

🔗 85-Token 跨對話橋接,任務中斷秒速恢復不重頭來

⚡ DCI 動態 Context 注入,省 70%+ Token

📈 Stop Hook 自動進化,同類任務 3 次自動腳本化

🛠️ 12 個核心技能,/斜線指令開箱即用

🤖 3 個子代理協作,不消耗主對話 Token

原價 NT$1,288

NT$600

前 100 名優惠 · 買斷不收月費 · MIT 授權可自由修改

Mac & Windows 適用 · 確認匯款後立即出貨 · LINE:kenemail2

Compare Listings

TitlePriceStatusTypeAreaPurposeBedroomsBathrooms

Compare