📌 本文重點
- Opus 4.7 更適合長上下文、多步任務與自我校對
- 可作為常駐 coding / ops Supervisor Agent
- 透過工具層與治理設計,接手真實 CI / PR pipeline
Opus 4.7 解決的痛點很直接:以前你不太敢把多步任務完全丟給 LLM 自動跑——上下文記不住、自我檢查不足、程式碼改著改著就壞掉、Agent 亂調工具、成本爆炸。Opus 4.7 把這幾個點同時強化:長上下文 + 自我校對 + agentic coding,讓它不再只是「聊天模型」,而是可以放進持續運行 pipeline 的一個穩定元件。
重點說明:Opus 4.7 對 Agent 能力的實質升級
1. 長上下文 + 自我校對 = 多步任務可「放手」
Opus 4.7 官方強調:
- 更長上下文:可以在一次對話裡管理整個任務歷史、spec、log、既有程式碼與錯誤紀錄,減少你自己在應用層做 chunk & stitching。
- 自我核查輸出:模型在回傳前會傾向先「檢查」自己的推論、程式碼或計算結果,等於內建一層 lightweight critic。
💡 關鍵: 更長上下文搭配自我核查,實際上讓多步任務可以交給單一模型從頭管到尾,而不是切給一堆臨時腳本與輔助模型。
對多步 pipeline(例如:分析 log → 找 root cause → 編輯程式碼 → 產 PR)最大的好處是:
- 可以讓 Supervisor Agent 一次看到完整任務 timeline,而不是一段一段 patch;
- 減少你在系統外再包一層「審題 / 校對」模型的需求(但關鍵步驟仍建議顯式加 guardrail)。
2. Agentic Coding:如何讓 Opus 4.7 當常駐 coding / ops agent
Opus 4.7 在 程式碼規劃 + 工具調用 上的品質明顯提高,實務上你可以讓它做:
- 長期追蹤一組 repo 的變更,持續提出 refactor / bugfix 建議;
- 自動跑 CI log 分析 → 開 issue → 出 patch → 發 PR;
- ops 向:監看監控告警 → 初步診斷 → 呼叫 runbook 工具。
💡 關鍵: 把「讀檔、改檔、跑測試、開 PR」封裝成工具給 Opus 4.7 用,它就能長期常駐在 repo / pipeline 中當實際執行者,而不是只當輔助聊天夥伴。
核心設計重點:
- 工具調用(Tool use)
- 用
/v1/messages+ tools 讓 Opus 負責選擇何時 call tool、填參數; -
將「讀檔、改檔、跑 test、開 PR」抽成安全封裝的工具,不讓模型直接操作 Git。
-
程式碼修改與回滾
- 永遠透過 「diff-based API」 修改程式碼,而不是讓模型輸出整檔;
-
由工具層實作版本管理(Git branch/commit),模型只負責描述修改 intent。
-
安全護欄設計
- 用 角色+權限 限制工具:
code_writer不能直接deploy,ops_agent只能操作 sandbox; - 重要操作強制走「人審 + MCP gateway」流程。
3. 在多代理系統中的定位:Supervisor / Orchestrator 角色
以「Supervisor Agent」架構來看(類似 Towards AI 提到的 blueprint):
- Opus 4.7 很適合擔任 Supervisor / Orchestrator:
- 拆解使用者目標 → 任務樹;
- 安排子代理:搜尋 Agent、執行 Agent、評估/QA Agent;
-
維護整個任務的 context & memory。
-
MCP 或你自建的工具層則提供:
- 可治理的工具執行(權限、審計 log、版本管理);
- 與企業內部 API / 資料庫 / CI/CD / issue tracker 的橋接。
重點:Supervisor 不直接做所有事,而是負責問對問題、調對工具、把任務切給對的子代理。Opus 4.7 的長上下文 +較穩定規劃能力,剛好補上這個角色。
實作範例:自動 triage issue → 修 bug → 開 PR
以下示意使用 Claude API + MCP / 自建工具,流程:
- 新 issue 建立 → Webhook 觸發 Supervisor;
- Supervisor(Opus 4.7)分析 issue,決定是否可自動處理;
- 呼叫 repo 工具 找到相關檔案、測試;
- 呼叫 code-agent(也是 LLM 或工具) 產生 patch;
- 呼叫 git/pr 工具 開 PR,必要時標記需要人工 review。
1. Supervisor 的 messages 結構
POST /v1/messages
{
"model": "claude-3-opus-4.7", // **關鍵:Supervisor 指定 Opus 4.7**
"system": "你是Supervisor Agent,負責協調工具與子代理.\n" +
"規則:\n" +
"1. 僅在需要時使用工具,不要自己幻想結果。\n" +
"2. 高風險操作(寫檔、開PR)前,一定先提出計畫並自我檢查。\n" +
"3. 若不確定,改為標記需要人工審核.",
"tools": [
{ "name": "repo_search", "input_schema": {"type": "object", ...} },
{ "name": "repo_read_file", "input_schema": {"type": "object", ...} },
{ "name": "repo_edit_file_diff", "input_schema": {"type": "object", ...} },
{ "name": "run_tests", "input_schema": {"type": "object", ...} },
{ "name": "create_pr", "input_schema": {"type": "object", ...} }
],
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "有新的 GitHub issue:#1234 API 回傳 500,log ID=abcd...\n" +
"請決定是否可以自動修復,若可以,直接走:分析→修改→測試→開PR。"
}
]
}
]
}
2. 工具呼叫:diff-based 程式碼修改
在第一次 tool call 前,先讓 Supervisor 規劃:
1. 讀取相關檔案與測試檔。
2. 產生修改計畫與預期影響範圍。
3. 套用最小 diff 修改程式碼。
4. 執行相關測試。
5. 測試通過後建立 PR,標記『自動修復,請人工 review』。
接著模型會回覆一個 tool 呼叫(格式依 SDK):
{
"role": "assistant",
"content": [
{
"type": "tool_use",
"id": "toolu_1",
"name": "repo_search",
"input": {
"query": "500 error log id abcd",
"max_results": 10
}
}
]
}
你的應用層接到後:
- 執行
repo_search(你實作的服務,可能包 Git grep / code search); - 把結果以
tool_result回餵:
{
"role": "tool",
"tool_use_id": "toolu_1",
"content": [{
"type": "text",
"text": "找到可能相關檔案: src/api/user.ts, src/service/userService.ts ..."
}]
}
之後 Supervisor 可能呼叫:
{
"type": "tool_use",
"name": "repo_edit_file_diff",
"input": {
"path": "src/service/userService.ts",
"diff": "@@ -42,6 +42,10 @@\n- const result = await dao.getUser(id);\n+ const result = await dao.getUser(id).catch(e => {\n+ logger.error('getUser failed', { id, err: e });\n+ throw new HttpError(500, 'USER_LOOKUP_FAILED');\n+ });"
}
}
這裡的關鍵是:
repo_edit_file_diff工具會:- 把原始檔讀出來;
- 套用 diff(可用
git apply或自寫 patch 邏輯); - commit 到專用 branch;
- 回傳新的 snippet / commit id;
- 回滾 就交給 Git:若後續測試失敗,由 Supervisor 呼叫
git_reset_to_commit(另一個工具),或人工介面一鍵 rollback。
3. MCP / 自建工具層設計示意(pseudo code)
// MCP Gateway / 工具伺服器(Node 範例)
import express from 'express';
import { searchRepo, editFileWithDiff, runTests, createPR } from './infra';
const app = express();
app.use(express.json());
function requireRole(role: string) {
return (req, res, next) => {
const callerRole = req.headers['x-agent-role'];
if (callerRole !== role) return res.status(403).send('forbidden');
next();
};
}
app.post('/tools/repo_edit_file_diff', requireRole('supervisor'), async (req, res) => {
const { path, diff } = req.body;
// 審計 log
console.log('[AUDIT] edit_file_diff', { path, by: 'supervisor' });
const result = await editFileWithDiff(path, diff);
res.json(result);
});
// 其他工具類似實作...
app.listen(3001);
Supervisor Agent 呼叫工具時,由你的 orchestrator 轉成 HTTP request,並加上 x-agent-role: supervisor 等標頭,實作權限與審計。
建議與注意事項:成本、延遲與治理
1. 成本與延遲控制
- 長上下文 ≠ 無腦塞所有東西:
- 為 Supervisor 設計 分層上下文:
- 任務規格(長期保持);
- 當前子任務狀態(中期);
- 最近工具回傳、log(短期)。
-
透過你的應用層做 context summarization / state store,不要每次把整個任務歷史丟進去。
-
對長跑任務(例如多輪 patch + test):
- 使用
max_tokens/tool_temperature控制回覆長度與探索度; - 將「細節 log」放在外部存儲,必要時讓模型用工具查詢,而不是全部當成 prompt。
2. 避免過度「自作主張」
Opus 4.7 的推理與自我校對更強,副作用是它會更願意自己決定事情。控制方式:
- 在 system 提前定義 contract:
- 任務邊界:可修改哪些 repo / namespace;
- 停機條件:
- 測試連續失敗 N 次 → 停止修改,標記需要人工;
- 連續無法重現 bug → 輸出完整調查報告,停止嘗試;
- 審核步驟:
- 高風險變更必須產生「變更說明 + 風險清單」給人看。
範例 system 片段:
你是後端修 bug 的 Supervisor Agent,遵守以下 contract:
- 只能操作 repo `my-service`,不可動 infra repo。
- 若連續 2 次修改導致測試新增失敗,立即停止,輸出調查報告,等待人工處理。
- 不得直接部署,只能開 PR,並在 PR 描述中列出:問題原因、修改內容、風險與 rollback 方式。
3. 對話風格變更對既有工作流的影響
Opus 4.7 更傾向「先思考再回答」,你會看到:
- 回覆結構更完整,但文字量可能變多,對老工作流可能:
- 冗長說明擾亂你原本靠 pattern matching 的 parser;
- 原本 prompt 期待的 JSON 結構會被「多講兩句」破壞。
💡 關鍵: 若你的系統嚴重依賴固定輸出格式,必須明確要求「只輸出 JSON」,並用 schema 驗證與重試機制包住模型。
建議:
- 儘量讓模型輸出 單一結構化 payload,多餘說明放在欄位內:
{
"plan": "文字說明…",
"actions": [ ... ],
"needs_human_review": true
}
- 在
system明確要求:僅輸出 JSON,不要額外文字,並在應用層加 schema 驗證,若解析失敗就回饋「格式錯誤,請重新輸出」。
結論:Opus 4.7 的能力重點不是「更會聊天」,而是更適合當有邊界、有工具、有治理的 Agent 核心。只要把它放在 Supervisor 位置,搭配 MCP 或自建工具層,控制好 contract / 成本 / 權限,你就可以開始放心讓它接手一部分真實的 coding / ops pipeline,而不只是做輔助建議。
🚀 你現在可以做的事
- 在現有 LLM 應用中,先挑一條「分析 log → 修 bug → 開 PR」的小流程改由 Opus 4.7 當 Supervisor 嘗試落地
- 設計一組
repo_search、repo_edit_file_diff、run_tests、create_pr工具,並封裝成 MCP 或內部 HTTP 服務- 為 Opus 4.7 Supervisor 撰寫明確的 system contract(任務邊界、停機條件、審核規則),再逐步擴大可自動處理的任務範圍


發佈留言