這篇是給「常常被長文資料折磨」的人:我用 Opus 4.6 的 1M context 做一次可重現的 log/文件摘要流程。
先講結論
- 1M context 真的能吃很大檔,但不是萬靈丹:成本跟延遲都上去,你還是需要「前置濾掉垃圾訊息」。
- 我最後留下的流程是:快速抽樣 → 清洗 → 大段摘要,不是一口氣塞爆。
- 如果你只要重點結論,先做一次精簡摘要再進大模型,效果反而更穩。
背景 / 為什麼需要這個
你有沒有遇過「整包 log 300MB」或「一整年的 Notion 匯出」?以前只能切片,切到最後自己都忘了前面在講什麼。這週 Claude Opus 4.6 跟 Sonnet 4.6 開放 1M context(官方公告 3/13),我就想:那我能不能一次把整包文件塞進去,直接得到結論?
答案是:可以,但你會想先減肥。
實作步驟
Step 1:準備大型文本(先清洗)
我用的是「一天的系統 log + 週報」混在一起的資料。先把明顯無用的行砍掉:
# 只保留 error / warn / slow query
rg "(ERROR|WARN|slow query)" raw.log > filtered.log這一步很關鍵,不然你就是在花錢請 Claude 看垃圾。
Step 2:用 Node 直接送進 1M context
官方 SDK:@anthropic-ai/sdk。我做一個最小可跑的腳本,把檔案整包讀進去。
npm i @anthropic-ai/sdk// scripts/opus-1m-summarize.mjs
import fs from "fs";
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY });
const input = fs.readFileSync("filtered.log", "utf8");
const res = await client.messages.create({
model: "claude-opus-4-6",
max_tokens: 1200,
temperature: 0.2,
messages: [
{
role: "user",
content: `你是一個 SRE。請讀以下 log,輸出:\n1) 重大異常\n2) 可疑趨勢\n3) 我應該先處理哪三件事\n\nLOG:\n${input}`
}
]
});
console.log(res.content[0].text);Step 3:驗證輸出(不要只看一句話)
我會抽三段回去對照原始 log:
rg "<關鍵字>" -n filtered.log | head -n 20如果輸出跟原文對不起來,代表你 prompt 或清洗有問題。
Step 4:加入「前置精簡」讓成本下降
最後我在送進 1M 之前,先做一個小模型的粗摘要:
// scripts/quick-skim.mjs
const skim = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 800,
temperature: 0.2,
messages: [{
role: "user",
content: `請用 15 條 bullet 整理以下 log 的重點趨勢:\n${input}`
}]
});
fs.writeFileSync("skim.txt", skim.content[0].text, "utf8");然後把 skim.txt + filtered.log 一起送進 Opus,效果穩很多。
實際成果
- 100MB 級的 log,不用切片就能一次拿到結論。
- 重點異常能被抓到,但如果 log 夾雜太多「重複資訊」,會被摘要掉。
踩坑紀錄
- 成本直線上升:你塞得越多,越需要有「先清洗」這一步。
- 回覆延遲變長:尤其是企業網路環境,可能被 timeout 卡住。
- 太長的原文會稀釋重點:你以為模型會「自動忽略雜訊」,但它會認真讀完。
延伸閱讀 / 下一篇預告
- Claude Blog:1M context GA(Opus 4.6 / Sonnet 4.6,2026-03-13)
- Anthropic Newsroom:Opus 4.6 發布(2026-02-05)
- 下一篇我想實測「互動式圖表輸出」:到底能不能直接拿來做工程週報?
基於實際工作流程嘗試整理。程式碼可直接執行。