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,它可能會:
- 讀 README.md(2,000 tokens)
- 讀 10 個主要檔案(20,000 tokens)
- 執行測試看結果(5,000 tokens)
- 生成重構建議(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-13header 才能啟用 model必須是claude-opus-4-7output_config裡同時設定effort和task_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
介於 high 和 max 之間的思考深度。搭配 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調控品質與成本平衡 - ✅ 跨請求攜帶剩餘預算,支援長時間任務
最佳實踐建議:
- 先用較高預算(如 80,000)跑一次,觀察實際消耗
- 根據實際消耗設定合理預算(實際消耗的 1.2 ~ 1.5 倍)
max_tokens設為task_budget.total的 1.5 倍(給緩衝空間)- 搭配
effort和thinking: "adaptive"優化品質與成本 - 監控
usage欄位,持續調整預算
Task Budgets 目前仍在 Beta 階段,未來可能支援更多模型與計量單位(如時間、費用)。如果你的專案涉及長時間 agentic loop,現在就是最佳導入時機。
解壓縮 → 拖入 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

