如何在 2026 年打造你的第一個 AI Loop

@sairahul1
英語24 小時前 · 2026年7月10日
293K
142
28
15
397

TL;DR

這是一份從手動提示詞轉向使用 Slate 構建自動化 AI Loop 的完整指南,重點涵蓋狀態管理、驗證機制以及多個 Agent 的協作編排。

Rahul - inline image

上個月,兩位當今最資深的 AI 工程師都說了同一句話。

OpenClaw 創辦人、目前任職於 OpenAI 的 Peter Steinberger:

「你現在不該再為程式碼 Agent 下提示詞了。你該設計能為 Agent 下提示詞的循環。」

Anthropic Claude Code 負責人 Boris Cherny:

「我現在不再為 Claude 下提示詞了。我有循環在跑,那些循環會為 Claude 下提示詞並決定下一步。我的工作就是寫循環。」

多數人看到這裡會想:這到底是什麼意思?

更重要的是:我該怎麼打造一個?

這篇文章會一步步告訴你怎麼做。

沒有空談理論卻沒程式碼。沒有程式碼卻沒上下文。全是實際步驟、實際指令。複製貼上就能執行。

Rahul - inline image

Slate 正在協調 GPT-5.6、Claude 以及專門的子代理來處理一個真實的遷移任務。模型變聰明了。更大的變化在於,像 Slate 這樣的工具終於能讓這些模型持續忙碌,而不需要等人類下提示詞。

多數人使用 AI 的方式已經過時了

寫提示詞。等待。讀取輸出。手動修正。再寫另一個提示詞。

你自己就是那個循環。

每個步驟都要經過你。AI 在等。你來決定。AI 繼續等。

你一旦停手,一切就會停擺。

在 2026 年跑得最快的開發者,不是在寫更好的提示詞。

他們在打造能自動下提示詞的系統。

槓桿點已經轉移了。

從「輸入提示詞」轉變為「設計循環」。

Rahul - inline image

GPT-5.6 帶來了什麼改變?

GPT-5.6 並沒有改變對循環的需求。

它提升了循環的價值。

模型越強大,讓它在兩次提示之間閒置的成本就越高。

在終端機工作流程中,GPT-5.6 在以下方面有顯著進步:

→ 理解大型程式碼庫

→ 維持實作的一致性

→ 遵循多步驟計畫

→ 從失敗嘗試中恢復

→ 作為嚴格的驗證器

結果不是「更好的提示詞」。

而是每個任務所需的人工介入次數減少了。

循環到底是什麼

簡單來說:

一個提示詞回答一次就停了。

一個循環會持續運作,直到工作真正完成。

不是直到它產生一個答案。

而是直到它達到一個已驗證的結果。

每個認真的 AI Agent 都運行著同樣的底層循環:

探索 — 需要做什麼?

執行 — 開始工作

驗證 — 真的成功了嗎?

疊代 — 還沒完成?修正並重複

停止 — 條件已滿足,或達到硬性上限

Claude Code。Cursor。Codex。

底層來看,它們都運行著這個循環。

提示詞和循環的區別不在於模型。

在於是否有人檢查工作成果,並持續執行直到通過為止。

Rahul - inline image

4 條件測試 — 在動手打造任何東西之前先執行這個

大多數循環都在這裡失敗。

一個循環只有在全部 4 個條件都成立時,才值得投入建置成本。

只要遺漏一個,循環的成本就會超過它所帶來的回報。

1. 任務會重複出現。 至少每週一次。一次性任務用一個好的提示詞來處理仍然更好。

2. 驗證是自動化的。 必須有某個東西能在你不在場時讓工作失敗。測試。Linter。建置。型別檢查。沒有閘門 = Agent 在幫自己的作業打分數。

3. 你的 Token 預算能承受浪費。 循環在每次疊代時都會重新讀取完整的上下文。它們會重試、探索、消耗 Token,無論這次運行最終是否產出任何東西。這是沒人提及的成本。

4. 「完成」是客觀的。 一個能通過或失敗的測試。一個能編譯或不能編譯的建置。而不是「看起來不錯的時候」。如果完成需要人類的意見,那就保持手動。

全部通過 4 個條件 → 打造循環。

任何 1 個條件失敗 → 改用提示詞。

老實說:大多數開發者目前還不需要沉重的循環。每個人都能使用的是簡單的循環。我們很快就會打造一個。

安裝 Slate

Slate 是一個 AI 程式碼 Agent,專為在終端機中執行長時間、平行、多步驟的任務而設計。

由 RandomLabs 打造。第一個專為群體協作而建立的 Agent。

它與 Claude Code 或 Cursor 的不同之處在於:

→ 自動為每個步驟選擇正確的模型。用 Claude 規劃、用另一個模型搜尋、用 Codex 執行——Slate 會自行決定。

→ 能同時在你的程式碼庫中執行多個平行的子代理

→ 在長達數小時的長時間會話中管理自己的上下文

→ 與你並肩協作——而不只是為你工作

一行指令安裝:

bash
1npm i -g @randomlabs/slate

導航到你的專案並啟動:

bash
1cd /path/to/your/project
2slate

這會開啟 Slate TUI——一個終端機介面,你可以交給它任務並看著它工作。

Rahul - inline image

步驟 1 — 設定你的工作區

在 Slate 能在你的專案上運行循環之前,它需要理解你的程式碼庫。

在你的專案根目錄建立一個 AGENTS.md 檔案。這是 Slate 在每次會話開始時讀取的上下文。

markdown
1# AGENTS.md
2
3## 這個程式碼庫是做什麼的
4[一段專案描述]
5
6## 架構
7- src/api/ — Express API 路由
8- src/services/ — 業務邏輯
9- src/db/ — 資料庫模型(透過 Prisma 連接 PostgreSQL)
10- tests/ — Jest 測試套件
11
12## 主要指令
13- npm test — 執行完整的測試套件
14- npm run build — TypeScript 編譯
15- npm run lint — ESLint 檢查
16- npm run typecheck — tsc --noEmit
17
18## 規則
19- 未經人類核准,絕不修改 src/billing/ 或 src/auth/
20- 在將任何任務標記為完成之前,務必先執行測試
21- 使用 src/utils/errors.ts 中現有的錯誤處理模式
22
23## 環境
24- .env.slate 包含 Slate 需要的所有環境變數

Slate 會在啟動時自動讀取這個檔案——每次會話都無需重新貼上。

在 Slate 內部加入你的工作目錄:

bash
1/workspace add ./src
2/workspace add ./tests
3/workspace list

或者使用 @ 提及功能直接引用特定檔案:

text
1請檢視 @src/api/routes.ts 並提出改進建議
Rahul - inline image

步驟 2 — 設定 Slate

在你的專案根目錄建立 slate.json 來控制 Slate 的行為。

json
1{
2 "$schema": "https://randomlabs.ai/config.json",
3 "permission": {
4 "*": "allow",
5 "bash": "ask"
6 },
7 "models": {
8 "main": { "default": "anthropic/claude-opus-4.6" },
9 "subagent": { "default": "anthropic/claude-sonnet-4.6" },
10 "search": { "default": "anthropic/claude-haiku-4.5" },
11 "reasoning": { "default": "openai/gpt-5.6" }
12 }
13}

這樣設定的作用是:

→ "*": "allow" — Slate 可以讀寫檔案,無須每次都詢問

→ "bash": "ask" — Slate 在執行 shell 指令前會先詢問(在你放心之前請保持這個設定)

→ Models 設定 — 用便宜快速的模型進行搜尋,用昂貴的模型進行主要推理

對於 CI 或自動化運行,如果你希望完全無需提示:

bash
1slate run "執行測試套件並修復所有失敗" --dangerously-skip-permissions --output-format stream-json

步驟 3 — 你的第一個任務(還不是循環)

在打造一個循環之前,先讓單次手動運行可靠。

這是最常被跳過的步驟。也是大多數循環在正式環境中失敗的原因。

交給 Slate 一個真實任務:

text
1請檢視我整個程式碼庫的架構。
2建立一個 ARCH.md 檔案,包含:
3- 目前的結構
4- 模組之間的依賴關係
5- 3 個需要改進的地方
6先看 @src/,然後看 @tests/

觀察 Slate 工作。它會:

  1. 搜尋你的檔案
  2. 建立對架構的理解
  3. 草擬 ARCH.md
  4. 在停止前根據你的要求進行檢視

這已經是一個迷你循環了——它在完成前會檢查自己的輸出。

對於更長的任務:

text
1嘿 Slate,研究我程式碼庫中的認證流程,
2然後制定一個加入 OAuth2 支援的計畫。
3請務必查看 @src/auth/ 和 @src/api/routes.ts

Slate 會回傳一個計畫。你可以針對它進行疊代:

text
1不,不要新增一個新的認證提供者類別。
2讓它遵循 src/auth/api-key.ts 中現有的 ApiKeyAuth 模式

核准計畫。Slate 會自主執行。

Rahul - inline image

步驟 4 — 建立技能(讓循環可重複使用)

技能讓你不用在每次會話中都重新解釋你的專案。

寫一次。Slate 會在每次相關運行時讀取它。

建立資料夾結構:

bash
1mkdir -p .slate/skills/ci-triage
2touch .slate/skills/ci-triage/SKILL.md

撰寫技能:

markdown
1---
2name: "ci-triage"
3description: "分類 CI 失敗的根本原因,並為簡單的問題起草修復方案。"
4---
5
6# CI 分類技能
7
8## 我要做什麼
9當 CI 運行失敗時,我會:
101. 讀取測試輸出
112. 分類失敗原因:環境問題 / 不穩定的測試 / 真正的錯誤 / 依賴套件版本更新 / 基礎設施問題
123. 為錯誤和依賴問題起草修復方案
134. 將環境和基礎設施問題升級給人類處理
14
15## 分類規則
16- env:缺少機密、錯誤的環境變數 → 標記給人類
17- flake:不修改程式碼重新執行就會通過 → 重試一次,然後開立議題
18- bug:與近期提交相關的確定性失敗 → 起草修復方案
19- dependency:與版本更新相關的失敗 → 起草回滾 PR
20- infra:超時、記憶體不足、執行器問題 → 立即升級
21
22## 修復模式
23- 認證測試失敗 → 先檢查 src/auth/middleware.ts
24- 資料庫測試失敗 → 確認遷移已在 CI 環境中執行
25- E2E 測試失敗 → 檢查 UI 選擇器是否與最新快照相符
26
27## 絕對不做的事
28- 停用失敗的測試
29- 未經詢問修改 CI 設定
30- 碰觸 src/billing/ 或 src/payments/
31
32## 狀態
33每次運行後更新 STATE.md:
34- 檢查過的檔案
35- 做出的分類
36- 已開啟的 PR
37- 已升級的事項

在 Slate 內部列出可用的技能:

text
1/skills

手動啟動一個:

text
1@ci-triage 請分類今天失敗的測試

或者當 Slate 認為技能與當前任務相關時,它會自動啟動技能。

步驟 5 — 加入狀態(循環的記憶)

Agent 會忘記。

檔案不會。

在你的專案根目錄建立 STATE.md:

markdown
1# 循環狀態 — CI 分類
2
3## 上次運行
42026-06-28 03:30 UTC — 7 個失敗已分類,3 個修復方案已草擬,4 個已升級
5
6## 進行中
7- claude/fix-auth-token-refresh — 測試在本地端通過,等待 CI
8- claude/fix-flaky-payment-webhook — 已套用重試模式,監控中
9
10## 已完成
11- claude/bump-axios-1.7.4 → 已合併(CI 綠燈)
12- claude/lint-fix-pass-june-28 → 已合併
13
14## 已升級給人類
15- src/billing/refund.ts — 測試以 3 種方式失敗,根本原因不明
16- ci/staging-runner — 基礎設施超時,非程式碼問題
17
18## 學到的經驗
19- 2026-06-27:PowerShell 在此 Windows 執行器上遇到 TLS 1.2 問題。請改用 bash。
20- 2026-06-26:tests/e2e/checkout 需要在環境變數中設定 Stripe webhook 密鑰。如果缺少則跳過。

透過在 AGENTS.md 中加入以下內容,告訴 Slate 在每次會話開始時使用它:

markdown
1## 會話開始
2總是先讀取 STATE.md。從上次運行中止的地方繼續。
3每次運行結束時更新 STATE.md,記錄已完成的事項和下一步計畫。

沒有狀態:每次運行都從零開始。

有狀態:每次運行都會繼承並累積上一次的成果。

步驟 6 — 建立真正的循環

現在你擁有:

→ 工作區已設定(AGENTS.md)

→ 設定檔已設定(slate.json)

→ 一個可靠的手動運行已驗證

→ 一個技能已撰寫(ci-triage)

→ 狀態檔案已建立(STATE.md)

是時候把它們包裝成一個真正的循環了。

選項 A:佇列檔案循環(最簡單)

建立 loop.md:

markdown
1讀取 STATE.md 以了解已經嘗試過什麼。
2對上次建置中所有失敗的測試執行 CI 分類技能。
3
4針對每個失敗:
5- 使用 ci-triage 技能規則對其進行分類
6- 為錯誤和依賴問題起草修復方案
7- 將環境和基礎設施問題升級
8
9執行修復方案。檢查測試是否通過。
10如果測試通過 → 開啟 PR。
11如果測試仍然失敗 → 記錄在 STATE.md 中並停止。
12
13更新 STATE.md,記錄此次運行完成的所有事項。
14
15硬性停止:最多 8 次嘗試。達到上限時,報告當前狀態。

執行它:

bash
1slate --queue loop.md

Slate 會讀取佇列檔案,並將每個區塊作為佇列訊息執行。

選項 B:無頭/CI 循環(自動化)

在 GitHub Action 或 cron 任務中以非互動模式執行:

bash
1slate run "$(cat loop.md)" --output-format stream-json --dangerously-skip-permissions

在 GitHub Actions 工作流程中:

yaml
1name: CI 分類循環
2on:
3 workflow_run:
4 workflows: ["CI"]
5 types: [completed]
6
7jobs:
8 triage:
9 if: ${{ github.event.workflow_run.conclusion == 'failure' }}
10 runs-on: ubuntu-latest
11 steps:
12 - uses: actions/checkout@v4
13
14 - name: 安裝 Slate
15 run: npm i -g @randomlabs/slate
16
17 - name: 執行分類循環
18 env:
19 SLATE_API_KEY: ${{ secrets.SLATE_API_KEY }}
20 run: |
21 slate run "$(cat loop.md)" \
22 --output-format stream-json \
23 --dangerously-skip-permissions \
24 --workspace ./src \
25 --workspace ./tests

現在每次 CI 失敗都會自動觸發分類循環。

在需要升級之前,完全不需要人類介入。

Rahul - inline image

步驟 7 — 加入子代理(執行者與驗證者的分離)

對任何循環來說,這是唯一最重要的結構性改進。

絕對不要讓同一個 Agent 幫自己的作業打分數。

寫下修復方案的模型,作為評分者時太過寬容。

在 Slate 中,你可以為不同角色設定不同的模型:

json
1{
2 "models": {
3 "main": { "default": "anthropic/claude-opus-4.6" },
4 "subagent": { "default": "anthropic/claude-sonnet-4.6" },
5 "search": { "default": "anthropic/claude-haiku-4.5" }
6 }
7}

然後撰寫你的任務,讓 Slate 自然地使用這種分工:

text
1請修復失敗的認證測試。
2
3步驟 1:讓一個搜尋 Agent 探索 src/auth/,以了解目前的實作。
4步驟 2:讓另一個 Agent 根據找到的資訊來實作修復。
5步驟 3:讓第三個 Agent 根據原始的測試需求來驗證修復方案——
6 這個 Agent 不應該看過實作過程。
7步驟 4:只有在驗證者核准後才開啟 PR。

Slate 會自動協調這些子代理。

搜尋 Agent 使用快速便宜的模型。實作 Agent 使用更強大的模型。驗證者使用嚴格的模型,且無法存取執行者的推理過程。

這種分工就是為什麼 Slate 能在單一任務上同時執行 5 個平行的子代理——每個都專業化、彼此隔離。

Rahul - inline image

步驟 8 — 狀態循環模式(適用於長時間運行的任務)

對於需要數小時或數天才能完成的任務,在你的任務提示詞中使用這個模式:

text
1你正在運行一個多會話循環。
2
3目標:將所有 Express 路由遷移到新的 ApiError 模式。
4在 STATE.md 中追蹤進度。
5
6每個會話開始時:
71. 讀取 STATE.md
82. 找到「剩餘路由」中的第一個未完成項目
93. 只處理那個項目
10
11每個會話結束時:
121. 將已完成的項目移到 STATE.md 的「已完成路由」
132. 將任何阻礙因素記錄在「阻礙因素」中
143. 更新「上次運行」時間戳記
154. 乾淨地停止
16
17STATE.md 格式:
18---
19## 已完成路由
20- [x] /api/users (2026-06-27)
21- [x] /api/auth/login (2026-06-28)
22
23## 剩餘路由
24- [ ] /api/payments/checkout
25- [ ] /api/payments/refund
26- [ ] /api/admin/users
27
28## 阻礙因素
29- /api/payments/refund — 需要人工審查(涉及計費邏輯)
30
31## 上次運行
322026-06-28 14:30 UTC
33---
34
35嚴格規則:
36- 未經人類核准,絕不碰觸 src/billing/
37- 每次遷移路由後務必執行測試
38- 每個會話完成一條路由後就停止

每天早上執行:

bash
1slate --continue "$(cat loop.md)"

--continue 會接續最近的會話,而不是重新開始。

每天多完成一條路由。STATE.md 追蹤一切。

循環會從它停止的地方精確地繼續。

步驟 9 — 為你最常用的循環建立自訂指令

在 slate.json 中加入自訂斜線指令,這樣你的循環隨時都能一鍵啟用:

json
1{
2 "command": {
3 "triage": {
4 "description": "執行 CI 分類循環",
5 "template": "讀取 STATE.md。對所有失敗的測試執行 ci-triage 技能。完成後更新 STATE.md。",
6 "agent": "build"
7 },
8 "review": {
9 "description": "檢視一個檔案的正確性",
10 "template": "檢視 @$ARGUMENTS 的正確性、邊界情況以及與周圍程式碼的一致性。"
11 },
12 "migrate": {
13 "description": "將一條路由遷移到 ApiError 模式",
14 "template": "讀取 STATE.md。將下一條未完成的路由遷移到 ApiError 模式。執行測試。更新 STATE.md。"
15 }
16 }
17}

現在在 Slate 內部:

text
1/triage
2/review src/api/payments.ts
3/migrate

每個指令都會立即執行你預先寫好的循環提示。

3 個你今天就能執行的完整循環

循環 1:CI 失敗分類(我們剛剛打造的這個)

時機:每次 CI 失敗 內容:分類 → 修復簡單的 → 升級困難的 → 開啟 PR 狀態:STATE.md 閘門:測試通過 設定時間:30 分鐘

bash
1# 觸發
2slate run "$(cat loop.md)" --dangerously-skip-permissions --output-format stream-json
3
4# 或者用 GitHub Actions——請見上方步驟 6

循環 2:晨間簡報

時機:每個工作日的早上 7 點(cron 任務) 內容:掃描過去 24 小時的提交、PR 和待解決問題 → 撰寫一份 5 點簡報 → 發布到 Slack

bash
1# 用於晨間簡報的 loop.md
2cat > morning-brief-loop.md << 'EOF'
3讀取過去 24 小時的:
4- git log --since="24 hours ago" --oneline
5- 處於草稿或審查中的開啟 PR
6- 過去 24 小時內已開啟或更新的 GitHub Issues
7
8撰寫一份晨間簡報:
9- 3 件最重要的事
10- 2 件今天需要注意的事
11- 1 件可能阻礙別人的事
12
13保持在 120 字以內。發布到 #engineering Slack 頻道。
14EOF
15
16# 使用 cron 排程執行
170 7 * * 1-5 slate run "$(cat morning-brief-loop.md)" --dangerously-skip-permissions

循環 3:依賴套件版本更新循環

時機:每個星期一 內容:掃描過時的套件 → 測試相容性 → 為安全的更新開啟 PR

bash
1cat > deps-loop.md << 'EOF'
2讀取 STATE.md。
3
4執行:npm outdated
5
6針對每個過時的套件:
71. 檢查版本更新是 major(破壞性)還是 minor/patch(安全)
82. 如果是 minor/patch:更新套件,執行 npm test
93. 如果測試通過:開啟一個 PR
104. 如果測試失敗:在 STATE.md 中記錄為「需要人工審查」
115. 如果是 major 更新:一律升級給人類處理
12
13嚴格規則:
14- 單次循環最多更新 5 個套件
15- 絕不更新「peer dependencies」部分的套件
16- 每次更新後都必須執行完整的測試套件,而不僅僅是相關測試
17
18更新 STATE.md,記錄已更新和已升級的項目。
19EOF
20
21# 每週一執行
220 9 * * 1 slate run "$(cat deps-loop.md)" --dangerously-skip-permissions
Rahul - inline image

那些會讓你花冤枉錢的失敗模式

在排程任何東西之前,一定要先了解這些。

虎頭蛇尾循環

Agent 在只完成一半工作時就宣告完成。

提前退出。循環持續消耗資源。默默地。

修正:由一個全新的模型檢查硬性停止條件。

text
1停止條件:tests/auth/ 中的所有測試均通過 且 lint 回傳值為 0。
2使用一個單獨的檢查運行來驗證,而不是 Agent 自己的判斷。
3硬性上限:8 次疊代。達到上限時:報告狀態並停止。

目標偏移

在長時間的會話中,最初的約束條件會逐漸消失。

第 3 則訊息中的「絕不碰觸 src/billing/」到了第 47 則訊息時已不復存在。

修正:加入一個 VISION.md 檔案,讓 Slate 在每次會話開始時重新讀取。

markdown
1# VISION.md — 在每次會話開始時讀取
2
3## 核心目標
4將所有 Express 路由遷移到 ApiError 模式。
5
6## 嚴格約束(絕不違反)
7- 未經人類核准,絕不碰觸 src/billing/
8- 絕不停用失敗的測試
9- 在開啟任何 PR 之前,務必執行完整的測試套件
10
11## 當前優先順序
12src/api/payments/ 中的路由——處理時要格外小心

自我偏袒偏誤

執行者幫自己的作業打分數。總是給自己過關。

修正:驗證者子代理完全無法存取執行者的推理過程。

明確告訴 Slate:

text
1驗證者 Agent 不應該看到執行者 Agent 的工作。
2它應該只能看到:原始的測試需求和測試輸出。
3如果測試通過 → 核准。如果測試失敗 → 拒絕。除此之外沒有意見。

Agent 的懶惰心態

循環在任務部分完成時就稱之為「足夠好了」。

特別是在成功標準模糊的情況下。

修正:只使用客觀的停止條件。

text
1完成條件:npm test 回傳 exit code 0 且 npm run lint 回傳 exit code 0。
2不是在「測試看起來不錯」時。不是在「多數測試通過」時。
3兩個指令都回傳 exit code 0。這就是唯一的完成條件。

那些真正有用的 Slate 專屬技巧

一些在實務上讓 Slate 與其他 Agent 與眾不同的地方。

在工作時排隊訊息

Slate 正在執行一個長時間任務。你想到了某件重要的事。

按下 Tab 鍵來排隊訊息——它會在當前任務完成後執行,而不是打斷它。

text
1[Slate 正在執行遷移任務...]
2
3你:對了,請確保新的模式也處理了 userId 為 null 的情況
4[Tab — 已排隊]
5
6[Slate 完成當前步驟,然後讀取你排隊的訊息]

在運行過程中引導方向

如果 Slate 正朝著錯誤的方向前進,你不需要停止它:

text
1[Slate 正在執行修復方案的一半...]
2
3你:等等——不要為此新增一個新類別。使用 src/utils/errors.ts 中現有的 BaseError
4[Enter — 立即引導]
5
6Slate:收到,正在切換方法改用 BaseError...

使用 /enter-mode-next 可以在引導 / 排隊 / 打斷模式之間切換。直接執行 Shell 指令

在 Slate 會話中直接執行指令,無需切換到另一個終端機:

bash
1!npm test # 執行測試並將輸出傳送給 Slate
2!git diff HEAD # 檢查有什麼改變
3!git status # 查看當前狀態

Slate 會讀取輸出並在下一個動作中使用。

團隊設定的伺服器模式

將 Slate 作為伺服器運行,並從多個終端機連接到它:

bash
1# 終端機 1 — 啟動伺服器
2slate serve --port 7777
3
4# 終端機 2 — 連接 TUI
5slate attach http://localhost:7777 --dir /path/to/project

這對於與 Slate 進行結對程式設計,或是在遠端機器上運行它來說非常有用。

完整的設定檢查清單

在執行你的第一個真正的循環之前:

text
1□ 已安裝 npm i -g @randomlabs/slate
2□ 已建立 AGENTS.md,包含專案概覽、指令和規則
3□ 已建立 slate.json,包含權限和模型設定
4□ 已完成一次手動運行並驗證其可靠性
5□ 已為你的第一個重複任務撰寫 SKILL.md
6□ 已建立 STATE.md 並在 AGENTS.md 中引用
7□ 已撰寫 loop.md,包含明確的停止條件
8□ 已設定疊代次數的硬性上限(剛開始最多 8 次)
9□ 驗證者與執行者是不同的 Agent
10□ 對任何不可逆操作(PR、部署)設置了人工審查關卡

在排程任何東西之前,檢查每一個項目。

跳過任何一個,循環要不是默默地失敗,就是讓你白花錢。

更多循環靈感

一旦你掌握了這個模式,瓶頸就不再是「我要怎麼建立一個迴圈」,而是「我接下來該建立哪個迴圈」。

Forward Future 迴圈庫,網址在 signals.forwardfuture.com/loop-library,是個很好的地方,可以瀏覽各種實際運作中的迴圈,涵蓋內容、工程、營運和研究等不同領域。

當你一次看到 20 個正在運作的迴圈,你就不會再用單次性的提示詞來思考了。

令人不安的真相

兩個開發者可以使用完全相同的迴圈,卻得到截然相反的結果。

一個人用它來加速自己已經深刻理解的工作。

另一個人則用它來避免去理解工作本身。

迴圈本身並不知道其中的差別。

知道差別的是你。

設計迴圈比設計提示詞更難——而不是更容易。

重點不在於工作變簡單了。

而是槓桿點移動了。

建立迴圈吧。

但要以一個打算繼續當工程師,而不是只會按下啟動按鈕的人的心態來建立它。

而全新的 GPT-5.6 並沒有取代這個原則。如果真要說的話,它反而強化了這個原則。

前線不再是誰能寫出最聰明的提示詞。

而是誰能為日益強大的模型設計出最佳的系統。

60 秒重點回顧

什麼是迴圈:

→ 提示詞 = 問題。迴圈 = 工作。

→ 發現 → 執行 → 驗證 → 迭代 → 停止

四條件測試:

→ 任務會重複 / 驗證可自動化 / 預算能吸收浪費 / 「完成」的定義是客觀的

五個設定步驟:

→ AGENTS.md → slate.json → 一次手動執行 → SKILL.md → STATE.md

然後包裝起來:

→ loop.md 佇列檔案,或是在 CI 中執行的無頭式 Slate 運行

常見的失敗模式:

→ 雷夫·威格姆(過早退出)/ 目標偏移(忘記限制條件)/ 自我偏好偏差(製造者 = 檢查者)/ 代理式懶惰(做得差不多就好)

Slate 的優勢:

→ 每一步驟自動選擇模型 → 具備隔離性的平行子代理 → 長時間會話管理 → 你的迴圈,你的設計

如果這篇文章對你有幫助:

→ 分享給你的每一個開發者朋友

→ 追蹤 @sairahul1 以獲得更多這類系統知識

→ 把這篇存起來——光是設定檢查清單就值得收藏

訂閱 theaibuilders.co 以獲得更多有趣的文章

我寫作的主題涵蓋 AI、產品開發,以及那些在你睡覺時也能運作的系統。

文中提到的工具:

→ Slate 文件:docs.randomlabs.ai

→ Forward Future 迴圈庫:signals.forwardfuture.com/loop-library

二次創作

使用 YouMind 創作爆款文章

收集素材、拆解爆點、生成視覺資產、撰寫內容,並在一個 AI 工作空間裡完成分發。

了解 YouMind
寫給創作者

把你的 Markdown 變成乾淨的 𝕏 文章

圖片上傳、表格、程式碼區塊,往 𝕏 上手動重排太痛苦。YouMind 把整篇 Markdown 一鍵轉成乾淨、可直接發佈的 𝕏 文章草稿。

試試 Markdown 轉 𝕏

更多可拆解樣本

近期爆款文章

探索更多爆款文章