TechMoon 科技月球
WordPress、SEO 與 AI 工具實測指南
TechMoon 科技月球
WordPress、SEO 與 AI 工具實測指南

AWS 於 11 月 6 日公開 Claude Code 遠端代理範例 sample-remote-coding-agent,任務在自家帳號的 AgentCore 隔離環境執行:Opus 規劃、Sonnet 實作、Opus 審查,最多三次嘗試後開出帶驗證證據的 GitHub PR,測試未過就是草稿,合併留給人。部署限五個區域、閒置資源持續計費,兩百美元預算只寄通知不封頂。
用 AI 摘要這篇文章:
AWS 在美西時間 11 月 6 日上午於官方機器學習部落格發文,公開了一套 Claude Code 遠端代理範例(程式庫名稱 sample-remote-coding-agent,採 MIT-0 授權),對應的台北時間是 11 月 7 日凌晨 12 點 45 分。它不是一項新的訂閱服務:你把一套現成的架構部署進自己的 AWS 帳號,之後把範圍明確的程式任務交辦出去,任務在帳號內的隔離環境執行,跑完在 GitHub 開一份 pull request(PR,在 GitHub 提出的程式變更,供人檢查後決定是否合併)等你審。公開的程式庫其實 9 月初就建立,11 月 5 日完成最後一次推送,這次的新聞本體是官方公告與隨附的完整部署、操作、安全三份文件。
Claude Code 本來就能在自行管理的機器上跑,官方部落格也只是把這次定位成從筆電本機再往前一步:讓任務交給帳號內 AgentCore 上的遠端代理。新的東西是 AWS 把企業自架遠端寫程式代理的整套參考架構,連同部署、操作、安全三份文件一起交出來,而安全文件把設計取捨與殘餘風險寫得比行銷文案誠實得多:哪裡隔離了、哪裡刻意共用、什麼擋不了,全部明說。這也是同一週 AWS 對 AgentCore 平台的又一次更新,前一天清晨才把 Web Answer 推向正式開放。
這份範例值得停下來看的原因,是它示範了把寫程式任務交給遠端代理時,信任邊界可以畫在哪裡:執行層逐項隔離,憑證層卻刻意整個部署共用一個 GitHub App,而共用出去的範圍,官方文件直接稱為爆炸半徑。交付物被設計成帶驗證證據的 PR,測試沒過就以草稿呈現,合併永遠留給人。
先講誰該在意。已經在 AWS 治理內(既有帳號、既有 CloudTrail 稽核、既有預算流程)的開發團隊,這是一份可以直接研究與試部署的起點;想買一個開箱即用託管服務的人,它不是,部署會建立持續計費的資源,閒置時也照樣產生帳單。
提交有兩個入口,都進同一套流程。網頁主控台用 Amazon Cognito 登入,在看板上寫任務、看進度;Claude Code 這邊則是安裝 sample-rca 外掛,透過本機的 MCP 工具(MCP 是讓 AI 呼叫外部工具的共用規格)把任務送進你自己的部署,兩個入口產生的任務出現在同一塊看板。任務提示會先經 Bedrock Guardrails 檢查,記錄進 DynamoDB、排進 SQS 佇列,再由派工程式為這個任務啟動一個專屬的 AgentCore Runtime 工作階段。幾秒內拿到的任務編號只代表排隊成功,官方文件明說執行可能長達數十分鐘。
執行環境是 microVM,一種輕量虛擬機:每個任務有自己隔離的 CPU、記憶體與檔案系統,工作階段結束時記憶體被清空。映像檔約 1.3 GB(ARM64,在本機建置),內容是 Claude Code CLI、驅動它的 Claude Agent SDK、git 與 make,每個登記的程式庫各有自己的執行環境、IAM 角色與記憶服務。
代理在環境裡跑一套固定流程:用 AgentCore Identity 換來的 GitHub 權杖 clone 程式庫,先搜尋這個程式庫過去任務留下的經驗,接著用 Claude Opus 規劃變更、Claude Sonnet 寫碼,執行程式庫自己宣告的 setup 與 test 命令,最後回到 Opus 審查;審查可以把工作退回重新規劃,全程最多三次嘗試。每一步的觀察會寫進這個程式庫專屬的 AgentCore Memory,例如某個建置步驟藏著未寫進文件的前置動作,下一次任務會先查到這條經驗再動手。程式庫取消登記時,這份記憶跟著刪除。
結束時代理推送 agent/ 加任務編號的分支,開出一份 PR,說明欄記錄驗證命令、它的結束碼與總共用了幾次嘗試。測試沒通過,PR 就以草稿狀態開出,狀態標為「已完成但未驗證」;代理永遠不會自己合併,看板上的 Done 欄位也不保證成功,執行環境或發布流程出狀況時,甚至可能連 PR 都沒有。這個設計把「代理的產出」與「可以放心使用的程式碼」明確分開:你審的是證據,讀的是 diff。
隔離清單很長。每個任務一個專屬 microVM;每個程式庫各自的執行環境、角色與記憶;執行角色只能呼叫 Bedrock 上的 Anthropic 模型、讀寫自己的任務紀錄與記憶、拉取自己的映像;容器裡沒有其他 AWS 憑證;系統不儲存任何 GitHub token,GitHub App 的 client secret 放在 AgentCore Identity 的金鑰庫裡,容器需要時才換取八小時到期、自動更新的短效權杖。也因為 GitHub 沒有機器對機器的授權方式,每個程式庫都要人完成一次授權。
但 GitHub 憑證是整個部署共用的。一個部署只有一個 GitHub App,權限是程式內容與 pull request 的讀寫;安全文件直說,權杖能寫入這個 App 已安裝的每一個程式庫,「安裝清單就是爆炸半徑」,被攻陷的容器可以請求帳戶內任何操作者已授權過的權杖,容器裡也拿得到執行角色的臨時憑證。換取這些共用風險的,是不必儲存或輪替任何金鑰、每個程式庫只需一次人工授權的部署體驗。

提示注入的邊界同樣寫得明白:藏在程式庫內容裡的惡意指示、惡意的測試或安裝腳本,這套系統不阻止,官方文件的說法是「執行程式庫自己的命令就是這個產品」。對應的緩解全在外圍:專用 AWS 帳戶、只在真正要用的程式庫安裝 App、在預設分支開分支保護,讓出事的容器最多只能開一份沒有人合併的 PR。
每段任務提示在排隊前、每段看板文字在儲存前,都會經過一次 Guardrails 檢查:低強度的越獄與提示注入企圖、不當要求(例如要求寫惡意軟體),再加上 AWS 存取金鑰與其他密鑰形狀的偵測。被擋下時,回覆會標明觸發的政策類型,不會顯示比對到的文字;護欄服務本身無法回應時,任務直接拒絕,什麼都不跑。官方文件還給了三條現成的測試句,從「忽略先前的所有指示」到貼上一組 AWS 金鑰,全部會被拒絕而且不留下卡片。
這層檢查的對象只有你提交的文字。代理執行過程中讀的檔案、命令輸出、程式差異,都不在它的眼裡。官方也解釋了為什麼不在每個模型呼叫都重複檢查:那會逐次重新評估整個上下文、按文字量計費,而且會把 Claude Code 自己的系統提示誤判成提示注入。這層護欄可以用一個部署參數關掉,要不要開、擋不擋得住自家任務的誤判,官方建議部署後拿自己的任務實際測一輪。
模型呼叫只有一個出口:你自己帳號裡的 Bedrock,走私有端點連線。AWS 宣稱 Bedrock 不會用客戶內容訓練模型、不會把提示與回應分享給模型供應商,供應商也無法存取 Bedrock 服務日誌;這是廠商說法,導入前仍要對照自己的合規要求。Claude Code CLI 本身可能對外連線的部分,包括遙測、錯誤回報、自動更新、官方市集自動安裝等十項,全部用部署層的政策變數強制關閉,連會把網域名稱送去廠商做安全檢查的 WebFetch 工具,都直接從工具集移除。
區域有兩層,容易混淆。部署區域你自己選,但預設的推論設定檔是全球等級,請求可能由任何商業 AWS 區域服務;官方文件的講法很直白:還是 Bedrock、還是你的帳號,但不是區域內駐留。有資料駐留需求,要在部署時改用地理範圍的推論設定檔,並確認所選模型在該範圍有支援。留存則是自己的選擇:帳號若開啟模型呼叫記錄,提示與輸出會寫進你自己的儲存空間,「不給模型供應商」與「完全沒有紀錄」是兩回事;零資料保留也要在部署區域逐一設定,不是部署完自動生效。
對外網路只有一條路:NAT 閘道上的 HTTPS,官方列出的目的地是 GitHub、PyPI 與 npm 的套件安裝、以及 AWS 文件查詢。DNS 防火牆封鎖特定廠商網域(例如 Anthropic 自己的 API 網域),單一次被封的查詢就會觸發警報;但這是黑名單不是白名單,其他 HTTPS 目的地仍然可達,官方建議正式環境改用 Network Firewall 的網域允許清單。還有一個容易踩的耦合:同一帳號跑兩套部署會共用同一個 GitHub 憑證供應器,任一邊斷開 GitHub,兩邊的授權會同時被撤銷。
這套範例會建立持續計費的資源:NAT 閘道、界面端點、WAF、Cognito 使用者池、DNS 防火牆、映像與日誌,沒有任務時照樣收費;任務執行再疊上 Runtime、Bedrock 模型與記憶服務的用量。部署時設定的每月 200 美元 Bedrock 預算只會寄通知信,不是硬上限,也不涵蓋架構裡的每個服務。官方沒有公布整體月費或單一任務成本的估計,這個數字只能當提醒門檻,不能當花費上限。
清理的順序會直接影響帳單。執行環境、每程式庫的角色、記憶與 GitHub 憑證供應器都是用 API 建立的,不屬於任何 CloudFormation 堆疊,先拆堆疊會把它們留下來繼續計費。官方指定的順序是:先逐個取消登記程式庫(每個 1 到 3 分鐘,記憶隨之刪除),再到主控台斷開 GitHub(刪掉憑證供應器與所有授權),然後才能摧毀五個堆疊(約 10 到 20 分鐘),GitHub App 本身要回 GitHub 端刪除。堆疊刪除後仍會留下 DynamoDB 的三張表、Cognito 使用者池、存取日誌桶、映像與執行日誌組,因為它們承載歷史工作紀錄,要手動刪除才停止計費。

AgentCore Runtime V2 目前只在五個區域提供:美東維吉尼亞、美東俄亥俄、美西奧勒岡、東京與愛爾蘭,沒有台灣區域,最近的選擇是東京;而且部署永遠有一部分落在美東維吉尼亞,官方操作文件說明那裡放著主控台的 WAF 規則與每月預算。本機要備妥 Docker、Python 3.11 以上、uv、Node.js 與 AWS CLI(部署前的預檢會檢查 Docker、uv、Node 版本與 AWS 憑證;Node 接受 20.19 或 22.12 以上)。部署約 15 到 25 分鐘,登記程式庫再加 8 到 12 分鐘;太早送任務會分別收到「設定未就緒」與「GitHub 未授權」的 409 錯誤。
程式庫的條件是很多人會踩的地方。它必須有能通過測試的預設分支,並宣告 Makefile 的 setup 與 test 目標(或 package.json 裡對應的 scripts 欄位);代理不會猜測任何專案的建置方式。空的程式庫不能直接登記,會一路做到最後開 PR 時才以 422 錯誤失敗,官方因此附了 scaffold 腳本與命令,先把一個能建置、能通過測試的小專案推成預設分支再登記。信任前提也再講一次:代理會執行程式庫自己的命令,來源不可信的專案本來就不該進這套系統。

大多數人不需要立刻動。這是一份範例與參考架構,沒有遷移壓力;官方的建議路徑也是先在一個可拋棄的小程式庫上跑一個範圍明確的任務,例如補一個測試或修一個小錯,完整走過看板、草稿 PR 與驗證證據,再決定要不要把日常開發的任何一段交給它。同一套模式,AWS 說也適用於其他能把 Bedrock 當模型供應器的寫碼代理,換代理時要重做的是對外連線的審計。
未定的事項也要如實看:實際月費官方沒有給估計,200 美元預算與真實開銷是兩回事;任務耗時只有「數十分鐘」量級的描述;五個區域之外何時擴充,沒有時間表。這份範例的價值不在它現在能替你寫多少程式,而在它把「交給代理之後,人還審什麼」做成了預設答案:驗證命令、結束碼、嘗試次數,攤在 PR 裡等你。對照近期遠端寫程式代理的變化,從 Google Jules 收攤要求用戶自帶工作脈絡離場,到 Cursor 為專案層級帶來常駐協調代理,再到 OpenAI 把代理執行環境代管化,AWS 選的路是把整台機器交給你自己架,邊界與帳單也一起自己扛。