Cách xây dựng Agentic OS bằng Fable 5 (Hướng dẫn dành cho nhà phát triển)

@Av1dlive
TIẾNG ANH1 ngày trước · 06 thg 7, 2026
333K
311
41
41
1.1K

TL;DR

Hướng dẫn kỹ thuật này phác thảo khung làm việc gồm 8 bước để xây dựng hệ thống tác tử tự hành bằng Claude Fable 5, tập trung vào các cổng xác định (deterministic gates) và cơ chế tin cậy phân cấp.

Đây là bản phân tích toàn diện từ A đến Z về Claude Fable 5 - nó là gì và cách sử dụng nó như một kỹ sư 100x

Điều này sẽ thay đổi hoàn toàn cách bạn làm việc với Claude

Đánh dấu 8 bản build này trước khi bạn quên

Giới thiệu

Bạn đang sở hữu mô hình mạnh nhất từng được phát hành rộng rãi, nhưng bạn vẫn đang gõ từng prompt một. Hướng dẫn này sẽ khắc phục điều đó.

Đây là tình hình tính đến tháng 7 năm 2026. Fable 5 có thể chạy hàng giờ mà không cần giám sát, tự động điều phối các tác nhân con của nó, và hoàn thành một tuần làm việc chỉ trong một đêm. Nó cũng được tính phí theo mức sử dụng ($10/M đầu vào, $50/M đầu ra qua tín dụng sử dụng), nó làm quá nhiều khi phạm vi không được giới hạn, và nó bảo vệ cho những sai lầm của mình thuyết phục hơn hầu hết mọi người bảo vệ cho câu trả lời đúng của họ.

Nếu sử dụng một cách thông thường, nó là một cách đắt đỏ để tạo ra những thứ sai lầm ấn tượng. Nếu sử dụng trong một hệ thống, nó là thứ gần nhất với một nhân viên mà bạn có thể thuê với giá ba đô la một ngày.

Hướng dẫn này xây dựng hệ thống đó. Không phải là triết lý về nó: mà là các tệp thực tế, theo thứ tự, với một điểm kiểm tra sau mỗi bước để bạn biết nó hoạt động trước khi xếp chồng phần tiếp theo lên trên.

Những gì bạn sẽ có khi kết thúc:

  • Một tệp CLAUDE.md mà mô hình không thể thương lượng (BUILD 1)
  • Một vòng lặp hàng ngày nơi Fable 5 đưa ra mọi quyết định nhưng viết hầu như không có token, các mô hình rẻ thực hiện công việc, một bộ xác minh độc lập chấm điểm nó, và một script bash nắm giữ lá phiếu cuối cùng (BUILD 2-3)
  • Một sổ cái tin cậy tự động cấp và thu hồi quyền tự chủ theo từng kỹ năng, dựa trên tỷ lệ vượt qua đo được (BUILD 4)
  • Một thư mục mục tiêu nơi mọi thứ bạn từng hoàn thành tiếp tục được xác minh lại hàng ngày, mãi mãi, để không có gì âm thầm hỏng hóc (BUILD 5)
  • Một ngân sách tự thực thi thay vì làm bạn bất ngờ (BUILD 6)
  • Bốn vòng lặp tùy chọn (túc số, bánh cóc, đấu tập, ủ phân) mỗi vòng có điều kiện cho bạn biết khi nào nên cài đặt nó (BUILD 7)
  • Một lịch cron, một sổ tay vận hành cho mọi cảnh báo mà hệ thống có thể đưa ra, và một lịch trình tin cậy 30 ngày đưa nó từ được giám sát đến tự mở rộng.

Đối tượng hướng đến. Bất kỳ ai có repo, terminal và đăng ký Claude Code hoặc khóa API. Các ví dụ mang hương vị mã vì các vòng lặp phát triển xung quanh codebase, nhưng hệ thống mục tiêu và một nửa số vòng lặp hoạt động tốt trên hóa đơn, báo cáo và danh sách đọc; các điều kiện chỉ là các lệnh shell.

Cách đọc. Theo thứ tự, thực hiện các bước kiểm tra. BUILD 0 là các cài đặt chính thức của Anthropic và ngôn ngữ prompt; mọi thứ sau đó là hệ thống được xây dựng trên đó. Mỗi build mất 10 đến 20 phút. 30 ngày ở cuối không phải là thời gian đọc; chúng là lịch trình tin cậy tăng dần trong đó hệ thống giành được quyền chạy mà không cần bạn. Tổng thời gian thực hành: khoảng 2 giờ.

Ba nguyên tắc nền tảng cho mọi thứ, để bạn có thể dự đoán bất kỳ quyết định thiết kế nào trước khi đọc nó:

  1. Luật, không phải mẹo. Mọi quy tắc đều có một con số, một "không bao giờ" hoặc một lệnh kiểm tra nó. Bất cứ điều gì mềm mỏng hơn sẽ bị tối ưu hóa.
  2. Không có gì tự chấm điểm bài tập của chính nó. Người lập kế hoạch, người thực hiện, người xác minh và người gác cổng là bốn bên khác nhau, và bên cuối cùng là tất định.
  3. Không có gì đã từng vượt qua mà không bị theo dõi. Công việc đã hoàn thành sẽ tốt nghiệp thành một bất biến được xác minh lại. Một mục tiêu bạn chỉ xác minh một lần là một giả định có dấu thời gian.

Không có bài luận nào từ đây trở đi. Tám bản build, mỗi bản có các tệp, lệnh và một điểm kiểm tra.

Điều kiện tiên quyết

bash
1CLI claude (Claude Code) với quyền truy cập Fable 5 # bật tín dụng sử dụng, đặt giới hạn /usage-credits cap
2CLI llm + khóa OpenRouter # llm install llm-openrouter
3jq, gh, git, make, cron
4một repo có lệnh kiểm tra

Những gì bạn đang xây dựng

markdown
1your-repo/
2 CLAUDE.md # BUILD 1: hiến pháp
3 loop/
4 loop.sh # BUILD 3: nhịp tim
5 conductor.md # BUILD 3: prompt định tuyến
6 triage.md # BUILD 3: prompt đọc rẻ
7 contract.md # BUILD 2: ba danh sách
8 workers/implement.md # BUILD 3
9 workers/verify.md # BUILD 3
10 guardrails/verify.sh # BUILD 2: cổng tất định
11 scripts/trust-log.sh # BUILD 4
12 scripts/log-cost.sh # BUILD 6
13 scripts/cost-check.sh # BUILD 6
14 quorum.sh # BUILD 7 (tùy chọn)
15 verify-goals.sh # BUILD 5
16 goals/ # BUILD 5: các mục tiêu thường trực
17 skills/ # BUILD 4: một tệp cho mỗi nhân viên
18 memory/
19 STATE.md trust.tsv goal-ledger.tsv dispatch.tsv usage.log
20 Makefile # BUILD 8: tick / queue / trust / audit / dream

BUILD 0: Cấu hình Engine (từ tài liệu chính thức của Fable 5)

Mọi thứ trong bản build này đều đến từ tài liệu của chính Anthropic. Đặt những thứ này trước khi viết bất kỳ tệp nào của riêng bạn.

Bảng thông số kỹ thuật:

Cài đặt

Giá trị

Nguồn

Chuỗi mô hình

claude-fable-5

tổng quan mô hình

Ngữ cảnh / Đầu ra

1M token / lên đến 128k đầu ra mỗi yêu cầu

tài liệu giới thiệu

Giá

$10/M đầu vào, $50/M đầu ra

tài liệu giới thiệu

Suy nghĩ (Thinking)

thích ứng, luôn bật;

thinking: {type:"disabled"}

bị TỪ CHỐI; đầu ra suy nghĩ chỉ được tóm tắt

tài liệu giới thiệu + nỗ lực

Nỗ lực (Effort)

thấp

trung bình

cao

rất cao

tối đa

;

cao

= mặc định = bỏ qua tham số

tài liệu nỗ lực

Hình dạng API

output_config: {"effort": "..."}

trên Messages API

tài liệu nỗ lực

Năm sự thật chính thức thay đổi cách bạn xây dựng:

  1. max_tokens là một giới hạn cứng cho suy nghĩ CỘNG VỚI văn bản phản hồi. Ở mức cao và rất cao, hãy đặt nó lớn (bắt đầu từ 64k) nếu không Fable sẽ hết chỗ giữa chừng khi đang suy nghĩ. Áp dụng cho mọi lệnh gọi claude -p trong hướng dẫn này.
  2. rất cao (xhigh) chính thức dành cho "các tác vụ tác nhân chạy dài (trên 30 phút) với ngân sách token lên đến hàng triệu." Đó là vị trí của người điều phối và không có gì khác trong hệ thống này. Tài liệu cũng nói rằng nỗ lực thấp hơn trên Fable 5 "thường vượt quá hiệu suất rất cao trên các mô hình trước đó," vì vậy hãy chống lại việc nâng cấp công nhân.
  3. Từ chối là HTTP 200. Fable 5 chạy các bộ phân loại an toàn (an ninh mạng tấn công, sinh học/khoa học sự sống, trích xuất lý luận). Một yêu cầu bị từ chối trả về stop_reason: "refusal" như một phản hồi THÀNH CÔNG. Các script của bạn phải kiểm tra lý do dừng, không phải mã thoát. Biện pháp khắc phục chính thức: cấu hình dự phòng phía máy chủ hoặc phần mềm trung gian SDK để chuyển hướng đến Opus 4.8.
  4. Không bao giờ yêu cầu Fable lặp lại lý luận của nó. Các prompt hoặc kỹ năng nói "hiển thị suy nghĩ của bạn" hoặc "giải thích lý luận của bạn trong phản hồi" sẽ kích hoạt danh mục từ chối reasoning_extraction và nâng cấp dự phòng. Kiểm tra mọi kỹ năng cũ về điều này khi di chuyển. Thay vào đó, hãy đọc các khối suy nghĩ có cấu trúc.
  5. Các lượt được thiết kế dài. Các tác vụ khó chạy nhiều phút mỗi yêu cầu ở nỗ lực cao hơn; các lần chạy tự động kéo dài hàng giờ. Điều chỉnh thời gian chờ của máy khách và kiểm tra các lần chạy không đồng bộ (các tác vụ đã lên lịch, không phải chờ chặn). Đây là lý do tại sao nhịp tim là cron, không phải một vòng lặp chặn.

Gói prompt chính thức. Anthropic cung cấp ngôn ngữ prompt đã được kiểm tra cho các hành vi đã biết của Fable 5. Những thứ này đi vào prompt của bạn nguyên văn; đừng diễn giải chúng mỏng hơn:

  1. Chống lập kế hoạch quá mức (cho người điều phối và bất kỳ phiên tương tác nào):
markdown
1Khi bạn có đủ thông tin để hành động, hãy hành động. Đừng suy diễn lại các sự
2kiện đã được thiết lập trong cuộc trò chuyện, tranh luận lại một quyết định mà
3người dùng đã đưa ra, hoặc kể lại các lựa chọn mà bạn sẽ không theo đuổi. Nếu
4bạn đang cân nhắc một lựa chọn, hãy đưa ra một đề xuất, không phải một khảo sát
5đầy đủ.
  1. Chống mạ vàng (cho mọi prompt công nhân; đây là hàng rào chính thức xung quanh việc làm quá nhiều):
markdown
1Đừng thêm tính năng, tái cấu trúc hoặc giới thiệu các trừu tượng hóa vượt quá
2những gì tác vụ yêu cầu. Một bản sửa lỗi không cần dọn dẹp xung quanh. Đừng
3thiết kế cho các yêu cầu trong tương lai giả định: hãy làm điều đơn giản nhất
4hoạt động tốt. Đừng thêm xử lý lỗi hoặc xác thực cho các kịch bản không thể
5xảy ra. Chỉ xác thực tại các ranh giới hệ thống.
  1. Tuyên bố tiến độ có căn cứ (cho bất kỳ lần chạy dài nào; trong thử nghiệm của Anthropic, điều này gần như loại bỏ các báo cáo trạng thái bịa đặt):
markdown
1Trước khi báo cáo tiến độ, hãy kiểm tra từng tuyên bố dựa trên kết quả công cụ
2từ phiên này. Chỉ báo cáo công việc mà bạn có thể chỉ ra bằng chứng; nếu điều
3gì đó chưa được xác minh, hãy nói rõ như vậy. Nếu các bài kiểm tra thất bại,
4hãy nói như vậy với đầu ra; nếu một bước bị bỏ qua, hãy nói điều đó.
  1. Nhắc nhở đường ống tự động (cho mọi prompt do cron điều khiển; loại bỏ điểm dừng sớm "Tôi sẽ chạy X"):
markdown
1Bạn đang hoạt động tự động. Người dùng không xem và không thể trả lời câu hỏi
2giữa tác vụ. Đối với các hành động có thể đảo ngược theo sau từ yêu cầu ban đầu,
3hãy tiến hành mà không cần hỏi. Trước khi kết thúc lượt của bạn, hãy kiểm tra
4đoạn cuối cùng của bạn: nếu nó là một kế hoạch, một câu hỏi hoặc một lời hứa về
5công việc bạn chưa làm, hãy làm công việc đó ngay bây giờ với các lệnh gọi công
6cụ. Kết thúc chỉ khi tác vụ hoàn thành hoặc bạn bị chặn bởi đầu vào chỉ người
7dùng mới có thể cung cấp.
  1. Định dạng bộ nhớ chính thức (cho người mơ và memory/learnings/):
markdown
1Lưu trữ một bài học mỗi tệp với một bản tóm tắt một dòng ở đầu. Ghi lại các
2sửa chữa và các phương pháp đã được xác nhận như nhau, bao gồm lý do tại sao
3chúng quan trọng. Đừng lưu những gì repo đã ghi lại; cập nhật các ghi chú hiện
4có thay vì sao chép; xóa các ghi chú hóa ra là sai.
  1. Hướng dẫn xác minh chính thức (tài liệu nói trực tiếp: "các tác nhân con xác minh ngữ cảnh mới, riêng biệt có xu hướng hoạt động tốt hơn tự phê bình"):
markdown
1Thiết lập một phương pháp để kiểm tra công việc của chính bạn ở khoảng thời gian
2[X] khi bạn xây dựng. Chạy việc này mỗi [khoảng thời gian X], xác minh công việc
3của bạn với các tác nhân con dựa trên đặc tả.

Hai mệnh lệnh giàn giáo từ tài liệu đáng tuân theo: bắt đầu ở đầu phạm vi khó khăn của bạn (chỉ thử nghiệm Fable trên các khối lượng công việc đơn giản là bán rẻ nó; hãy giao cho nó vấn đề khó chưa giải quyết nhất và để nó xác định phạm vi), và tái cấu trúc các kỹ năng cũ (các hướng dẫn được viết cho các mô hình trước đó thường quá mệnh lệnh cho Fable 5 và LÀM GIẢM chất lượng đầu ra; nếu hiệu suất mặc định tốt hơn nếu không có hướng dẫn, hãy xóa hướng dẫn đó).

KIỂM TRA 0: Mọi lệnh gọi claude -p trong script của bạn có một max_tokens lớn rõ ràng ở nơi được hỗ trợ; script của bạn kiểm tra stop_reason: "refusal"; không có prompt hoặc kỹ năng nào ở bất cứ đâu nói "hiển thị suy nghĩ của bạn."

BUILD 1: Hiến pháp (CLAUDE.md)

Tại sao, trong một dòng: Fable tuân theo luật và tối ưu hóa xung quanh các mẹo, vì vậy mọi dòng cần một con số, một "không bao giờ" hoặc một lệnh kiểm tra nó.

Các quy tắc cho tệp: bốn khối, dưới 150 dòng, không có "suy nghĩ từng bước" (lý luận luôn bật; đó là các token phải trả tiền), không có tính cách tác nhân được xác định trước (Fable thiết kế các nhóm tốt hơn bạn có thể xác định trước), chủ yếu là các biển báo dừng.

Tạo CLAUDE.md:

markdown
1# CLAUDE.md
2
3## KHÔNG BAO GIỜ (luật; các ngoại lệ yêu cầu hỏi trước)
4- Không bao giờ vượt quá 200 dòng thay đổi trong một commit mà không hỏi.
5- Không bao giờ chạm vào src/auth/, src/billing/, migrations/ hoặc cấu hình sản xuất khi không có giám sát.
6- Không bao giờ báo cáo công việc là đã hoàn thành từ đánh giá của chính bạn. Hoàn thành = bài kiểm tra đã vượt qua.
7- Không bao giờ phát minh ra một bí mật, một điểm cuối hoặc một quy ước. Dừng lại và hỏi.
8- Không bao giờ thêm một phụ thuộc. Đề xuất nó trong STATE.md và dừng lại.
9- Không bao giờ vượt quá nỗ lực cao bên trong bất kỳ vòng lặp nào. xhigh chỉ dành cho các bài đánh giá một lần.
10- Không bao giờ chỉnh sửa hoặc xóa một bài kiểm tra để làm cho nó vượt qua. Đó là một sự thất bại, luôn luôn.
11- Không bao giờ lặp lại, ghi lại hoặc giải thích lý luận nội bộ của bạn trong văn bản phản hồi.
12 (Chính thức: kích hoạt các từ chối reasoning_extraction trên Fable 5.)
13- Khi một điều kiện /goal vượt qua, hãy viết goals/<tên>.md với điều kiện đó như
14 vị từ của nó trước khi báo cáo thành công.
15
16## ĐIỀU PHỐI (định tuyến mọi tác vụ; kết quả khớp đầu tiên thắng; ghi nhật ký vào memory/dispatch.tsv)
17| model | marginal | appetite | intelligence | taste |
18|-----------------|----------|----------|--------------|-------|
19| claude-fable-5 | 2 (credits) | 3 | 10 | 10 |
20| claude-opus-4-8 | 7 (sub) | 6 | 8 | 9 |
21| claude-sonnet-5 | 9 (sub) | 8 | 7 | 7 |
22| codex (2nd sub) | 9 | 10 | 9 | 5 |
231. Quyết định (lập kế hoạch/xem xét/định tuyến/bế tắc) -> fable-5, nỗ lực cao, chỉ đọc.
242. Đọc >50k token (nhật ký/PDF/ảnh chụp màn hình) -> codex. Không bao giờ fable.
253. Gửi đến người dùng (UI/API/bản sao) -> taste >= 8 có lượt cuối cùng.
264. Đặc tả hoàn chỉnh -> sonnet-5, nỗ lực trung bình.
275. Khác sonnet-5; leo lên một bậc khi bỏ lỡ mà không cần hỏi.
28
29## TỪ NGỮ
30- "intelligence" = vấn đề khó nhất được xử lý không giám sát
31- "taste" = UI/UX, chất lượng mã, thiết kế API, bản sao
32- "done" = vị từ vượt qua; không có gì khác
33- "small" = dưới 50 dòng thay đổi; "quick" = dưới 10 phút thời gian của bạn
34- "cleanup" = hành vi giống hệt, verify.sh xanh trước và sau
35
36## HOÀN THÀNH
37- Mọi tác vụ có một done_when có thể kiểm tra bằng máy trước khi công việc bắt đầu.
38- Một tác nhân ngữ cảnh mới không thấy kế hoạch hoặc bản nháp sẽ xác minh dựa trên nó.
39- guardrails/verify.sh có lá phiếu cuối cùng.
40- Sai lệch: tùy chọn bảo thủ, ghi nhật ký vào IMPLEMENTATION.md, tiếp tục.
41- Người tạo và người kiểm tra không đồng ý hai lần -> dừng lại, xếp hàng chờ con người.

Chỉnh sửa các số và đường dẫn cho phù hợp với bạn. Nội dung cụ thể về quy trình làm việc (quy trình PR, danh sách kiểm tra phát hành) đi trong skills/, không phải ở đây.

KIỂM TRA 1: Đối với mỗi dòng, hãy hỏi: liệu mô hình có thể tuân thủ 80% và tuyên bố thành công không? Nếu có, hãy viết lại nó với một con số hoặc một "không bao giờ". wc -l CLAUDE.md dưới 150

BUILD 2: Tường và Cổng

Tại sao: bán kính vụ nổ phải được khai báo trước nhịp tim đầu tiên và một script bash phải nắm giữ lá phiếu cuối cùng.

Tạo loop/contract.md:

markdown
1## hành động một mình
2tạo PR nháp trên các nhánh; sửa nợ lint/kiểm tra; cập nhật STATE.md; gắn nhãn issue
3
4## xếp hàng chờ tôi
5xác thực, thanh toán, di chuyển; bất kỳ kỹ năng nào dưới cấp "auto"; bất kỳ diff nào > 400 dòng
6
7## đánh thức tôi
8xác minh thất bại hai lần trên cùng một mục
9bộ định tuyến bảo vệ đã hoán đổi mô hình giữa chừng
10ngân sách hàng ngày bị vi phạm
11bất cứ thứ gì yêu cầu một bí mật
12một mục tiêu thường trực bị VI PHẠM

Tạo loop/guardrails/verify.sh (chỉnh sửa cho stack của bạn):

bash
1#!/usr/bin/env bash
2set -e
3npm run typecheck --if-present
4npm test --if-present
5npm run lint --if-present

KIỂM TRA 2: ./loop/guardrails/verify.sh chạy và thoát 0 trên repo hiện tại của bạn. Nếu nó thất bại bây giờ, hãy sửa nó trước; toàn bộ hệ thống đứng trên script này.

BUILD 3: Nhịp tim

Tại sao, trong ba dòng: Fable với tư cách là công nhân là một hóa đơn bốn con số (các phiên 500k-1M token ở $50/M đầu ra); Fable với tư cách là người điều phối phát ra 10-20% token trong khi đưa ra 100% quyết định. Một mô hình $0.01 đọc các nhịp tim yên tĩnh. Các tác nhân bàn giao thông qua một lược đồ JSON để bất kỳ mô hình nào cũng có thể phù hợp với bất kỳ vị trí nào.

Tạo loop/triage.md:

markdown
1Bạn nhận được các commit gần đây, issue mở và các lần chạy CI. Chỉ xuất ra CÁC PHÁT HIỆN:
2- finding: <một dòng>
3 evidence: <id commit/issue/run>
4 status: actionable | informational
5Không sửa chữa, không ý kiến. Không có gì để báo cáo = xuất ra chính xác "status: quiet".
6Bất cứ thứ gì chạm đến xác thực, thanh toán, di chuyển, bí mật = luôn luôn actionable,
7được ghi chú "contract-sensitive".

Tạo loop/conductor.md:

markdown
1Bạn là người điều phối. Bạn không viết mã. Bạn không chỉnh sửa tệp.
21. Đọc STATE, SỔ CÁI TIN CẬY, HỢP ĐỒNG bên dưới. Đừng tin vào bộ nhớ của chúng.
32. Chọn MỘT mục actionable có giá trị cao nhất.
4 contract-sensitive, mơ hồ hoặc có khả năng diff >400 dòng -> action: queue
5 không có gì đáng làm -> action: stop
63. Khác action: execute, với một đặc tả mà một mô hình tầm thường có thể làm theo.
7Chỉ xuất ra JSON này:
8{ "action": "execute|queue|stop", "item": "...", "skill": "<kebab-case,
9ổn định qua các lần chạy>", "spec": "...", "done_when": ["< thể xác minh>", ...] }
10Bạn rất đắt. Hãy ngắn gọn. Đầu ra của bạn là một quyết định, không phải một bài luận.

Tạo loop/workers/implement.md:

markdown
1Bạn nhận được một lệnh công việc (JSON). Thực thi đặc tả một cách chính xác.
2Làm MỘT bước tiếp theo hướng tới done_when. Các diff nhỏ thắng.
3Thiếu thông tin xác thực hoặc quyết định không được ghi lại -> DỪNG LẠI, viết câu hỏi vào
4IMPLEMENTATION.md. Không bao giờ phát minh ra bí mật hoặc quy ước.
5Ghi lại những gì bạn đã làm và tại sao trong IMPLEMENTATION.md (tối đa 3 dòng).

Tạo loop/workers/verify.md:

markdown
1Bạn nhận được một ĐẶC TẢ và một DIFF, không có gì khác. Chỉ đánh giá những gì ở trước mặt bạn.
21. Diff có thỏa mãn mọi done_when không? Trích dẫn các dòng.
32. Bất cứ thứ gì ngoài phạm vi của đặc tả? Thất bại ngay lập tức. Các bài kiểm tra bị xóa/bỏ qua? Thất bại ngay lập tức.
4Xuất ra chính xác một dòng: "PASS: < do>" hoặc "FAIL: < do>".
5Người tạo rất tự tin. Đó không phải là bằng chứng.

Tạo loop/loop.sh:

bash
1#!/usr/bin/env bash
2set -euo pipefail
3cd "$(dirname "$0")"
4MAX_ITERS="${MAX_ITERS:-10}"
5DAILY_BUDGET_USD="${DAILY_BUDGET_USD:-5}"
6CHEAP="${CHEAP:-openrouter/deepseek/deepseek-v4-flash}"
7WORKER="${WORKER:-openrouter/moonshotai/kimi-k2.6}"
8
9./scripts/cost-check.sh --budget "$DAILY_BUDGET_USD" || exit 3
10
11for ((i=1; i<=MAX_ITERS; i++)); do
12 # 1 PHÂN LOẠI: cổng nhịp yên tĩnh, ~$0.01
13 { git log --oneline -20; gh issue list --limit 20 2>/dev/null || true; \
14 gh run list --limit 10 2>/dev/null || true; } \
15 | llm -m "$CHEAP" -s "$(cat triage.md)" >> memory/STATE.md
16 ./scripts/log-cost.sh triage 0.01
17 grep -q "status: actionable" memory/STATE.md || { echo quiet; exit 0; }
18
19 # 2 ĐIỀU PHỐI: Fable, xhigh, ngữ cảnh mới, chỉ đọc, đầu ra JSON
20 claude -p "$(cat conductor.md)
21STATE: $(cat memory/STATE.md)
22TRUST: $(./scripts/trust-log.sh --render)
23CONTRACT: $(cat contract.md)" \
24 --model claude-fable-5 --effort xhigh --allowedTools "Read" \
25 --output-format json > /tmp/c.json
26 ./scripts/log-cost.sh conductor 0.35
27
28 # 2a DUNG SAI ĐỊNH TUYẾN: không bao giờ lặp lại trên một mô hình bạn không chọn
29 SERVED=$(jq -r '.modelUsage | keys[0] // "claude-fable-5"' /tmp/c.json)
30 [[ "$SERVED" != *fable* ]] && { echo "rerouted" >> memory/STATE.md; exit 2; }
31
32 jq -r '.result' /tmp/c.json > work-order.json
33 SKILL=$(jq -r .skill work-order.json); ACTION=$(jq -r .action work-order.json)
34 [[ "$ACTION" == stop ]] && exit 0
35 [[ "$ACTION" == queue ]] && { echo "queued: $SKILL" >> memory/STATE.md; continue; }
36
37 # 3 THỰC THI: công nhân rẻ, cây làm việc biệt lập
38 WT="../wt-$i"; git worktree add "$WT" -b "loop/$SKILL-$i" >/dev/null
39 ( cd "$WT" && llm -m "$WORKER" -s "$(cat "$OLDPWD/workers/implement.md")" \
40 "$(cat "$OLDPWD/work-order.json")" > IMPLEMENTATION.md )
41 ./scripts/log-cost.sh worker 0.10
42
43 # 4 XÁC MINH: Fable mới, không có công cụ, chỉ thấy đặc tả + diff
44 V=$(claude -p "$(cat workers/verify.md)
45SPEC: $(jq -r .spec work-order.json)
46DIFF: $(cd "$WT" && git diff)" \
47 --model claude-fable-5 --effort high --allowedTools "" \
48 --output-format json | jq -r .result)
49 ./scripts/log-cost.sh verifier 0.40
50
51 # 5 CỔNG: tất định; sau đó sổ cái; gửi hàng chỉ ở cấp auto
52 if [[ "$V" == PASS* ]] && ( cd "$WT" && "$OLDPWD/guardrails/verify.sh" ); then
53 ./scripts/trust-log.sh "$SKILL" pass
54 if [[ "$(./scripts/trust-log.sh --tier "$SKILL")" == auto ]]; then
55 ( cd "$WT" && git add -A && git commit -qm "loop: $SKILL" && gh pr create --fill || true )
56 echo "- shipped: $SKILL" >> memory/STATE.md
57 else
58 echo "- review: $SKILL in $WT" >> memory/STATE.md
59 fi
60 else
61 ./scripts/trust-log.sh "$SKILL" fail
62 echo "- FAILED: $SKILL in $WT" >> memory/STATE.md
63 fi
64 ./scripts/cost-check.sh --budget "$DAILY_BUDGET_USD" || exit 3
65done
66exit 1 # giới hạn lặp mà không dừng: kiểm tra STATE.md

Bản đồ thoát: 0 yên tĩnh/xong, 1 giới hạn, 2 định tuyến lại, 3 ngân sách. Tất cả đều được gắn nhãn, có chủ đích.

KIỂM TRA 3: chmod +x loop.sh guardrails/verify.sh sau đó chạy ./loop.sh một lần bằng tay. Xác nhận: một repo yên tĩnh thoát 0 với giá khoảng một xu; một repo có thể hành động tạo ra work-order.json với tất cả năm trường và một dòng phán quyết trong STATE.md.

BUILD 4: Sổ cái tin cậy

Tại sao: "tăng quyền tự chủ khi niềm tin lớn lên" không phải là một cơ chế; một TSV với các quy tắc cấp bậc mới là. Quyền tự chủ là theo từng kỹ năng, không phải theo từng vòng lặp.

Tạo loop/scripts/trust-log.sh:

bash
1#!/usr/bin/env bash
2# cách dùng: trust-log.sh <skill> <pass|fail> | --render | --tier <skill>
3set -euo pipefail
4F="$(dirname "$0")/../memory/trust.tsv"; touch "$F"
5tier_of() { awk -v r="$1" -v p="$2" 'BEGIN{
6 rate=(r>0)?p/r:0
7 if (r>=20 && rate>=0.95) print "auto"
8 else if (r<10 || rate<0.90) print "watch"
9 else print "queue"}'; }
10case "${1:-}" in
11 --render)
12 printf "%-20s %5s %5s %6s %s\n" skill runs pass rate tier
13 while IFS=$'\t' read -r s r p; do [ -z "$s" ] && continue
14 printf "%-20s %5s %5s %5s%% %s\n" "$s" "$r" "$p" \
15 "$(awk -v r="$r" -v p="$p" 'BEGIN{printf "%.0f",(r>0)?p/r*100:0}')" \
16 "$(tier_of "$r" "$p")"; done < "$F";;
17 --tier)
18 line=$(grep -P "^${2}\t" "$F" || echo -e "${2}\t0\t0")
19 tier_of "$(cut -f2 <<<"$line")" "$(cut -f3 <<<"$line")";;
20 *)
21 awk -v s="$1" -v r="$2" -F'\t' 'BEGIN{OFS="\t"; f=0}
22 $1==s {f=1; print s,$2+1,$3+(r=="pass"); next} {print}
23 END{if(!f) print s,1,(r=="pass")?1:0}' "$F" > "$F.t" && mv "$F.t" "$F"
24 if [ "$2" = fail ]; then
25 runs=$(grep -P "^${1}\t" "$F" | cut -f2)
26 [ "$("$0" --tier "$1")" = watch ] && [ "$runs" -ge 10 ] \
27 && echo "CẢNH BÁO: $1 bị giáng cấp xuống watch sau $runs lần chạy" >&2 || true
28 fi;;
29esac
  • Quy tắc cấp bậc: auto = 20+ lần chạy VÀ 95%+ vượt qua, gửi hàng không cần giám sát. queue = bản nháp đã xác minh chờ bạn. watch = dưới 10 lần chạy hoặc dưới 90%, chỉ bản nháp. Giáng cấp là tự động và in ra stderr, mà cron sẽ gửi email cho bạn.
  • Gieo hạt giống đội hình: tạo loop/skills/<tên>/SKILL.md cho mỗi công việc định kỳ (sửa nợ lint, sửa kiểm tra không ổn định, nâng cấp phụ thuộc, phân loại issue là bốn tiêu chuẩn). Mỗi tệp: frontmatter (tên, mô tả, khi nào), các bước, danh sách "không bao giờ", một điều kiện hoàn thành có thể xác minh. Mọi kỹ năng bắt đầu ở watch.

KIỂM TRA 4: Chạy ./scripts/trust-log.sh demo pass 21 lần, sau đó --tier demo in ra auto. Ghi nhật ký một lần thất bại trên một kỹ năng có 10+ lần chạy và thấy CẢNH BÁO trên stderr. Đặt lại: > memory/trust.tsv.

BUILD 5: Mục tiêu thường trực + Sổ cái mục tiêu

Tại sao, trong một dòng: một mục tiêu bạn chỉ xác minh một lần là một giả định có dấu thời gian, vì vậy các mục tiêu đã hoàn thành sẽ tốt nghiệp thành các bất biến được xác minh lại hàng ngày và được ghi nhật ký.

Tạo một tệp cho mỗi thứ đã hoàn thành, goals/<tên>.md:

markdown
1predicate: cd $REPO && npm test -- tests/auth 2>&1 | tail -1 | grep -q passing
2born: 2026-07-06
3source: /goal session 2026-07-06 (fix auth flake)
4status: satisfied
5last-pass: 2026-07-06
6on-violation: đánh thức tôi. Không tự động sửa.
7retire-when: mô-đun auth bị xóa. Nghỉ hưu là quyết định của con người, được ghi lại.

Tạo loop/verify-goals.sh:

bash
1#!/usr/bin/env bash
2set -uo pipefail
3LEDGER="memory/goal-ledger.tsv"; VIOLATIONS=0
4for g in goals/*.md; do
5 [ -e "$g" ] || continue
6 grep -q '^status: retired' "$g" && continue
7 pred=$(grep '^predicate:' "$g" | cut -d' ' -f2-); name=$(basename "$g" .md)
8 start=$(date +%s%3N)
9 if timeout 60 bash -c "$pred" >/dev/null 2>&1; then r=pass
10 sed -i "s/^status:.*/status: satisfied/; s/^last-pass:.*/last-pass: $(date +%F)/" "$g"
11 else r=FAIL; VIOLATIONS=$((VIOLATIONS+1)); sed -i "s/^status:.*/status: VIOLATED/" "$g"; fi
12 echo -e "$(date -Is)\t$name\t$r\t$(( $(date +%s%3N) - start ))" >> "$LEDGER"
13done
14[ "$VIOLATIONS" -gt 0 ] && { grep -l '^status: VIOLATED' goals/*.md; exit 1; }
15echo "tất cả các mục tiêu thường trực đều được giữ vững"

Khởi động trình giám sát (chỉ phát hiện; các bản sửa lỗi đi qua đường ống bình thường):

bash
1/loop 1d Chạy ./verify-goals.sh. Nếu khác không: cho mỗi mục tiêu bị vi phạm, đọc
2ngày vượt qua cuối cùng của nó và liệt kê những gì đã được hợp nhất kể từ đó (git log --oneline --since=<ngày>).
3Báo cáo mục tiêu, nghi phạm, chính sách on-violation. Không sửa bất cứ thứ gì.

Luật tốt nghiệp đã có trong CLAUDE.md (BUILD 1): mọi /goal vượt qua đều viết mục tiêu thường trực của riêng nó. Hoàn thành CHÍNH LÀ sự đăng ký.

Các truy vấn sổ cái bạn sẽ thực sự sử dụng:

bash
1awk -F'\t' '$3=="FAIL"{n[$2]++} END{for(g in n) print n[g],g}' memory/goal-ledger.tsv | sort -rn | head -5 # flakiest
2grep <goal> memory/goal-ledger.tsv | awk -F'\t' '$3=="FAIL"' | head -1 # when it broke

Vị từ không ổn định: quarantine (trạng thái: retired, ghi chú "cần một vị từ tốt hơn"), không bao giờ xóa.

KIỂM TRA 5: Thêm một goal với vị từ: true và một goal với vị từ: false. ./verify-goals.sh thoát với mã 1, chuyển goal thứ hai thành VIOLATED, và cả hai đều xuất hiện trong ledger. Xóa các goal giả.

BUILD 6: Ngân sách

Tại sao: chi phí hàng ngày = số lần tick × triage + số lần hit × (conductor + worker + verifier). Với giá thực tế (triage $0.01, conductor $0.35, worker $0.10, verifier $0.40): một janitor hàng ngày tốn ~$2.56/ngày; một babysitter 15 phút với Fable ở vị trí triage tốn $34/ngày cho cùng một kết quả. Mô hình đọc các tick yên tĩnh quyết định hóa đơn.

Tạo loop/scripts/log-cost.sh:

bash
1#!/usr/bin/env bash
2echo -e "$(date -Is)\t$1\t$2" >> "$(dirname "$0")/../memory/usage.log"

Tạo loop/scripts/cost-check.sh:

bash
1#!/usr/bin/env bash
2set -euo pipefail
3F="$(dirname "$0")/../memory/usage.log"; touch "$F"; TODAY=$(date +%F)
4case "${1:-}" in
5 --budget)
6 spent=$(awk -F'\t' -v d="$TODAY" '$1 ~ d {s+=$3} END{printf "%.2f",s}' "$F")
7 awk -v s="$spent" -v b="$2" 'BEGIN{exit (s>=b)?1:0}' \
8 || { echo "đã chi \$$spent trong tổng \$$2" >&2; exit 1; };;
9 --report)
10 awk -F'\t' -v since="$(date -d '7 days ago' +%F)" \
11 '$1>=since{s[$2]+=$3;t+=$3} END{for(k in s) printf " %-10s $%.2f\n",k,s[k]; printf " TỔNG $%.2f\n",t}' "$F";;
12esac

Các quy tắc giữ cho nó ổn định: nhịp độ là một quyết định chi phí (giảm một nửa khoảng thời gian sẽ nhân đôi mức sàn); tick yên tĩnh phải có giá cent; effort không bao giờ vượt quá high trong các vòng lặp (xhigh dành cho các đánh giá một lần; effort là cho mỗi bước, không phải mỗi lần chạy).

KIỂM TRA 6: Sau một tuần tick, ./scripts/cost-check.sh --report khớp với công thức trong phạm vi sai số. Đặt DAILY_BUDGET_USD thành một con số mà bạn không ngại lãng phí.

BUILD 7: Các vòng lặp tùy chọn (cài đặt khi điều kiện của chúng xuất hiện)

  • Quorum (cài đặt khi dispatch hiển thị các lần đánh thức Fable tạo ra hành động: dừng). Ba mô hình rẻ tiền bỏ phiếu; Fable thức dậy khi có 2 trên 3 phiếu. Những người bỏ phiếu không bao giờ thấy câu trả lời của nhau.
bash
1V=0
2for m in deepseek/deepseek-v4-flash qwen/qwen-3.6 moonshotai/kimi-k2.6; do
3 llm -m "openrouter/$m" -s "$(cat triage.md)" < /tmp/signals.txt \
4 | grep -q "status: actionable" && V=$((V+1))
5done
6[ "$V" -ge 2 ] && exec ./conduct.sh || echo "quorum: yên tĩnh ($V/3)"
  • Ratchet (cài đặt khi một con số có ý nghĩa). Cải thiện đơn điệu hoặc tự động hoàn nguyên; số liệu không thể bị gian lận; mức sàn đã hoàn thành trở thành một goal cố định.
markdown
1/goal Giảm `npm run lint 2>&1 | grep -c warning` xuống 0.
2Quyền hạn: chỉnh sửa src/; commit cho mỗi lần sửa; đo lại sau mỗi thay đổi.
3Rào cản: con số KHÔNG BAO GIỜ tăng lên; hoàn nguyên bất kỳ thay đổi nào làm tăng nó hoặc phá vỡ
4một bài kiểm tra; không bao giờ chỉnh sửa cấu hình lint để giảm nó.
5Giới hạn thời gian: dừng sau 3 lần thử không có tiến triển; báo cáo các vấn đề còn lại.
  • Sparring (cài đặt khi bạn ship code hàng ngày). Người xây dựng và người phá vỡ, đối lập nhau; không ai động đến đầu ra của người kia; tranh chấp sẽ đến tay bạn.
markdown
1/loop 1d [người phá vỡ] Đọc các diff đã được merge hôm qua. Viết MỘT bài kiểm tra thất bại
2phơi bày một điểm yếu thực sự. Commit dưới tests/sparring/ được gắn thẻ @sparring.
3Không sửa gì cả. Code tốt = hãy nói vậy, không viết gì.
4/loop 1d [người xây dựng] Nếu bất kỳ bài kiểm tra @sparring nào thất bại, hãy sửa CODE cho đến khi nó vượt qua.
5Không bao giờ chỉnh sửa, làm yếu đi hoặc xóa bài kiểm tra sparring; tranh chấp xếp hàng chờ tôi.
  • Compost (luôn cài đặt, hàng tuần). Các thất bại trở thành luật; tối đa ba đề xuất; cần chữ ký của con người.
markdown
1/loop 7d Đọc các đầu ra của tuần này: FAILED trong STATE.md, fails trong trust.tsv,
2FAIL trong goal-ledger.tsv, PR đã đóng nhưng chưa merge. Trích xuất TỐI ĐA 3 đề xuất:
3một luật CLAUDE.md mới (trích dẫn sự cố), một sửa lỗi kỹ năng (cùng một lỗi lặp lại),
4hoặc một goal cố định mà chúng ta còn thiếu. Chỉ đề xuất. Tuần sạch sẽ = hãy nói vậy.

KIỂM TRA 7: Mỗi vòng lặp tùy chọn có điều kiện cài đặt được viết bên cạnh nó trong ghi chú của bạn. Cài đặt chúng một cách suy đoán là cách các hệ thống phình to.

BUILD 8: Vận hành

Tạo Makefile:

text
1tick: ; ./loop/loop.sh
2queue: ; @grep -E "review:|queued:|FAILED:|rerouted" loop/memory/STATE.md || echo trống
3trust: ; @./loop/scripts/trust-log.sh --render
4audit: ; @./loop/scripts/cost-check.sh --report
5goals: ; @./loop/verify-goals.sh
6clean-worktrees: ; @git worktree list | awk '/wt-/{print $$1}' | xargs -rn1 git worktree remove --force

Cron, khi Tuần 2 bắt đầu:

markdown
10 7 * * 1-5 cd /path/to/repo/loop && ./loop.sh >> memory/cron.log 2>&1
230 7 * * * cd /path/to/repo/loop && ./verify-goals.sh >> memory/cron.log 2>&1

Lịch trình tin cậy 30 ngày

Đừng bỏ qua các lần tốt nghiệp; mỗi lần mở khóa lần tiếp theo.

Tuần

Cấp độ

Bạn làm

Tốt nghiệp khi

1

Báo cáo L1

Builds 1-6;

make tick

bằng tay hàng ngày; đọc mọi thứ

3 lần chạy liên tiếp định tuyến chính xác như bạn đã làm

2

Bản nháp L2

bật cron;

make queue

với cà phê; các đánh giá nuôi dưỡng ledger

2 kỹ năng vượt qua 20 lần chạy được ghi nhận

3

Ship L3

make audit

so với công thức; kỹ năng tốt nhất hoạt động không cần giám sát

1 tuần, không can thiệp

4

Phát triển L4

compost ký duyệt; phê duyệt 1 kỹ năng được đề xuất; chạy bước xóa

bạn đã xóa thứ gì đó và không có gì bị hỏng

Sổ tay vận hành. Ý nghĩa của từng cảnh báo và phải làm gì:

Tín hiệu

Ý nghĩa

Hành động

exit 2 (reroute)

bộ định tuyến bảo vệ đã hoán đổi mô hình giữa chừng

đọc checkpoint; chạy lại mục vào ngày mai; không bao giờ lặp lại trên đầu ra đã bị hoán đổi

stop_reason: refusal

bộ phân loại an toàn từ chối (HTTP 200, không phải lỗi)

đường dẫn chính thức: dự phòng sang Opus 4.8 qua

fallbacks

hoặc middleware; nếu lặp lại trên một kỹ năng, hãy kiểm tra kỹ năng đó về lỗi lặp lại suy luận hoặc cụm từ liên quan đến mạng/ sinh học

exit 3 (budget)

chi tiêu hàng ngày chạm ngưỡng

make audit

; tìm giai đoạn nào đã tăng; sửa bản đồ effort, không phải ngân sách

ALERT bị giáng cấp

một kỹ năng đã được thiết lập giảm xuống dưới 90%

đọc 3 lần thất bại gần nhất của nó; thường là mẫu spec, không phải worker

goal VIOLATED

một thứ đã hoàn thành không còn đúng nữa

sentinel đưa ra nghi phạm; sửa lỗi thông qua pipeline bình thường

bế tắc maker/checker x2

không bên nào được cho là đúng

bạn quyết định, hoặc chạy bộ phá bế tắc (người đánh giá mới thứ ba, đánh giá bằng chứng, không được chia đôi)

verify-goals timeout

vị từ quá đắt

đó là một vi phạm; làm rẻ hơn vị từ

Các quy tắc (in cái này)

  1. Luật, không phải mẹo: một con số, một "không bao giờ", hoặc một lệnh kiểm tra nó.
  2. Conductor lập kế hoạch, worker thực thi, không ai xác minh. --allowedTools thực thi điều này.
  3. Agent giao tiếp bằng lệnh công việc. done_when = spec + điều kiện dừng + bất biến tương lai.
  4. Dành effort nơi vòng lặp rẽ nhánh. Không bao giờ vượt quá high trong một vòng lặp.
  5. Tick yên tĩnh tốn một xu hoặc vòng lặp tốn một nghìn đô.
  6. Nếu một shell script không thể kiểm tra nó, đừng viết nó thành một goal.
  7. Goal tốt nghiệp; chúng không đóng lại. verify-goals.sh chạy hàng ngày, mãi mãi.
  8. Tự chủ cho mỗi kỹ năng: 20 lần chạy, 95%, tự động. Giáng cấp tự động và ồn ào.
  9. Hai ledger: trust (worker) và goals (công việc). Đọc cả hai với cà phê.
  10. Tính toán sự trao đổi chất trước khi bạn cron.
  11. Hợp đồng trong repo: tự hoạt động / xếp hàng / đánh thức tôi.
  12. Không bao giờ lặp lại trên đầu ra từ một mô hình bạn không chọn.
  13. Sentinel phát hiện; pipeline sửa lỗi.
  14. Quorum trước khi đánh thức Fable. Ratchet sau đó hàn. Spar hàng ngày. Compost hàng tuần.
  15. Một tiêu chí tốt nghiệp tại một thời điểm. Mỗi tháng, xóa một thứ gì đó.
  16. Từ tài liệu chính thức: max_tokens giới hạn suy nghĩ cộng với văn bản, từ chối là HTTP 200, không bao giờ yêu cầu suy luận được lặp lại, kỹ năng cũ làm giảm Fable, và verifier ngữ cảnh mới tốt hơn tự phê bình. Anthropic nói vậy; hệ thống thực thi nó.

Kết luận

Ba mươi ngày kể từ bây giờ, nếu bạn đã làm các kiểm tra: một vòng lặp ship công việc nhàm chán mà không cần giám sát, một thư mục goals xác minh lại mọi thứ bạn từng hoàn thành, hai ledger cho bạn biết sự thật về worker và công việc của bạn, và một lần chạy compost hàng tuần đề xuất cải tiến tiếp theo của chính hệ thống để bạn ký duyệt.

  • Mô hình chưa bao giờ là phần khó khăn. Phần khó khăn là xây dựng một thứ xung quanh nó luôn trung thực khi bạn ngừng theo dõi. Đó là thứ bạn vừa xây dựng.
  • Bắt đầu tối nay với hai mươi phút chứng minh điều đó: BUILD 2's verify.sh, BUILD 3's tick đầu tiên bằng tay, và một goal cố định cho thứ cuối cùng bạn đã hoàn thành.
  • Lần đầu tiên verify-goals.sh bắt được một sự thoái lui thầm lặng trên thứ bạn chắc chắn đã xong, bạn sẽ không cần thuyết phục về phần còn lại.

Tuyên bố miễn trừ trách nhiệm

Bài viết này được viết bằng cách sử dụng ghi chú của người dùng và được chỉnh sửa bởi Claude Opus 4.8 max.

Viết lại trong YouMind

Turn one viral article into a full content workflow

Collect the source, decode the pattern, create assets, draft the story, and distribute from one AI workspace.

Explore YouMind
Dành cho nhà sáng tạo

Biến Markdown của bạn thành bài viết 𝕏 gọn gàng

Khi bạn đăng bài viết dài của riêng mình, việc định dạng hình ảnh, bảng và khối mã cho 𝕏 rất mệt mỏi. YouMind biến cả bản nháp Markdown thành một bài viết 𝕏 gọn gàng, sẵn sàng để đăng.

Thử Markdown sang 𝕏

Thêm pattern để giải mã

Bài viết viral gần đây

Khám phá thêm bài viết viral