[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-codex-micro-macropad-ai-control-deck-zh":3,"article-related-codex-micro-macropad-ai-control-deck-zh":31,"series-ai-agent-31657b75-a18e-418e-a5d6-bca5095e2780":78},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":23,"views":27,"created_at":28,"published_at":29,"topic_cluster_id":30},"31657b75-a18e-418e-a5d6-bca5095e2780","codex-micro-macropad-ai-control-deck-zh","Codex Micro 讓控制面板變安全","\u003Cp data-speakable=\"summary\">以前我把 \u003Ca href=\"\u002Ftag\u002Fagent\">agent\u003C\u002Fa> 當成一個會寫\u003Ca href=\"\u002Fnews\u002Fhidden-partner-code-is-not-due-diligence-qualcomm-scare-prov-zh\">程式\u003C\u002Fa>的工具；現在我把它當成一個要被分層管住的流程。\u003C\u002Fp>\u003Cp>我用 \u003Ca href=\"\u002Ftag\u002Fagentic-coding\">agentic coding\u003C\u002Fa> 工具一陣子了，越用越煩。\u003Ca href=\"\u002Fnews\u002Fgpt-56-sol-terra-luna-digitalocean-ai-zh\">模型\u003C\u002Fa>會寫、會改、會講得頭頭是道，但一碰到「幫我跑一下」這種事，我就開始不安。問題從來不是它會不會寫，而是它要在哪裡寫、在哪裡跑、誰能按下那個執行鍵。它一旦跟我的真工作環境混在一起，我不是盯太緊，就是放太鬆，兩邊都很累。\u003C\u002Fp>\u003Cp>這次把我拉回來的是 The New Stack 這篇 \u003Ca href=\"https:\u002F\u002Fthenewstack.io\u002Fopenai-codex-micro-macropad\u002F\">OpenAI Codex Micro macropad\u003C\u002Fa>，裡面提到 OpenAI 的第一個小裝置，售價 \u003Ca href=\"https:\u002F\u002Fthenewstack.io\u002Fopenai-codex-micro-macropad\u002F\">$230\u003C\u002Fa>。我不是在看一個桌面玩具，我是在看一個很誠實的訊號：agent 工作流開始需要物理邊界了。這件事聽起來很小，實際上很要命，因為它直接碰到我最在意的東西：誰在控制執行權。\u003C\u002Fp>\u003Cp>原始來源是 The New Stack 的文章，作者頁可看 \u003Ca href=\"https:\u002F\u002Fthenewstack.io\u002Fauthor\u002F\">The New Stack staff\u003C\u002Fa>，文章本體在 \u003Ca href=\"https:\u002F\u002Fthenewstack.io\u002Fopenai-codex-micro-macropad\u002F\">thenewstack.io\u002Fopenai-codex-micro-macropad\u003C\u002Fa>。我下面拆的是它背後的工作法，不是照抄產品介紹。\u003C\u002Fp>\u003Ch2>我先不看硬體，我先看它逼你承認的事\u003C\u002Fh2>\u003Cblockquote>OpenAI’s first gadget is the $230 Codex Micro macropad.\u003C\u002Fblockquote>\u003Cp>翻譯一下就是：真正值得注意的不是這塊小板子長什麼樣，而是它逼你把 agent 工作流從「腦內流程」變成「可按、可停、可切換的流程」。很多人做 agent 工具，最後都卡在同一個地方：所有動作都藏在 prompt、側欄、終端機和快捷鍵裡，像一坨沒人整理的線。看起來很強，實際上很容易出事。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784291589427-erc8.png\" alt=\"Codex Micro 讓控制面板變安全\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>我以前也幹過這種事。把「生成」、「測試」、「提交」、「切 sandbox」全部塞進一套快捷鍵，結果每次切環境都像在猜自己現在是哪個模式。工具沒壞，是我把控制面板做得太隱形。\u003Ca href=\"\u002Ftag\u002Fcodex\">Codex\u003C\u002Fa> Micro 這個想法厲害的地方，不是它多神，而是它把「控制」這件事拉到桌面上，讓你不能再假裝自己很清楚。\u003C\u002Fp>\u003Cp>實操上，我現在會先列出五個最常用的 agent 動作，再看哪些值得放到實體按鍵上。不要一開始就想做全套，太貪會死。先做最常見、最容易出錯、最需要停下來確認的那幾個。\u003C\u002Fp>\u003Cul>\u003Cli>生成草稿\u003C\u002Fli>\u003Cli>跑本地驗證\u003C\u002Fli>\u003Cli>切到 sandbox\u003C\u002Fli>\u003Cli>送人類審核\u003C\u002Fli>\u003Cli>緊急停止\u003C\u002Fli>\u003C\u002Ful>\u003Cp>按鍵不是重點，讓流程變得可見才是。你看得到狀態，才有機會管住它。\u003C\u002Fp>\u003Ch2>按鍵有用，是因為它逼你把信任拆開\u003C\u002Fh2>\u003Cp>我對 agent 最不爽的一點，就是它常常把「會做」和「\u003Ca href=\"\u002Fnews\u002Fprediction-market-platform-development-companies-2026-zh\">能做\u003C\u002Fa>」混在一起。模型會產生答案，不代表它有資格直接碰你的機器。很多 demo 都喜歡把這件事包裝得很順，結果大家看完只記得「哇，好快」，忘了問「它到底碰了哪些東西」。\u003C\u002Fp>\u003Cp>這就是實體控制有價值的地方。按一下鍵，比在 prompt 裡打一句「請幫我執行」更像一次承諾。那個微小的摩擦很討厭，但它是好事。因為你會開始把不同風險分開：哪個鍵只是產生建議，哪個鍵只是預覽，哪個鍵才真的允許執行。\u003C\u002Fp>\u003Cp>我之前試過一套本地 agent 流程，搭 \u003Ca href=\"\u002Ftag\u002Fopenai\">OpenAI\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fopenai.com\u002Fcodex\u002F\">Codex\u003C\u002Fa> 類型的工作方式，再配幾個 terminal shortcut。功能上沒問題，心理上很糟。因為我根本分不清現在是在安全模式還是危險模式。那種「應該沒事吧」的感覺最可怕，因為它通常就是出事前最後一句話。\u003C\u002Fp>\u003Cp>實操寫法很簡單：把生成和執行拆成兩個明確動作，別讓同一個鍵同時做兩件事。少一點炫技，多一點笨規矩，通常比較活得久。\u003C\u002Fp>\u003Cul>\u003Cli>綠鍵：生成或摘要\u003C\u002Fli>\u003Cli>黃鍵：預覽或暫存\u003C\u002Fli>\u003Cli>紅鍵：只允許 sandbox 執行\u003C\u002Fli>\u003Cli>長按：取消、撤權、清掉狀態\u003C\u002Fli>\u003C\u002Ful>\u003Cp>這不是漂亮設計，這是把風險講人話。\u003C\u002Fp>\u003Ch2>WebAssembly 會被提到，因為它補的是執行邊界\u003C\u002Fh2>\u003Cp>這篇內容也把 \u003Ca href=\"https:\u002F\u002Fwebassembly.org\u002F\">WebAssembly\u003C\u002Fa> 拉進來，我覺得這很合理。因為 agent 真正危險的地方，不是它會寫 code，而是它會寫完就跑，還跑在你沒收好的地方。WebAssembly 的吸引力在於，它比「直接在 host 上跑」更容易收斂執行範圍，至少邊界清楚很多。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784291591104-adxz.png\" alt=\"Codex Micro 讓控制面板變安全\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>翻譯一下就是：控制面板負責表達意圖，執行層負責關住手腳。這兩層分開，才有機會做出像樣的 agent 流程。很多團隊喜歡把 \u003Ca href=\"\u002Ftag\u002Fdocker\">Docker\u003C\u002Fa> 當護身符，覺得有容器就安全了。我看過太多這種自我安慰：掛太多 volume、網路權限太大、把 host 檔案系統一起送進去，最後只是把風險包裝得比較整齊。\u003C\u002Fp>\u003Cp>WebAssembly 不是萬靈丹，但它會逼你想清楚「這段程式到底應該看到什麼」。這一點很重要，因為 agent 的問題常常不是能力，而是權限太鬆。\u003C\u002Fp>\u003Cp>實操寫法可以直接拆成三層：\u003C\u002Fp>\u003Cul>\u003Cli>輸入層：按鍵、命令、prompt，只負責表達意圖\u003C\u002Fli>\u003Cli>政策層：審核、驗證、路由，只負責決定可不可以做\u003C\u002Fli>\u003Cli>執行層：WebAssembly、鎖權限容器、受限 runtime，只負責真的跑\u003C\u002Fli>\u003C\u002Ful>\u003Cp>三層混在一起，你就不是在做系統，你是在賭運氣。\u003C\u002Fp>\u003Ch2>這東西本質上是在做狀態管理\u003C\u002Fh2>\u003Cp>很多人看到 macropad 會先想到「快捷鍵變多了」，我看到的是另一件事：它其實是在幫你管理狀態。agent 工作流最容易亂掉的地方，不是輸入不夠快，是狀態不夠清楚。你到底現在是在 drafting、testing、reviewing，還是已經進了 blocked 狀態？如果這些只能存在你腦子裡，那就很容易忘。\u003C\u002Fp>\u003Cp>我現在會把這種工具當成一個可摸到的 state machine。每一個按鍵都不是單純觸發 script，而是推動系統從一個狀態走到另一個狀態。這個想法對資深開發者特別有用，因為我們真正缺的通常不是自動化，而是少出錯。自動化太多，狀態太少，最後只會把錯誤跑得更快。\u003C\u002Fp>\u003Cp>我自己遇過最常見的坑，就是「我以為自己在 review，結果其實已經在 execute」。這種事如果只靠介面顏色和腦內記憶，遲早翻車。你需要的是一個能把模式講清楚的控制面板。\u003C\u002Fp>\u003Cp>實操寫法：先定義狀態，再決定按鍵。不要反過來。\u003C\u002Fp>\u003Cul>\u003Cli>Idle\u003C\u002Fli>\u003Cli>Drafting\u003C\u002Fli>\u003Cli>Testing\u003C\u002Fli>\u003Cli>Sandbox execution\u003C\u002Fli>\u003Cli>Human review\u003C\u002Fli>\u003Cli>Blocked\u003C\u002Fli>\u003C\u002Ful>\u003Cp>接著列出允許的狀態轉移。按鍵要改變狀態，不只是觸發動作。狀態沒變，按鍵多半就是多餘的。\u003C\u002Fp>\u003Ch2>先寫政策，再買硬體，不然你只是把混亂變快\u003C\u002Fh2>\u003Cp>這是我最想吐槽的一點。很多人看到這種小裝置，第一反應是「我也要買一個」。我懂，桌上放個有燈的東西很爽。但如果你還沒寫 policy，硬體只會幫你更有效率地做錯事。我不是沒做過這種事，dashboard、bot、IDE plugin，我都見過同樣的劇本。\u003C\u002Fp>\u003Cp>政策要先回答幾個很煩但很必要的問題：agent 可以碰什麼？可以跑什麼？什麼要記錄？什麼要先批准？什麼預設擋掉？這些不先定，按鍵只會把模糊的權限變成更快的模糊權限。\u003C\u002Fp>\u003Cp>所以我現在看 Codex Micro，不是把它當產品，而是把它當設計提示。它提醒我，問題不是「怎麼讓 agent 看起來很神」，而是「怎麼讓 agent 可控」。這個問題雖然不帥，但比較能讓你平安下班。\u003C\u002Fp>\u003Cp>實操寫法：先用白話寫 policy，再去配 key mapping。文字要短，短到別人不用開會就看得懂。\u003C\u002Fp>\u003Cul>\u003Cli>只允許指定環境\u003C\u002Fli>\u003Cli>只允許指定命令\u003C\u002Fli>\u003Cli>碰網路前要批准\u003C\u002Fli>\u003Cli>不能寫 host filesystem\u003C\u002Fli>\u003Cli>每一步都要記錄\u003C\u002Fli>\u003C\u002Ful>\u003Cp>政策寫不清楚，硬體再貴也沒救。\u003C\u002Fp>\u003Ch2>可抄的模板\u003C\u002Fh2>\u003Cpre>\u003Ccode># Agent control deck template for a macropad workflow\n\n## 目標\n用一個 macropad 管 AI coding agent，讓生成、驗證、執行分層。\n\n## 三層結構\n1. Intent input：按鍵、熱鍵、命令列，只負責表達意圖。\n2. Policy gate：批准、驗證、路由，只負責決定可不可以做。\n3. Execution sandbox：WebAssembly、受限容器、鎖權限 runtime，只負責執行。\n4. Audit trail：所有動作與狀態變更都要記錄。\n\n## 狀態模型\n- Idle\n- Drafting\n- Previewing\n- Testing\n- Sandbox execution\n- Human review\n- Blocked\n\n## 按鍵配置\n- Button 1：Generate draft\n- Button 2：Run local validation\n- Button 3：Execute in sandbox\n- Button 4：Send to human review\n- Button 5：Abort and revoke permissions\n\n## 安全規則\n- 不要讓同一個鍵同時負責生成和執行。\n- 預設不要在 host 上直接跑 agent 輸出。\n- 任何網路存取都要先批准。\n- 每次 promotion 都要有明確的狀態變更。\n- 每個 transition 都要記錄 timestamp、environment、actor。\n\n## 可直接貼上的 policy\nWhen the agent is active, it may only operate inside approved sandboxed environments. Any action that changes files, runs commands, or accesses the network must be explicitly mapped to a dedicated control and recorded in the audit log. Human approval is required before promotion to production or access to sensitive resources.\n\n## 實作清單\n- [ ] 列出最常見的五個 agent 動作\n- [ ] 每個動作綁一個實體控制\n- [ ] 把 generation 和 execution 分開\n- [ ] 加一個可視化狀態指示\n- [ ] 把執行導到 sandbox\n- [ ] 危險轉移要要求批准\n- [ ] 每一步都保留 audit log\n\n## 範例 key mapping\n- Tap：generate\n- Double tap：preview\n- Hold：run sandbox\n- Shift + tap：review\n- Long hold：emergency stop\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>這段不是要你照抄 OpenAI 的硬體，而是要你把同一套紀律塞進你現有的工具裡。你可以用 Stream Deck、便宜 macropad、鍵盤 layer，甚至 terminal alias，只要狀態清楚就行。\u003C\u002Fp>\u003Cp>我不會說硬體能解決 agent 風險，不能。可是它能逼你把流程變得不那麼散，不那麼靠直覺。這就夠用了。你如果想要自動化的方便，又不想把整台機器的鑰匙交出去，先從可見的狀態、窄權限、和一個會讓你停一下的控制面板開始。\u003C\u002Fp>\u003Cp>原始拆解來源是 \u003Ca href=\"https:\u002F\u002Fthenewstack.io\u002Fopenai-codex-micro-macropad\u002F\">The New Stack 的這篇文章\u003C\u002Fa>；上面這份模板是我根據它延伸出來的工作法，原創部分是我自己整理的流程、狀態與 policy 寫法。\u003C\u002Fp>","我把 Codex Micro 拆成一個可抄的 agent 控制面板模板，重點是把生成、驗證、執行分層，避免把執行權交錯地方。","thenewstack.io","https:\u002F\u002Fthenewstack.io\u002Fopenai-codex-micro-macropad\u002F",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784291589427-erc8.png","ai-agent","zh","d53bdddf-05eb-4eca-b53b-8439ee35acda",[17,18,19,20,21,22],"macropad","agent workflow","WebAssembly","sandbox","Codex","state machine",[24,25,26],"把 agent 的生成、驗證、執行拆成三層，別混在同一個按鍵裡。","用實體控制強迫自己承認狀態，避免把危險動作藏在快捷鍵裡。","先寫 policy 再買硬體，否則只是更快地做錯事。",0,"2026-07-17T12:32:45.179803+00:00","2026-07-17T12:32:45.15+00:00","b8fac844-da74-438d-9b59-2b5355885058",{"tags":32,"relatedLang":37,"relatedPosts":41},[33,35],{"name":19,"slug":34},"webassembly",{"name":21,"slug":36},"codex",{"id":15,"slug":38,"title":39,"language":40},"codex-micro-macropad-ai-control-deck-en","Codex Micro turns a macropad into an AI control deck","en",[42,48,54,60,66,72],{"id":43,"slug":44,"title":45,"cover_image":46,"image_url":46,"created_at":47,"category":13},"ee3c0a0e-0117-4f79-b94b-308d08b43669","automate-web3-grant-screening-ai-scoring-zh","Web3 補助金 AI 篩選流程實作","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784187173996-8c2e.png","2026-07-16T07:32:23.745459+00:00",{"id":49,"slug":50,"title":51,"cover_image":52,"image_url":52,"created_at":53,"category":13},"02bfe363-1ca6-4c20-be08-34d4ad532b71","anthropic-model-task-persistence-tuning-zh","Anthropic 任務耐力調校指南","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784102587342-bz4a.png","2026-07-15T08:02:31.959666+00:00",{"id":55,"slug":56,"title":57,"cover_image":58,"image_url":58,"created_at":59,"category":13},"7acb5b4c-de5e-4ded-83cf-82cf93f47a00","google-gemini-enterprise-agent-platform-cloud-service-zh","Google Gemini Enterprise 代理平台把 AI 代理變成雲…","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784059372531-sfab.png","2026-07-14T20:02:24.962585+00:00",{"id":61,"slug":62,"title":63,"cover_image":64,"image_url":64,"created_at":65,"category":13},"1f24f862-f37b-4bd9-b78d-434713905348","workbuddy-harness-engineering-agent-reliability-zh","WorkBuddy 證明了 Agent 可靠性不靠大模型本身","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1783987377305-yt32.png","2026-07-14T00:02:31.385926+00:00",{"id":67,"slug":68,"title":69,"cover_image":70,"image_url":70,"created_at":71,"category":13},"415418c7-749e-4352-a21d-d2fa62d8b96b","perplexity-teammate-coding-agent-strategy-zh","Perplexity 應把 Teammate 做成 coding agent，…","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1783589576714-n7gs.png","2026-07-09T09:32:25.568287+00:00",{"id":73,"slug":74,"title":75,"cover_image":76,"image_url":76,"created_at":77,"category":13},"884f1bb8-4bae-4cfa-87d1-b323be1d6166","hp-adopts-openai-frontier-global-operations-zh","HP 將 Frontier 送進全球營運","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1783362776958-1e1n.png","2026-07-06T18:32:30.897068+00:00",[79,84,89,94,99,104,109,114,119,124],{"id":80,"slug":81,"title":82,"created_at":83},"4ae1e197-1d3d-4233-8733-eafe9cb6438b","claude-now-uses-your-pc-to-finish-tasks-zh","Claude 開始幫你操作電腦","2026-03-26T07:20:48.457387+00:00",{"id":85,"slug":86,"title":87,"created_at":88},"5bede67f-e21c-413d-9ab8-54a3c3d26227","googles-2026-ai-agent-report-decoded-zh","Google 2026 AI Agent 報告解讀","2026-03-26T11:15:22.651956+00:00",{"id":90,"slug":91,"title":92,"created_at":93},"2987d097-563f-46c7-b76f-b558d8ef7c2b","kimi-k25-review-stronger-still-not-legend-zh","Kimi K2.5 評測：更強，但還不是神作","2026-03-27T07:15:55.277513+00:00",{"id":95,"slug":96,"title":97,"created_at":98},"95c9053b-e3f4-4cb5-aace-5c54f4c9e044","claude-code-controls-mac-desktop-zh","Claude Code 也能操控 Mac 了","2026-03-28T03:01:58.58121+00:00",{"id":100,"slug":101,"title":102,"created_at":103},"dc58e153-e3a8-4c06-9b96-1aa64eabbf5f","cloudflare-100x-faster-ai-agent-sandbox-zh","Cloudflare 的 AI 沙箱跑超快","2026-03-28T03:09:44.142236+00:00",{"id":105,"slug":106,"title":107,"created_at":108},"1c8afc56-253f-47a2-979f-1065ff072f2a","openai-backs-isara-agent-swarm-bet-zh","OpenAI 挺 Isara 的 agent swarm …","2026-03-28T03:15:27.513155+00:00",{"id":110,"slug":111,"title":112,"created_at":113},"7379b422-576e-45df-ad5a-d57a0d9dd467","openai-plan-automated-ai-researcher-zh","OpenAI 想做自動化 AI 研究員","2026-03-28T03:17:42.090548+00:00",{"id":115,"slug":116,"title":117,"created_at":118},"48c9889e-86df-450b-a356-e4a4b7c83c5b","harness-engineering-ai-agent-reliability-2026-zh","駕馭工程：從「馬具」到「作業系統」，AI Agent 可靠性的終極密碼","2026-03-31T06:42:53.556721+00:00",{"id":120,"slug":121,"title":122,"created_at":123},"96d8e8c8-1edd-475d-9145-b1e7a1b02b65","mcp-explained-from-prompts-to-production-zh","MCP 怎麼把提示詞變工作流","2026-04-01T09:24:39.321274+00:00",{"id":125,"slug":126,"title":127,"created_at":128},"f2ca7720-b471-4ce5-9336-2a9ac2a876fd","amazon-bedrock-agents-multi-agent-workflows-zh","Amazon Bedrock Agents 進入多代理工作流","2026-04-01T09:30:29.945429+00:00"]