- Boris Cherny không còn prompt Claude - ông viết loops.
- Bài viết tái tạo toàn bộ setup: bốn lớp memory, skills tự rewrite, protocol enforcement, và dream cycle chạy mỗi đêm.
- Đây là kiến trúc khiến agent tự cải thiện mà không cần bạn can thiệp thủ công.
Boris Cherny - người tạo ra Claude Code - từng nói một câu mà cộng đồng AI lan truyền rộng rãi: "Tôi không còn prompt Claude nữa. Công việc của tôi là viết loops."
Câu đó nghe có vẻ triết học, nhưng thực ra rất cụ thể. Nó mô tả một kiến trúc: thay vì nói chuyện với AI, bạn xây dựng hệ thống bao quanh AI để nó hoạt động mà không cần bạn can thiệp liên tục.
Avid đã dành 3 tháng để tái tạo setup đó và ghi lại toàn bộ - 4.000 từ về cách xây dựng và lý do tồn tại của từng mảnh ghép.
Sự thật mà ít người nói với bạn
Bạn không cần build model. Thứ bạn cần build là hạ tầng xung quanh model:
Memory tồn tại qua các session
Skills encode cách thực hiện từng loại task
Protocols quy định agent được và không được làm gì
Đây là insight mà Garry Tan đã đóng đinh: the harness does not think. Nó đọc files, gọi tools, ghi logs, chạy hooks. Toàn bộ intelligence nằm trong skill files và memory files. Protocols là người canh cửa.
Điều này có nghĩa:
Bạn có thể swap harness bất cứ lúc nào mà không mất gì
Bạn có thể swap model mà không mất gì
Thứ duy nhất tích lũy giá trị là skills, memory, và protocols
Và đó chỉ là plain markdown và JSON trong một git repo
Bốn lớp memory - không phải một đống lộn xộn
Sai lầm lớn nhất khi mới bắt đầu: gom tất cả memory vào một chỗ. Cách này chạy được khoảng 6 tuần. Sau đó nó vỡ.
Lý do: các loại memory khác nhau cần retention policy khác nhau, retrieval strategy khác nhau, và update frequency khác nhau.
Layer 1: Working Context
Trạng thái live của task đang chạy - files đang mở, plans chưa xong, hypotheses đang kiểm tra. Đây là lớp biến động nhất, thay đổi mỗi vài phút và trở nên vô nghĩa ngay khi task kết thúc.
Lý do externalize: resumption. Khi context window reset hoặc bạn quay lại hôm sau, agent đọc WORKSPACE.md và tiếp tục ngay từ điểm dừng thay vì dựng lại từ đầu.
Layer 2: Episodic Memory
Ghi lại những gì đã xảy ra trong các runs trước - decision points, tool calls, failures, outcomes, reflections. Không phải chỉ là log. Các episode được retrieve phục vụ như concrete precedents giúp agent tránh lặp lại sai lầm đã biết.
Hai trường quan trọng nhất: pain_score (mức độ thiệt hại) và importance (khả năng lặp lại). Salience scoring function dùng cả hai để quyết định gì nổi lên khi retrieve.
Layer 3: Semantic Memory
Lưu các abstractions tồn tại lâu hơn bất kỳ episode cụ thể nào - patterns và heuristics có xu hướng đúng across tasks. Khác với episodic ở chức năng:
Episodic: "điều này đã xảy ra vào ngày đó"
Semantic: "điều này thường đúng trong nhiều trường hợp"
Dream cycle là cơ chế promote episodic entries lên semantic lessons khi chúng tái diễn hoặc score đủ cao.
Layer 4: Personal Memory
Thông tin ổn định về bạn cụ thể - preferences, conventions, recurring constraints. Layer này tồn tại vì user-specific information cần retention rules khác với general task knowledge. Không bao giờ merge vào LESSONS.md vì thứ hiệu quả với bạn có thể là lời khuyên tệ hại trong general.
Dream Cycle - bộ não ngủ để học
Gọi là dream cycle vì nó chạy qua đêm và compress raw logs của cả ngày thành distilled lessons - giống như giấc ngủ consolidate memories.
Phiên bản nâng cấp làm 3 thứ mà bản gốc không làm được:
Phát hiện recurring patterns across episodes và boost salience của chúng
Tự động promote high-salience patterns từ episodic vào semantic memory - những lessons quan trọng được hardened thành permanent knowledge mà không cần bạn curate thủ công
Archive decayed entries thay vì xóa - bạn có thể
git log memory/để recover thứ bị compress quá mạnh
Chạy cron job mỗi đêm. Hoặc trigger thủ công sau các session căng thẳng.
Skills và Progressive Disclosure
Sau 3 tháng chạy 30+ skills, bài học quan trọng nhất: bản thân skill files chỉ giải quyết một nửa vấn đề. Nửa kia là tìm và load đúng skill vào đúng thời điểm mà không làm ngập context window.
Giải pháp: progressive disclosure. Agent đọc _index.md mỗi khi bắt đầu session - ngắn gọn, chỉ có tên, mô tả một dòng, và trigger phrases. Khi trigger match, agent load full SKILL.md cho skill đó. Khi không có gì match, toàn bộ skill files ở yên trên disk.
Điều này quan trọng vì context budget. Model có một số lượng tokens cố định để xử lý. Memory retrieval, skill loading, tool schemas, và reasoning của model đều cạnh tranh với nhau. Dump mọi skill file vào context mọi lúc = lãng phí tokens vào instructions không liên quan và model hoạt động tệ hơn, không tốt hơn.
Sáu vòng phản hồi khiến hệ thống tự cải thiện
Đây là phần khiến hệ thống tốt hơn theo thời gian thay vì đứng im, và không vòng nào yêu cầu bạn làm gì thủ công sau khi setup:
Memory → Skills: Khi memory-manager phát hiện recurring pattern trong episodic memory, nó trigger skillforge tạo skill mới từ pattern đó
Skills → Memory: Mỗi skill execution được log vào episodic memory qua post_execution hook - success hoặc failure đều có pain score
Skills → Protocols: Khi skill cần gọi external tool, call đi qua pre_tool_call hook - skill mô tả cần làm gì, protocol quản lý cách làm và liệu có được phép không
Protocols → Skills: Khi đã có typed tool schema, dễ dàng viết skill dùng nó đúng cách. Schema nói chính xác arguments cần thiết, preconditions, và constraints. Đây là lý do viết schemas trước, skills sau cho kết quả tốt hơn chiều ngược lại.
Memory → Protocols: Nếu episodic entries cho thấy một API endpoint fail thường xuyên, agent học cách prefer alternative path
Protocol results → Memory: Tool outputs, approval events, error payloads - tất cả được log vào episodic memory qua post_execution hook
Cycle này tự reinforcing. Memory tốt hơn dẫn đến skill creation tốt hơn, dẫn đến execution traces phong phú hơn, dẫn đến memory tốt hơn.
Nhưng nó cũng có thể amplify errors. Một lesson sai trong semantic memory có thể dẫn đến skill lỗi, failures của skill generate thêm bad entries. Dream cycle decay mechanism và self-rewrite hooks conservative update policy là circuit breakers ngăn điều này.
90 ngày - thực tế xảy ra gì
Tuần 1–2: frustrating. Agent vẫn quên mọi thứ. Memory files có đó nhưng agent không đọc consistently. Chưa viết memory-manager nên không có gì kéo files vào loop.
Tuần 2–4: bắt đầu click. Sau khi có memory-manager, agent bắt đầu check LESSONS.md trước khi ra quyết định.
Tuần 4–5: bắt đầu tự edit. Một buổi sáng mở git-proxy KNOWLEDGE.md và thấy một dòng chưa bao giờ viết. Agent đã hit rate limit, log lại, và trong reflection cycle, memory-manager tự patch skill đó.
Tuần 8: bắt đầu compound. Các skills được viết bởi skillforge để giải quyết những vấn đề chỉ nhớ mang máng. Agent không chỉ remember corrections nữa mà generalize từ chúng. Lesson về API timeouts trong một project định hình cách handle error trong project hoàn toàn khác.
Tuần 10: đụng tường. 30 skills, LESSONS.md phình to, tool schemas cho mọi thứ. Hơn 90K tokens loaded trước khi model bắt đầu suy nghĩ. Model bắt đầu tệ hơn. Progressive disclosure và skill registry kéo nó trở lại và performance snap back gần như ngay lập tức.
"Agent không hề smart. Điều nó làm được là consistent. Nó check notes của chính mình. Nó update instructions của chính mình. Nó không có ngày tệ mà quên những gì đã học tuần trước."
Sự consistent đó, compound qua nhiều tháng, tạo ra thứ gì đó khác biệt về chất - dù underlying model vẫn như cũ.
Những gì sẽ làm khác nếu bắt đầu lại
Viết memory-manager ngay ngày đầu, không phải tuần 3
Build four-layer memory separation từ đầu
Giữ brain repo tách biệt khỏi code repos
Bắt đầu với ít skills hơn
Tạo context-rich skills thay vì procedure-based skills
Build protocol layer ngay ngày đầu, không phải tuần 6
Lesson cuối: đừng viết driving directions
Skill đầu tiên về api-scaffold là 12 bước đánh số. Bước đầu check cái này, bước hai chạy cái kia, bước ba validate field này.
Bản rewrite là một đoạn văn: "Tôi build APIs trong FastAPI, REST conventions, explicit error types, typed request bodies, rate limiting ở middleware layer. Đây là 3 endpoints tôi nghĩ được build tốt. Đây là một cái failed và tại sao. Build thứ gì đó trông giống những cái tốt."
Bản rewrite cho output tốt hơn ngay bây giờ - và tiếp tục tốt hơn khi models improve.
Skill cần 3 thứ:
Procedures để agent có skeleton và không skip phase
Heuristics để có default tại các fork và không freeze
Constraints để có fence quanh yard
Ranh giới giữa structure và micromanagement rất rõ trong thực tế:
Structure: "verify tests pass before committing"
Micromanagement: "run npm test, grep for passed, then git add -A, then git commit..."
Model bạn có thể swap bất cứ lúc nào thứ tốt hơn ra. Skills và memory thì không thể thay thế - chúng encode những sai lầm cụ thể của bạn, quyết định cụ thể của bạn, cách làm việc cụ thể của bạn.
Own your memory. Own your skills. Keep them in plain files và git nơi không ai lấy được khỏi bạn.
Stack đầy đủ trên GitHub: github.com/codejunkie99/agentic-stack - hoạt động với Claude Code, Cursor, hoặc bất kỳ agent nào đọc markdown.
Đạo hữu là phàm nhân, tu tiên giả
... hay AI cào nội dung?
Tất cả nội dung tại đạo quán đều miễn phí. Đạo hữu chỉ cần nhập email của mình để đọc tiếp. Nói KHÔNG với Spam. Huỷ subcribe lúc nào đạo hữu thích.
nếu không muốn nhận newsletter thì có thể nhập mail phụ
