Tuần trước tại @HelloUntangle, chúng tôi đã hoàn thành chương trình kỹ thuật lớn nhất và rủi ro nhất trong lịch sử của mình.
- 834 tệp
- Thay đổi dữ liệu sản xuất
- Cập nhật lược đồ cơ sở dữ liệu
- 31 PR
- Bắt đầu từ Thứ Sáu -> hoàn thành vào Thứ Hai
- Không có sự cố sản xuất nào
Tất cả chỉ với một phiên điều phối chính Fable.
Một phiên @DevinAI chính đã lập kế hoạch công việc, tạo ra bốn mươi phiên con để thực thi, thực thi các cổng kiểm tra hồi quy và kiểm tra sao lưu giữa các giai đoạn, và chỉ đưa ra những quyết định thực sự cần chủ sở hữu: phán quyết về phạm vi và quyết định tiếp tục/dừng đối với các bước không thể đảo ngược.
Điều làm nên thành công này là một tập hợp các mẫu quản lý chương trình có thể cải thiện bất kỳ quá trình di chuyển lớn nào.
Đây là cách chúng tôi đã làm ...
Kiến trúc: một bộ điều phối, nhiều worker
- Một phiên chính sở hữu toàn bộ chương trình từ đầu đến cuối. Công việc duy nhất của nó là lập kế hoạch, tạo các phiên con, xem xét đầu ra của chúng, sắp xếp thứ tự các giai đoạn và chuyển tiếp cho tôi khi cần quyết định có sự can thiệp của con người. Nó không viết một dòng code nào.
- ~40 phiên con thực hiện tất cả công việc thực tế: mười một phiên kiểm toán song song trong Giai đoạn 0, các phiên thực thi cho mỗi đợt và các phiên chạy cổng chuyên dụng chỉ có nhiệm vụ chạy bộ kiểm thử hồi quy.
Sự phân chia này rất quan trọng vì chế độ thất bại của các dự án dài hạn — dù là AI hay con người — là sụp đổ ngữ cảnh: thứ đang thực hiện công việc dần dần mất đi bức tranh tổng thể của chương trình.
Giữ cho phiên chính là một bộ điều phối thuần túy giúp ngữ cảnh của nó luôn sạch sẽ; nó nắm giữ kế hoạch, các quyết định về phạm vi và trạng thái của mọi đợt. Mỗi phiên con nhận được một ngữ cảnh mới mẻ, tập trung với chính xác một công việc.
Bảy mẫu đã làm nên thành công
1. Kiểm toán trước, và đóng băng các phát hiện trong một bản kê khai duy nhất
Giai đoạn 0 là mười một phiên kiểm toán song song, mỗi phiên bao phủ một phần của mã nguồn: các route ứng dụng, route API và crons, lược đồ cơ sở dữ liệu, thư viện dùng chung và quy trình làm việc, tập lệnh và tài liệu. Các phát hiện của chúng được tổng hợp vào một tệp duy nhất và được commit vào kho lưu trữ.
Bản kê khai gán cho mỗi đơn vị code một phán quyết và một số đợt. Hai quy tắc đã làm cho nó trở nên mạnh mẽ:
- Không worker nào được tranh luận lại phạm vi. Mọi lời nhắc thực thi đều nói, về cơ bản: bản kê khai là nguồn sự thật duy nhất. Nếu không có điều này, mỗi phiên trong số bốn mươi phiên sẽ tự đưa ra ý kiến riêng về những gì nằm trong phạm vi — và chúng sẽ mâu thuẫn với nhau.
- UNKNOWN có nghĩa là dừng lại và hỏi.* Bất cứ điều gì mà các cuộc kiểm toán không đề cập đến đều được đánh dấu rõ ràng là không xác định, kèm theo hướng dẫn: không được đoán; hãy yêu cầu phán quyết.* Các phán quyết của chủ sở hữu được ghi trực tiếp vào bản kê khai, để các phiên sau kế thừa chúng.
2. Sắp xếp công việc theo rủi ro, không phải theo sự thuận tiện
Các đợt được sắp xếp theo thứ tự từ an toàn nhất đến không thể đảo ngược nhất.
Đợt
Nội dung
Rủi ro
0
Kiểm toán + bản kê khai + thẻ git điểm khôi phục
Không có
1
Các thay đổi đã được xác minh là không có phụ thuộc trực tiếp
Gần như bằng không
2
Phẫu thuật rối rắm trên cơ sở hạ tầng dùng chung
Trung bình
3–4
Phần lớn các thay đổi code
Trung bình
5
Thay đổi dữ liệu sản xuất (có kiểm kê chạy thử + snapshot)
Cao
6
Di chuyển lược đồ
Cao
7
Cắt tỉa phụ thuộc, viết lại agents.md, kiểm toán cơ sở kiến thức agent
Thấp
Các thay đổi dữ liệu sản xuất (Đợt 5) diễn ra trước các thay đổi lược đồ (Đợt 6), và cả hai chỉ diễn ra sau khi mọi đường dẫn code chạm vào các bảng bị ảnh hưởng đã được cập nhật một cách có thể kiểm chứng. Vào thời điểm các lần di chuyển chạy, không còn gì có thể phụ thuộc vào trạng thái cũ nữa.
3. Ranh giới tệp rời rạc giúp song song hóa an toàn
Trong một đợt, các phiên con chạy song song — một đợt có bốn phiên làm việc trên các phần khác nhau của cây cùng một lúc. Nguyên tắc: mọi lời nhắc đều bao gồm một ranh giới tệp rõ ràng và các ranh giới này là rời rạc. Không có xung đột hợp nhất, không có hai agent nào chỉnh sửa cùng một tệp, không cần phối hợp giữa các phiên con.
Đây là sự phân rã tác vụ cổ điển — điều tương tự bạn sẽ làm khi chia công việc cho các kỹ sư — nhưng các agent cần điều này được nêu rõ ràng, trong lời nhắc, mỗi lần.
4. Cổng an toàn giữa các đợt
Không có đợt nào bắt đầu cho đến khi đợt trước vượt qua một cổng. Các cổng này tự chúng là các phiên con:
- Một bộ kiểm thử hồi quy từ đầu đến cuối dựa trên trình duyệt bao phủ quy trình khách hàng cốt lõi của nền tảng chạy sau Đợt 2 và một lần nữa sau Đợt 3–4, trên một nhánh cơ sở dữ liệu biệt lập mới.
- Trước bất kỳ thay đổi dữ liệu sản xuất nào: một phiên chuyên dụng kiểm toán kiểm kê sao lưu cơ sở dữ liệu của chúng tôi (số lượng, phạm vi ngày, thời gian lưu giữ) và chúng tôi đã chụp một snapshot mới tại một thời điểm cụ thể.
- Bản thân bước sản xuất chạy thử trước, tạo ra số lượng hàng để chủ sở hữu phê duyệt và xác minh lại số lượng sau khi thực thi.
- Một thẻ git đánh dấu điểm khôi phục cho mọi dòng đã thay đổi.
Khi một cổng thất bại, nó tạo ra một phiên sửa lỗi có phạm vi hẹp. Bộ kiểm thử hồi quy đã phát hiện, ví dụ, một luồng hướng đến khách hàng đã bị hỏng do một thay đổi quá vội vàng; một phiên sửa lỗi đã khôi phục nó trong vòng vài giờ. Đó là hệ thống đang hoạt động — cổng đã biến một lỗi mà lẽ ra khách hàng sẽ báo cáo thành một bản sửa lỗi trong cùng ngày.
5. Con người phê duyệt; agent đề xuất
Tôi chưa bao giờ viết code, chạy di chuyển hoặc thực thi một tập lệnh sản xuất nào trong dự án này. Nhưng mọi bước không thể đảo ngược đều yêu cầu sự chấp thuận rõ ràng của tôi: mỗi lần merge vào nhánh chính, các thay đổi dữ liệu sản xuất, các lần di chuyển lược đồ và mỗi phán quyết về các mục UNKNOWN trong phạm vi.
Mẫu cho công việc phá hủy: agent đề xuất một bản kiểm kê, con người phê duyệt bản kiểm kê, sau đó agent thực thi chính xác bản kiểm kê đó. Phiên sản xuất đã tạo ra danh sách chính xác các hàng mà nó sẽ chạm vào trước khi chạm vào bất cứ thứ gì. Tôi đã phê duyệt một danh sách cụ thể, không phải một ý định mơ hồ.
6. Một giao thức leo thang cho những bất ngờ
Các phiên con được hướng dẫn phải làm gì khi thực tế không khớp với bản kê khai: dừng lại, báo cáo cho phiên chính, không được ứng biến. Các ví dụ thực tế:
- Một module mà kiểm toán cho là an toàn hóa ra lại có một phụ thuộc trực tiếp ở nơi khác → phiên con đã gắn cờ nó và đơn vị đó bị hạ xuống một đợt sau với ghi chú về sự rối rắm.
- Một vòng kiểm toán thứ hai đã đảo ngược các phán quyết của vòng đầu tiên trên năm khu vực lớn → các sự đảo ngược được ghi vào bản kê khai dưới dạng ghi đè rõ ràng thay vì được giải quyết tùy cơ ứng biến bởi bất kỳ phiên nào gặp chúng.
Phiên chính đã hấp thụ những bất ngờ này vào kế hoạch. Các worker riêng lẻ không bao giờ đưa ra quyết định về phạm vi.
7. Để lại khu cắm trại sạch hơn: dạy cho hệ thống những gì đã thay đổi
Đợt 7 có thể là giai đoạn bị đánh giá thấp nhất. Sau khi thay đổi được triển khai, các phiên đã viết lại AGENTS.md, kỹ năng kho lưu trữ và cơ sở kiến thức agent của chúng tôi để mô tả kiến trúc mới — để mọi phiên agent trong tương lai bắt đầu từ sự thật, không phải từ các hướng dẫn lỗi thời. Nếu kỹ thuật của bạn được điều khiển bởi agent, thì tài liệu của bạn là cơ sở hạ tầng chịu tải.
Chi phí là bao nhiêu
Mọi phiên trong chương trình đều được gắn thẻ, vì vậy sổ cái là hoàn chỉnh: một phiên chính và ba mươi chín phiên con, tất cả đều trên Devin's Ultra Agent, từ chiều Thứ Sáu đến sáng Thứ Hai. Đây là các chi phí thực tế được đo từ bảng điều khiển sử dụng của chúng tôi.
Giai đoạn
Số phiên
Chi phí
Bộ điều phối chính (nhiều ngày)
1
$115.26
Kiểm toán Giai đoạn 0 (hai vòng) + tổng hợp bản kê khai
12
$85.56
Đợt 1
4
$37.55
Đợt 2 (phẫu thuật rối rắm)
4
$299.34
Cổng hồi quy Đợt 2–4 + sửa lỗi
4
$244.69
Đợt 3–4
5
$130.84
Đợt 5 (sản xuất) + kiểm toán sao lưu
2
$15.20
Đợt 6 (di chuyển lược đồ)
3
$118.83
Đợt 7 (phụ thuộc, tài liệu, kiến thức) + cổng cuối cùng
4
$96.64
Sửa lỗi cơ sở hạ tầng
1
$11.47
Tổng cộng
40
$1,155.38
Ba điều nổi bật trong bảng phân tích.
- Toàn bộ giai đoạn kiểm toán mười hai phiên đã tạo ra bản kê khai có chi phí dưới $90 — khoản bảo hiểm rẻ nhất mà chúng tôi từng mua.
- Các khoản mục đắt nhất nằm chính xác ở nơi có những suy nghĩ khó khăn: phẫu thuật rối rắm ($299) và các cổng hồi quy ($245) đã giữ cho mọi thứ trung thực.
- Bước có rủi ro cao nhất — thay đổi dữ liệu sản xuất — chỉ tốn $15, bởi vì vào thời điểm nó chạy, tất cả rủi ro đã được loại bỏ khỏi nó.
Lưu ý: Toàn bộ dự án này có thể rẻ hơn nhiều nếu Devin cho phép tôi chọn một mô hình khác cho các sub-agent. Phần lớn công việc code có thể đã được hoàn thành thành công với gpt 5.5 hoặc opus 4.8. Sẽ rất đơn giản để hướng dẫn Fable chọn mô hình phù hợp để phù hợp với nhiệm vụ của sub-agent.
Tuy nhiên, ngay cả khi không có điều đó: $1K là cực kỳ rẻ cho công việc chúng tôi đã hoàn thành - và tốc độ mà nó được thực hiện và xác minh - thật tuyệt vời.
https://x.com/ryancarson/status/2072694425365426344
Bài học rút ra
Điểm nhấn không phải là AI đã viết rất nhiều code — các agent thực thi các thay đổi được xác định rõ ràng giờ đây là điều cơ bản.
Điểm nhấn là bản thân việc quản lý chương trình đã được ủy quyền: phân rã, sắp xếp thứ tự, song song hóa, kiểm soát cổng và leo thang đều chạy bên trong bộ điều phối, và vai trò của con người được nén lại chính xác thành những quyết định yêu cầu chủ sở hữu.
Nếu bạn định thử điều này, hãy đánh cắp các mẫu, không phải công cụ:
- Kiểm toán trước; đóng băng các phát hiện trong một bản kê khai mà không worker nào có thể tranh luận lại.
- Sắp xếp các đợt theo rủi ro; các bước không thể đảo ngược ở cuối cùng.
- Cung cấp cho các worker song song các ranh giới tệp rời rạc rõ ràng.
- Kiểm soát mọi đợt bằng một bộ kiểm thử hồi quy thực sự và các bản sao lưu thực sự.
- Yêu cầu các bản kiểm kê được đề xuất trước khi thực hiện các thay đổi phá hủy; phê duyệt danh sách, không phải ý tưởng.
- Xác định đường dẫn leo thang trước khi những bất ngờ đến.
- Cập nhật tài liệu và kiến thức agent của bạn như một phần của dự án, không phải sau đó.
Chúc bạn điều phối vui vẻ! :)





