Claude Agent SDK 排 cron 跑交易 bot
訂閱怎麼扣、跑掛扣不扣
你在 X 上看到有人拿 Claude Code 訂閱塞進 GitHub Actions,每小時排一次 cron 幫他讀鏈上大戶單,順手發 webhook 去交易所下單——也就是讓 AI 把「該買」寫成 POST 請求丟給執行端。看起來像每月 $20 買一支 24/7 的量化研究員。沒有人先跟你講的是:Anthropic 那個「SDK 專屬 credit」的方案原訂 6 月 15 日生效,當天就被暫停。
這篇不比較哪家 AI 寫得比較好,也不評論你的策略。給你三件事:SDK 怎麼算錢、cron 該排什麼、以及為什麼「Claude 決策、webhook 送單、TVSBot 執行」這條分工,比讓 Claude 直接握 API key 更安全。API key 就是能對交易所實際下單的那把鑰匙——讓 LLM 握著、又跑在容易 crash 的 cron 上,就是這篇要解決的問題。
那個「Agent SDK 專屬 credit」你可能聽說了——它在原訂生效當天就被暫停
Anthropic 的 support 文件現在(2026-08-13 查證)在最上方掛著一段更新。原文:
claude -p, and third-party app usage still draw from your subscription's usage limits. The previously announced monthly credit, which would have been available to eligible claimants in connection with these changes, isn't available.」白話:本來 6/15 要給的那個「SDK 專屬 credit」——把 SDK 的用量從訂閱視窗切出來、獨立記帳的那個 pool——沒了。現在 claude、claude -p、你用 Agent SDK 寫的 Python 或 TypeScript 腳本,全部吃「同一個 5 小時視窗」。額度用完就得等下一個窗,不會有另一個 pool 幫你續命。
如果你在網路上看到「$20 Pro 訂閱送 $20 SDK credit」這種寫法,那多半是 6/15 當天的舊訊息,作者沒回頭看官方的後續更新。被暫停之前那份文件裡列的數字現在頁面上還看得到,但**它們不生效**。support 文章末尾的原話是「We're working to update the plan to better support how users build with Claude subscriptions」——沒有新時程,沒有新細節。實務上就當它不存在。
訂閱可以跑 SDK,但那條路有兩個限制
訂閱可以繼續跑 Agent SDK,Anthropic 明確允許自用。但有兩個限制得先搞清楚:
| 情境 | 官方立場 | 實際會撞到什麼 |
|---|---|---|
| 自用一支 bot,跑幾支策略給自己看 | 可以走訂閱,吃 5 小時視窗 | Sonnet 5 密集跑幾輪就會撞到 rate limit,別的視窗裡你自己用 Cursor 也會受影響 |
| 包成產品給別人用(幫別人下單、收訂閱) | 不允許用訂閱走這條,要用 API key | 被抓到可能被停權,之前累積的用量也一併凍 |
| 放 cron 每 5 分鐘跑一次自動化任務 | 技術上可以,官方沒禁 | 視窗會被同一支 bot 全部吃掉,你自己在 IDE 就沒得用 |
來源:Anthropic Agent SDK Overview 與 Quickstart 頁面(查證日期 2026 年 8 月)。「不允許」那條的原文是:Unless previously approved, Anthropic does not allow third party developers to offer claude.ai login or rate limits for their products。
Overview 頁把話講得很清楚:「Unless previously approved, Anthropic does not allow third party developers to offer claude.ai login or rate limits for their products, including agents built on the Claude Agent SDK. Use the API key authentication methods described in the Quickstart instead.」
你要包成服務給別人用,走 API key,就是用多少 token 付多少錢。Quickstart 頁列了五個 provider——直接 Anthropic Console、Amazon Bedrock(環境變數 CLAUDE_CODE_USE_BEDROCK=1)、Claude Platform on AWS(CLAUDE_CODE_USE_ANTHROPIC_AWS=1)、Google Vertex(CLAUDE_CODE_USE_VERTEX=1)、Microsoft Foundry(CLAUDE_CODE_USE_FOUNDRY=1)——**沒有一條寫著能用 claude.ai OAuth**。
API key 的費率:一支 cron 每天大概燒多少
用 API key 跑就是照 token 計費。input token 是你送給模型的內容(system prompt、對話歷史、tool 結果),output token 是模型回覆的內容,兩者不同單價。截至 2026-08-13 官方 pricing 頁的價目:
| 模型 | Input(每 100 萬 token) | Output(每 100 萬 token) |
|---|---|---|
| Haiku 4.5 | $1 | $5 |
| Sonnet 5 | $2 | $10 |
| Opus 5 | $5 | $25 |
| Fable 5(多模態旗艦) | $10 | $50 |
來源:claude.com/pricing(查證日期 2026 年 8 月)。實際帳單會另加 prompt caching 折扣與 batch API 折扣。
一支「每小時跑一次、每次讀鏈上大戶單、產訊號、決定下不下」的 agent,用 Sonnet 5 粗估大概是這樣。下面是我算的,不是 Anthropic 官方數字:
這個數字會因為 system prompt 長度、tool call 次數、agent 思考深度變動。想對帳去 「platform.claude.com/usage」 那一頁——SDK 自己回報的 total_cost_usd 是本機估算,可能跟真實帳單漂移(官方原文:「client-side estimates, not authoritative billing data」)。這個數量級告訴你:$20 Pro 訂閱**假設**當初能拆成 SDK 專屬 credit,一支每小時 bot 就把它吃光了,別的量化研究員一起跑當場爆。走 API key 拿 pay-as-you-go 的可預測性,通常比繼續擠訂閱視窗好。
跑到一半 crash,那些 token 還是照算
這是最容易低估成本的地方。Anthropic 的 Cost Tracking 頁有一節「Track costs on failed conversations」,白紙黑字寫:
usage and total_cost_usd. If a conversation fails midway, you still consumed tokens up to the point of failure. Read cost data from every result message, whether its subtype is success or one of the error subtypes.」意思是:agent 走到第 8 個 tool call 才因為交易所回 429(rate limit 錯誤)掛掉,前面 7 個 tool call 的 input/output token 全都算你的。
更麻煩的一種:process crash。同一份文件另外寫,當 claude subprocess 崩潰時,最後那筆 error_during_execution result message 的 usage、total_cost_usd、modelUsage 三個欄位可能全部是 0——官方原文「every cost field may be zeroed」。但那只是 SDK 這一側回報壞了,Anthropic 那頭的帳單照樣扣。
total_cost_usd 是用建構時打包的價目表在你本機算的,跟 Anthropic 帳單可能會漂移。真要對帳,去 platform.claude.com/usage 看那一頁——那才是權威帳單。Cron 排的是「決策」,不是「下單」——為什麼要拆兩層
這是最容易踩壞的一段設計。看到 learnwithmeai 那個 Hyperliquid 抄單 bot 直接把整個流程都塞給 Claude Code 加 GitHub Actions 跑,很自然會想照抄。但那個 bot 是 paper trading——用 $10,000 虛擬資金記帳,錯了就記帳本錯,不會真的爆倉。要接真錢,兩層要拆開。
| 設計 | Claude 全包(自己抓資料、決策、下單) | 拆兩層(Claude 只發訊號給執行端) | |
|---|---|---|---|
| 誰握你的交易所 API key | Claude Agent 的 runtime | 執行端(例如 TVSBot 這類服務) | |
| Claude 幻覺或輸出格式漂了 | 可能直接下錯單 | webhook payload schema 卡住,執行端拒單 | |
| Rate limit 或 crash 時 | 單子送到一半斷線,狀態不明 | 已收到的訊號在執行端排隊、可 idempotent 重送 | |
| 多台機器、多把 key fan-out | 要自己在 agent 裡寫 | 執行端本來就設計來多對多 | |
| 測試新策略 | 要拉一份新 agent、新 key | 執行端把策略切成 dry-run 模式 |
舉例來說,TVSBot 的執行端接到 webhook 之後,會先做四件事再下單。第一,驗 URL 上的 webhook_token(每支策略隨機發的一組 token)。第二,驗 payload 內的 secret,用 hmac.compare_digest 做常數時間比對。第三,跑 rate limit(每個 token 每分鐘 60 次)。第四,比對 60 秒內同 dedup_hash 的訊號就直接丟掉。這四層你在 Claude Agent 內部自己重寫也可以,寫得起來但很難寫對——尤其是 idempotency 與 dedup 的邊界條件。
Cron 每天該排幾次?從「模型呼叫延遲」倒推
真正決定 cadence 的不是「你想多常盯」,是模型呼叫的往返延遲,也就是 agent 從發問到拿回完整回覆的時間。Sonnet 5 一次帶 8k input/2k output 的呼叫加上 3 次 tool call 往返,實際落在 15~45 秒之間,會受 prompt caching 命中率與 output token 長度影響。
秒級策略不要碰 Agent SDK。不是它做不到,是它做這件事很貴——每次呼叫都是完整的 LLM inference,你要的是 sub-100ms 反應,那是 rule-based 執行端的事。模型幫你在離線時想清楚規則就好。
官方對「長期跑」的建議,其實是另一個產品
Anthropic 的 Agent SDK Overview 頁上有一張決策表,把「long-running or asynchronous agents」這條 use case 主動推向另一個產品:
Managed Agents 現在的價錢是 $0.08 per session-hour active runtime,token 另外算(來源同上 pricing 頁)。官方沒有說 Agent SDK 不能放 cron——Hosting the Agent SDK 那份文件裡明確有一節「Long-running sessions」,講的就是把 SDK 放進 container 長期跑,還提供 SessionStore 讓你把 session 檔案存到 S3、Redis、Postgres。技術上支援,但那是你自己扛 infra。真的懶得管的話,Managed Agents 是官方給的答案,代價是每小時 $0.08 加 token。
如果你堅持讓 Claude 直接下單,先看這幾個地雷
- Session storage 一定要用 durable adapter。SDK 預設把 session 存本機磁碟,容器一重啟就沒了。Anthropic 官方給了 S3、Redis、Postgres 三個 reference implementation,挑一個接上。
- 不要 fire-and-forget。下單這種事一定要在 result message 裡確認
usage.output_tokens有值再繼續——crash 時那個欄位可能是 0,但你也不知道到底送出去沒。 - Idempotency key 自己帶。Agent 重跑同一個 prompt 不會產出一模一樣的 tool call 順序,你要自己算一組 hash(訊號時間戳 + 策略 id + symbol)當 dedup key,執行端才能拒重複。
- Kill switch 要在執行端不是 Claude 端。你要能一個按鈕停掉所有下單,這個按鈕不能靠 Claude 檢查——它可能正在被 rate-limited、正在 crash、正在幻覺出一個很說服你的理由要繼續跑。
- Rate limit 錯誤要當可重試,schema 錯誤要當失敗。HTTP 429 拿到之後等 5~60 秒重試;
tool_use失敗直接失敗,因為那通常是 schema 對不上,重試也一樣。
誠實的一段:我們不負責 Claude 那頭的成本
這篇談 SDK 成本、rate limit、crash 帳單,寫得像 TVSBot 執行端能替你擋掉這些——不能。我們負責的是 webhook 進來之後那一段。你的 Claude Agent 跑掛、你的 API key 被 rate-limited、你的訂閱吃完 5 小時視窗,那些事發生在你送 webhook 之前,執行端根本沒收到訊號,也就沒得回報你。
另外我們自己沒有替 Agent SDK 的成本結構出過任何 SLA——上面那些估算都是我照官方 pricing 表算的,Anthropic 隨時可以改。TVSBot 在 2026 年 8 月這個時間點支援 Binance、OKX、Bitget、Bybit、Gate.io、BingX 與 Hyperliquid 共七家的下單接口,非託管(你自己帶 API key,Fernet 加密後存),支援策略層級的 dry-run 與 kill switch。但 Anthropic 那邊的計費你要自己盯,我們不代收也不代付。
常見問題
我看到有人拿 GitHub Actions 免費跑 Claude Code 24/7,是不是我也可以?
官方那個「$20 SDK 專屬 credit」到底會不會回來?
Claude 直接握我的交易所 API key 有多危險?
place_order(symbol, side, qty), 它可能給你「action: buy, amount: small」這種模糊寫法—— 你的 tool 那邊怎麼解讀「small」?合規面:訂閱走 SDK 對「金融決策」的自動化本來就有額外條款, 出事的責任分配會複雜。 拆兩層之後,Claude 只是把「該買該賣」寫成人類看得懂的 payload, 執行端有 schema 卡著,錯了就拒單而不是下錯單。TVSBot 收到 webhook 之後多快下單?
跑掛的 token 官方到底怎麼算?
usage 可能全部是 0, 但 platform.claude.com/usage 那一頁才是權威帳單,對帳去那裡看。Get started
把 Claude 產出的訊號 webhook 過來,下單這段交給 TVSBot——非託管、你自己帶 API key、支援 7 家交易所、先 dry-run 再上線、帳戶層級 kill switch 自己設。
免費開始使用