Bên trong nền tảng
Cách một AI agent học một kỹ năng mới - và tự dọn dẹp sau đó
Một agent chỉ nhớ dữ kiện thì lần nào cũng phải tự suy ra cách làm từ đầu. Agent của Olano viết cách làm ra. Bài này nói về phần kỹ thuật phía sau: công việc lặp lại trở thành một quy trình viết sẵn có thể dùng lại bằng cách nào, agent cải tiến một kỹ năng không do nó viết mà không một lần ghi đè ra sao, một bản sao đã học sống sót qua ngày bản gốc được cập nhật từ thượng nguồn thế nào - và vì sao không phần nào trong đó có thể âm thầm làm tệ đi chính hệ thống mà nó phải cải thiện.
Trí nhớ nói điều gì là đúng. Kỹ năng nói công việc được làm thế nào.
Phần lớn các cuộc trò chuyện về trí nhớ AI dừng lại ở dữ kiện, và dữ kiện đáng được giữ: giá của bạn, quy tắc chuyển cấp của bạn, khách nào là khách khó. Toàn bộ tầng đó là chủ đề của Agent AI ghi nhớ như thế nào. Nó thực sự hữu ích, mà vẫn không phải là năng lực.
Năng lực là chuyện quy trình. Báo cáo thứ Hai được dựng theo một thứ tự nhất định, từ những nguồn nhất định, kèm những lưu ý nhất định. Yêu cầu hoàn tiền được đối chiếu với ba thứ trước khi có ai trả lời. Buổi rà soát nhà cung cấp mỗi quý luôn lấy đúng sáu con số ấy. Một agent nắm dữ kiện hoàn hảo mà không có quy trình sẽ làm mỗi việc đó khác đi một chút mỗi lần, và chính độ dao động ấy là điều đội của bạn nhận ra.
Vì vậy agent của Olano giữ một loại hiện vật thứ hai bên cạnh trí nhớ: kỹ năng. Một kỹ năng là một thư mục nhỏ chứa tệp SKILL.md - một cái tên, một dòng mô tả, một điều kiện khởi phát cho biết khi nào nên dùng, và các bước có số thứ tự. Có kỹ năng đi kèm nền tảng. Có kỹ năng đến từ một gói kỹ năng hoặc một sàn. Có kỹ năng bạn tự viết. Và có kỹ năng agent tự viết cho chính nó, từ công việc nó đã thực sự làm.
Bài này nói về loại cuối cùng đó.
Một kỹ năng đã học đến từ đâu
Mỗi lượt agent nói đều được ghi thêm vào một bản ghi. Một lượt xử lý nền đọc các bản ghi đó theo nhịp - mỗi giờ ở mức đặt tích cực nhất, mỗi bốn giờ ở mức thư giãn nhất - và nó chỉ đọc phần chưa từng đọc, theo dấu bằng vị trí byte trên từng bản ghi. Không có gì bị phân tích lại, và không có gì bị bỏ sót vì tệp đã dài thêm giữa hai lần chạy.
Từ đó trở đi, lượt xử lý này được làm cho khó khởi phát một cách có chủ ý:
- Dưới bốn lượt mới thì nó không làm gì cả. Vị trí đọc vẫn được chốt, để những lượt đó không dồn lại cho một lần chạy sau suy diễn quá mức.
- Nó chạy ở tầng suy luận sâu, hoặc không chạy. Không có mô hình dự phòng giá rẻ. Mỗi agent có hạn mức mỗi ngày cho các lần chạy sâu - khoảng sáu, mười hai, hoặc hai mươi bốn tùy mức nhịp đặt sẵn - và khi hạn mức hoặc ngân sách chi tiêu đã cạn, chu kỳ đó bị bỏ qua và thử lại lần sau, vị trí đọc để nguyên chưa chốt. Phân tích kém còn tệ hơn không phân tích: nó sinh ra những quy trình tự tin mà sai.
- Nó lui lại khi trí nhớ đang được viết lại. Lượt hợp nhất trí nhớ giữ một khóa; bên chưng cất thấy khóa thì lùi ra, thay vì ghi thêm vào một tệp đang được viết lại toàn bộ.
Khi nó thực sự chạy, dữ kiện vào trí nhớ trước. Sau đó, nếu việc học kỹ năng đang bật, cũng những lượt ấy đi tiếp vào lượt xử lý thứ hai.
Bên trinh sát đọc thư viện trước khi đọc bản ghi
Đây chính là phần khiến thư viện đã học không biến thành bãi rác. Bên trinh sát kỹ năng không được đưa một cuộc trò chuyện rồi hỏi "bạn đã học được gì?". Nó được đưa một cuộc trò chuyện kèm một bản kê mọi kỹ năng agent đã có - kể cả kỹ năng do hệ thống quản lý và kỹ năng của bên thứ ba, nằm ngoài không gian làm việc của agent và công cụ tệp của nó tự mình không thấy được - rồi được hỏi còn thiếu gì, nếu có.
Mỗi ứng viên nó trả về đều mang một hành động, và hai trong ba hành động không sinh ra kỹ năng mới nào:
- skip - năng lực đó đã có. Đây là kết quả thường gặp nhất, và đó là một thành công.
- update - một kỹ năng có sẵn gần như đã bao phủ và nên được làm sắc hơn. Ứng viên chỉ rõ mục tiêu.
- create - thực sự mới. Chỉ khi đó một kỹ năng mới được viết ra.
Một kỹ năng mới sau đó đi qua một lượt kiểm thứ hai: quét xem có tên gần trùng không, dừng lại nếu có, và viết ra một SKILL.md có cấu trúc gọn gàng với frontmatter đúng. Nếu lượt kiểm đó không thể hoàn tất, hệ thống ghi thẳng ứng viên ra thay vì để mất.
Cải tiến một kỹ năng không do nó viết
Cải tiến mới là trường hợp đáng nói, vì cách làm hiển nhiên nhất lại là cách sai.
Kỹ năng bạn cài không phải một tài liệu đơn lẻ. Nó có thể là một cẩm nang nhiều tệp: một SKILL.md cùng các script, bảng tra, biểu mẫu, mẫu tài liệu. Và quyền sở hữu nằm ở thượng nguồn - khi gói mà nó đến từ đó được cập nhật, cả thư mục ấy bị thay trọn. Nên một agent "cải tiến" kỹ năng như vậy bằng cách viết lại tại chỗ đã làm sai hai chuyện cùng lúc: nó ép một cẩm nang thành một bản tóm tắt, và nó đặt phần cải tiến của mình đúng vào đường đi của lần cập nhật kế tiếp, lần cập nhật sẽ âm thầm xóa nó.
Olano rẽ nhánh thay vì vậy. Lần đầu một agent cải tiến một kỹ năng không thuộc về nó:
- Toàn bộ thư mục được sao vào thư viện đã học của agent, từng byte một, các tham chiếu đường dẫn bên trong được viết lại để bản sao chạy được từ vị trí mới.
- Bản sao dùng lại đúng tên của bản gốc, nên khi agent nạp kỹ năng, bản sao che bản gốc chứ không thay thế nó. Tệp gốc không một lần bị chạm tới trên đĩa.
- Bên cạnh đó một bản ghi xuất xứ được viết ra: dấu vân tay từng tệp của nguồn tại thời điểm rẽ nhánh, dấu vân tay từng tệp của bản sao tại cùng thời điểm, và cấu trúc mục của tệp SKILL.md gốc.
- Một ảnh chụp nguyên vẹn của trạng thái ban đầu được giữ riêng, để về sau làm nền hợp nhất.
Mọi cải tiến sau đó đều áp vào bản sao, theo cách thêm vào. Từ đây sinh ra hai tính chất mà thiết kế viết-lại-tại-chỗ không thể có: "cải tiến này có làm mất gì không?" trở thành một câu hỏi kiểm chứng được so với một mốc đã ghi lại, chứ không phải một phép so sánh mờ giữa hai tài liệu không liên quan, và "bản gốc ở thượng nguồn có thay đổi không?" thì mãi mãi trả lời được.
Cửa bảo toàn
Kiểu hỏng mà ai cũng lo ở các hệ thống tự sửa mình là sự thoái hóa từ từ và im lặng: mỗi lượt ngắn hơn một chút, nhạt hơn một chút, cho đến khi thứ từng chạy tốt chỉ còn là một đoạn nói cho có. Hứa rằng điều đó không xảy ra không phải là câu trả lời của kỹ thuật.
Nên mỗi lần nạp kỹ năng, bản sao đã học được đối chiếu với chính trạng thái ban đầu đã ghi lại của nó. Nó không đạt nếu:
- một tệp từng có ở thời điểm rẽ nhánh giờ không còn;
- một tệp văn bản co lại dưới một nửa kích cỡ ban đầu (tệp dưới khoảng nửa kilobyte được miễn, vì tệp nhỏ đổi kích cỡ nhiều là chuyện hợp lý);
- tệp SKILL.md mất hơn một phần ba số tiêu đề mục của bản gốc.
Bản sao không đạt sẽ bị cách ly - nó thôi che, và bản gốc phục vụ trở lại. Agent mất một cải tiến; nó không mất một kỹ năng đang chạy được. Và cửa này cố ý chỉ áp cho các bản sao do máy viết: một kỹ năng đã học do người viết tay thì không bao giờ bị cách ly, vì một sự ghi đè có chủ ý phải được giữ quyền quyết định, dù nó ngắn hơn.
Khi bản gốc thay đổi bên dưới
Rồi sẽ đến lúc kỹ năng ở thượng nguồn được cập nhật - gói làm mới, sàn cập nhật, hoặc một lần sửa của đội bạn. Giờ có hai nhánh đều đã dịch chuyển, và bản ghi xuất xứ khiến một phép hợp nhất ba chiều thực sự trở nên khả thi thay vì phải đoán. Việc giải quyết diễn ra theo từng tệp, và ưu tiên cách tất định trước: chỉ hỏi mô hình ở nơi không có câu trả lời tất định.
| Bản gốc | Bản sao đã học | Điều xảy ra |
|---|---|---|
| Không đổi | Bất kể thế nào | Giữ bản sao đã học. Không có gì phải làm. |
| Đã đổi | Chưa chạm tới | Lấy bản mới từ thượng nguồn, viết lại các tham chiếu đường dẫn bên trong, và đóng lại dấu xuất xứ bằng dấu vân tay nguồn mới. |
| Đã xóa | Chưa chạm tới | Xóa khỏi bản sao đã học luôn. Thượng nguồn bỏ nó vì một lý do, và ở đây không có gì phản đối. |
| Đã xóa | Đã đổi | Giữ bản sao đã học và kèm một ghi chú xung đột. Cần có người xem việc này; trong lúc đó không có gì bị bỏ đi. |
| Đã đổi | Đã đổi - văn bản | Hợp nhất ba chiều so với nền đã ghi lại. Hợp nhất sạch thì áp dụng. Xung đột thật thì giữ bản sao đã học và chuyển cho lượt xử lý thư viện để dung hòa về mặt nghĩa. |
| Đã đổi | Đã đổi - script hoặc tệp nhị phân | Giữ bản sao đã học và đánh dấu nó. Mã không bao giờ được hợp nhất tự động: một script hỏng âm thầm còn tệ hơn một script cũ. |
Sau đó các dấu vân tay và ảnh chụp nền được cập nhật sang trạng thái đã hợp nhất. Chính điều đó làm vòng lặp hội tụ: cùng một sai lệch không bị báo lại, và cửa bảo toàn tiếp tục làm việc so với mốc mới chứ không phải một mốc cũ kỹ. Bản sao hiện không qua cửa thì bị loại hẳn khỏi việc hợp nhất - hợp nhất lại một bản sao đã thoái hóa là tẩy trắng để nó quay lại phục vụ.
Một lượt cho cả thư viện
Kiểm từng kỹ năng một không giống với giữ cho cả thư viện mạch lạc. Vì vậy một lượt xử lý riêng, theo lịch riêng của nó, đọc mọi kỹ năng agent có và xử lý cả bộ như một đơn vị công việc: hợp các bản trùng và gần trùng thành một bản chuẩn với tên tốt nhất, điều kiện khởi phát rõ nhất và hợp của các bước; xóa những thư mục đã bị hợp đi; hợp lại mọi bản sao mà bản gốc đã trôi; và cải tiến những gì còn lại.
Ranh giới này được cưỡng chế, không phải khuyến nghị: với lượt này, bản gốc và các kỹ năng do hệ thống quản lý là chỉ đọc. Nó chỉ được sửa, hợp và xóa bên trong thư viện đã học. Trước khi bắt đầu, mọi tệp nó có thể chạm tới đều được chụp ảnh, và khi xong nó báo lại đã đổi những gì kèm một nút hoàn tác duy nhất.
Cách làm tương tự cho chính không gian làm việc
Cấu hình của chính agent cũng là văn bản, và văn bản viết dần trong nhiều tháng dồn lại theo cùng một kiểu: cùng một chỉ dẫn được diễn đạt ba cách ở ba chỗ, một sở thích ghi vào tệp sai, một ghi chú lặp trong mười một bản nhật ký ngày liên tiếp, và đôi khi hai chỉ dẫn âm thầm mâu thuẫn nhau.
Một lượt hợp nhất không gian làm việc lo việc đó. Nó đọc các tệp danh tính, hành xử, chỉ dẫn và trí nhớ dài hạn của agent, cộng các bản nhật ký ngày của hai tuần gần nhất, rồi viết lại chúng tại chỗ: hợp các bản trùng đã diễn đạt lại, bỏ mâu thuẫn, gom nội dung liên quan dưới những tiêu đề rõ ràng, và chuyển nội dung về đúng tệp nó thuộc về. Nhật ký ngày được lọc trùng mạnh tay nhất, vì đó là nơi sự lặp lại dồn nhanh nhất.
Chỉ dẫn mà nó làm theo dài đúng một câu, và câu đó gánh toàn bộ phần nặng: giữ giọng của agent và từng chỉ dẫn riêng biệt; hợp lại thì được, xóa thì không bao giờ. Cũng như lượt xử lý thư viện, mọi tệp đích được chụp ảnh trước, và kết quả được báo lại kèm hoàn tác một cú nhấp.
Hai nguyên tắc, và khác biệt giữa chúng là quan trọng
Không phải mọi thứ trong vòng lặp này được quản như nhau, và cách chia đó là có chủ ý, không phải cho tiện.
- Thay đổi điều agent được yêu cầu làm thì chỉ dừng ở đề xuất. The pass that reviews recent work and concludes an agent's instructions should be sharper does not edit those instructions. It writes grounded proposals into a review queue, and they wait - even with Fully Autonomous on, which otherwise lets new skills, memory and tidy-ups apply on their own. Nothing rewrites an agent's instructions because a background job thought it should, unless a deployment owner has explicitly lifted that hold for the agent.
- Việc dọn dẹp không mất mát thì áp dụng luôn, kèm ảnh chụp và hoàn tác. Lọc trùng trí nhớ, hợp hai kỹ năng đã học giống nhau, gom một ghi chú bị lặp - những việc này không đổi điều agent làm, chỉ đổi mức gọn gàng của những gì được ghi. Đòi một cú nhấp của con người cho từng việc sẽ huấn luyện đội của bạn phê duyệt mà không đọc, và đó là kết quả tệ nhất có thể cho cái hàng chờ thực sự quan trọng. Nên chúng áp dụng trực tiếp, sau một ảnh chụp, và mỗi lần chạy đều báo lại đã đổi những gì kèm hoàn tác.
Tất cả đều có thể tắt. Mỗi hành vi - chưng cất, học kỹ năng, chăm thư viện, hợp nhất không gian làm việc, hợp nhất trí nhớ - là một công tắc riêng, đặt được cho cả bản triển khai và ghi đè được theo từng agent theo cả hai chiều, nên "tắt ở mọi nơi trừ agent này" là một cấu hình thật. Trên đó là một công tắc tổng, cùng một lựa chọn riêng giữa chạy theo lịch và chỉ chạy khi có người yêu cầu. Các mức nhịp đặt sẵn - thư giãn, cân bằng, tích cực - dịch chuyển cả lịch và hạn mức suy luận sâu mỗi ngày cùng nhau, và tất cả đều nằm dưới cùng những mức kiểm soát chi tiêu chặt chẽ đang chi phối mọi thứ khác trong bản triển khai.
Một vòng lặp đầy đủ trông như thế nào
Sự tích lũy diễn ra chậm và cụ thể. Bản báo cáo mà agent vận hành của bạn dựng bằng tay ba tuần liền, sang tuần thứ tư đã tồn tại dưới dạng một quy trình viết sẵn. Kỹ năng trong gói vốn gần đúng với ngành của bạn thì mang theo phần bạn sửa, mà vẫn hấp thụ lần cập nhật kế tiếp của nhà cung cấp thay vì bị nó san bằng. Tệp chỉ dẫn từng phình ra bốn trang hướng dẫn chồng chéo giờ là hai trang không chồng chéo, và từng câu chỉ có trong bản bạn đã xóa vẫn còn trong bản bạn giữ.
Đây không phải là gì
Không có trọng số mô hình nào được huấn luyện, tinh chỉnh hay điều chỉnh. Toàn bộ vòng lặp này hoạt động ở một tầng trên mô hình, trên những hiện vật viết bằng ngôn ngữ thường bên trong bản triển khai tách biệt của chính bạn: kỹ năng, mục trí nhớ, đề xuất chỉ dẫn. Chúng đều là tệp. Đội của bạn có thể đọc, sửa tay, phê duyệt, hoàn nguyên, và soát lại ai đổi gì vào lúc nào.
Đây không phải một hạn chế mà chúng tôi đang đi đường vòng. Chính nó là lý do vòng lặp này là thứ bạn quản được thay vì thứ bạn phải tin - và cũng chính vì lý do đó, mô hình bên dưới có thể thay mà agent không mất những gì nó đã học.
Đọc thêm
Phần còn lại của loạt bài Bên trong nền tảng, và các chương sổ tay đi sâu hơn.
Bên trong Olano Cortex
Cỗ máy cải tiến lớn hơn mà vòng lặp này thuộc về: năm chu kỳ, một nhịp do bạn định, và sự phê duyệt của bạn cho mỗi lần tự sửa.
Agent AI ghi nhớ như thế nào
Nửa còn lại của câu chuyện: trí nhớ hội thoại, trí nhớ dài hạn đã chưng cất, và tài liệu của bạn làm căn cứ.
Cortex, trong sổ tay
Chính các thiết lập - công tắc tính năng, mức nhịp đặt sẵn, ghi đè theo từng agent, và hàng chờ duyệt.
Tự động hóa yêu cầu kèm phê duyệt của người
Mức tin cậy 0-4 và các cửa theo nhóm - kiến trúc phê duyệt mà hàng chờ đề xuất cắm vào.
Câu hỏi thường gặp
Kỹ năng là gì, và nó khác trí nhớ ở đâu?
Trí nhớ giữ điều gì là đúng về doanh nghiệp của bạn - giá, người, quyết định, sở thích. Kỹ năng giữ cách một việc được làm: một quy trình viết ngắn, có tên, có mô tả, có điều kiện khởi phát cho biết khi nào nên dùng, và các bước có số thứ tự. Trí nhớ khiến agent không hỏi bạn cùng một câu hai lần. Kỹ năng khiến nó không phát minh lại cùng một quy trình hai lần, mỗi lần một khác.
Agent có viết lại những kỹ năng bạn đã đưa cho nó không?
Không. Kỹ năng đến từ bạn, từ một gói kỹ năng, hay từ một sàn đều là bản gốc chỉ đọc và không bao giờ bị sửa hay xóa. Để cải tiến một kỹ năng, agent sao cả thư mục kỹ năng vào thư viện đã học của nó rồi sửa bản sao; bản sao dùng lại tên của bản gốc nên nó được ưu tiên khi agent nạp kỹ năng. Tệp gốc vẫn nguyên trên đĩa, và chính điều đó khiến một lần cập nhật từ thượng nguồn về sau có thể hợp nhất được chứ không bị mất.
Điều gì ngăn một kỹ năng đã học thoái hóa thành một bản tóm tắt tệ hơn?
Một cửa bảo toàn chạy khi kỹ năng được nạp. Bản sao đã học được đối chiếu với chính trạng thái ban đầu đã ghi lại của nó: nếu một tệp văn bản co lại dưới một nửa kích cỡ ban đầu, nếu hơn một phần ba số tiêu đề mục ban đầu đã mất, hoặc nếu một tệp từng có lúc đầu giờ không còn, bản sao đó bị cách ly và bản gốc phục vụ thay. Đây là một phép kiểm về cấu trúc, không phải một lời hứa - và các bản sao do người viết tay được miễn, vì sự ghi đè có chủ ý vẫn giữ quyền quyết định.
Chuyện gì xảy ra khi kỹ năng gốc được cập nhật về sau?
Một phép hợp nhất ba chiều, theo từng tệp, so với ảnh chụp trạng thái ở thời điểm rẽ nhánh. Những tệp thượng nguồn đã đổi mà bản sao đã học chưa từng chạm tới thì lấy từ thượng nguồn. Những tệp bản sao đã học đổi mà thượng nguồn không đổi thì giữ lại. Ở chỗ cả hai đều đổi, văn bản được hợp so với nền chung, còn xung đột thật thì chuyển cho lượt xử lý thư viện dung hòa. Script và tệp nhị phân không bao giờ hợp nhất tự động: bản sao đã học được giữ và đánh dấu, vì một script hỏng âm thầm còn tệ hơn một script cũ.
Có gì bị thay đổi mà không hỏi tôi không?
Tùy vào thứ đang được thay đổi, và cách chia đó là có chủ ý. Bất cứ điều gì làm thay đổi việc agent được yêu cầu làm - chỉ dẫn của nó, hành xử của nó - đều được viết thành đề xuất vào một hàng chờ duyệt và không bao giờ tự áp dụng. Việc dọn dẹp không mất mát - lọc trùng trí nhớ, hợp các kỹ năng đã học bị trùng, gom các ghi chú lặp - thì có thể áp dụng trực tiếp, nhưng chỉ sau một ảnh chụp, và mỗi lần chạy như vậy đều báo lại đã đổi những gì kèm hoàn tác một cú nhấp. Bạn cũng có thể tắt riêng từng hành vi này, cho cả bản triển khai hoặc chỉ cho một agent.
Đây có phải là huấn luyện lại một mô hình AI trên dữ liệu của tôi không?
Không. Không có trọng số mô hình nào được huấn luyện hay tinh chỉnh. Mọi thứ vòng lặp này tạo ra là một tệp markdown thường bên trong bản triển khai của chính bạn: một kỹ năng, một mục trí nhớ, một đề xuất đổi chỉ dẫn. Đội của bạn có thể đọc, so sánh, sửa tay, phê duyệt và hoàn nguyên chúng. Chính tính đọc được đó mới là điều quan trọng - nó khiến một vòng lặp cải tiến trở thành thứ bạn quản được thay vì thứ bạn phải tin.
Triển khai một hệ thống ghi lại những gì nó học được
Sự tích lũy chỉ có ý nghĩa nếu công việc bên dưới là thật. Hãy đặt một buổi tư vấn - chúng tôi phác ra luồng công việc, báo giá, và chỉ bắt tay làm sau khi bạn đồng ý.