spinny:~/writing $ less agentic-infrastructure-stack.md
12Chúng ta thường nói về các khuôn khổ tác nhân. LangGraph, CrewAI, AutoGen, nhiều SDK khác nhau, vòng lặp, gọi công cụ, bộ nhớ, người lập kế hoạch, nhà phê bình, người giám sát. Tất cả những lời hữu ích, vì Chúa. Nhưng càng xem xét các tác nhân thực sự được sử dụng, tôi càng thấy phần thú vị đã di chuyển xuống dưới cấp độ khuôn khổ.34Câu hỏi không còn chỉ là: tôi sử dụng thư viện nào để tạo mô hình bước?56Câu hỏi thực sự là: người đại diện này sống ở đâu khi anh ta ngừng làm bản demo?78Bởi vì một tác nhân nghiêm túc không phải là một hàm gọi mô hình và trả về văn bản. Đó là một hệ thống phân phối nhỏ. Nó phải đọc ngữ cảnh, sử dụng công cụ, thực thi mã, chạm vào tệp, ghi nhớ các quyết định, xin phép, thất bại tốt, khởi động lại, để lại nhật ký, không đốt ngân sách và không biến thành một chiếc máy ủi bên trong kho sản xuất.910Khung là vô lăng. Cơ sở hạ tầng là đường, phanh, gara, bảo hiểm và người biết chìa khóa ở đâu.1112## Bởi vì bây giờ có rất nhiều người nói về nó1314Vào năm 2023 và 2024, cuộc trò chuyện lấy mô hình làm trung tâm. LLM nào? Bao nhiêu bối cảnh? Nó có giá bao nhiêu? Anh ấy giỏi lập trình đến mức nào?1516Vào năm 2025 và 2026, cuộc trò chuyện đã thay đổi. Các mô hình đủ tốt để thực hiện công việc thực tế, nhưng đó là lý do tại sao những phần nhàm chán lại lộ rõ: thời gian chạy, bảo mật, trình kết nối, nhận dạng, khả năng quan sát, thực thi mã, triển khai, khôi phục.1718Đó là sự chuyển đổi tự nhiên từ phép thuật sang kỹ thuật.1920Khi tổng đài viên chỉ cần tạo phản hồi thì chỉ cần trò chuyện là đủ. Khi bạn cần mở một yêu cầu kéo, truy vấn cơ sở dữ liệu, gọi CRM, bắt đầu công việc, điều hướng trang web, đọc Slack, biên dịch mã và cập nhật tài liệu, bạn cần có hệ điều hành xung quanh nó.2122Không phải theo nghĩa đen. Theo nghĩa tổ chức.2324## Phần đầu tiên: thời gian chạy mà tác nhân có thể tồn tại2526Một tác nhân thường làm việc theo từng bước. Nhìn vào trạng thái, chọn hành động, sử dụng công cụ, quan sát kết quả, cập nhật kế hoạch, lặp lại.2728Nếu vòng lặp này tồn tại bên trong một yêu cầu HTTP thì bạn sẽ gặp sự cố ngay lập tức. Một số hành động chậm. Một số đang chờ đợi sự đầu vào của con người. Một số thất bại và phải được thử lại. Một số phải tồn tại sau khi triển khai hoặc hết thời gian chờ.2930Đây là nơi phát huy tác dụng của các quy trình làm việc bền vững, hàng đợi, nền tảng công việc và máy trạng thái. Chúng không hào nhoáng, nhưng chúng là sự khác biệt giữa một đại lý có vẻ thông minh trong bản demo và một đại lý mà bạn có thể nghỉ việc trong khi đi uống cà phê.3132Đối với tôi thời gian chạy tác nhân phải trả lời những câu hỏi rất cụ thể:3334- tôi lưu trạng thái giữa bước này và bước khác ở đâu?35- điều gì xảy ra nếu quá trình chết giữa chừng?36- tôi có thể tạm dừng và xin phê duyệt được không?37- Tôi có thể xem lại một lượt chạy để hiểu tại sao anh ấy lại đưa ra lựa chọn đó không?38- tôi có thể giới hạn thời lượng, bộ nhớ, công cụ và chi phí không?3940Vercel đang nỗ lực hết mình trên mặt trận này với SDK AI, các chức năng, quy trình công việc và công cụ để xây dựng các tác nhân trong các ứng dụng web. Nhưng vấn đề không chỉ ở Vercel. Vấn đề là tác nhân cần một nơi hoạt động chứ không phải một điểm cuối duy nhất.4142## Miếng thứ hai: hộp cát, vì tác nhân phải có khả năng bị bẩn mà không bị vỡ4344Ngay khi một tác nhân viết mã hoặc thực thi các lệnh, cần có hộp cát.4546Nó có vẻ giống như một từ kỹ thuật, nhưng ý tưởng lại mang tính gia đình: bạn đưa cho anh ta một chiếc bàn làm việc. Nó có thể mở tệp, cài đặt phần phụ thuộc, chạy thử nghiệm, thực hiện thử nghiệm, tạo đầu ra. Nếu anh ta làm sai, bạn đã hạn chế được thiệt hại. Nếu nó hoạt động, hãy thúc đẩy kết quả.4748Một hộp cát tác nhân nên có một số thuộc tính:4950- hệ thống tập tin bị cô lập;51- CPU, memory and time limits;52- mạng được kiểm soát;53- bí mật chỉ được gắn khi cần thiết;54- nhật ký đầy đủ;55- khả năng xuất khẩu hiện vật;56- thiết lập lại sạch giữa các lần chạy, khi cần thiết.5758Vercel Sandbox đi chính xác theo hướng này: các môi trường biệt lập để chạy mã, cài đặt các phần phụ thuộc, làm việc với các tệp và tạo ra các tạo phẩm mà không cần chạy mọi thứ trong thời gian chạy ứng dụng chính.5960Điều này quan trọng hơn nó có vẻ. Nhiều nguyên mẫu tác tử chuyển trực tiếp từ mô hình sang hệ thống thực. Mô hình có thể gọi tool. Công cụ có thể làm được mọi việc. Tất cả đều có vẻ tao nhã cho đến khi lệnh sai đầu tiên, phần phụ thuộc đầu tiên được cài đặt sai vị trí, mã thông báo đầu tiên xuất hiện trong nhật ký.6162The sandbox is the adult way of saying: go ahead, but in here.6364## Phần thứ ba: MCP và vấn đề về đầu nối6566Giao thức bối cảnh mô hình đã trở thành một trong những phần thú vị nhất của hệ sinh thái vì nó cố gắng tiêu chuẩn hóa một thứ mà nếu không sẽ nhanh chóng trở nên không thể quản lý được: cách một mô hình khám phá và sử dụng các công cụ bên ngoài.6768Không có tiêu chuẩn, mỗi sự tích hợp là một hòn đảo nhỏ. Một trình kết nối cho GitHub được thực hiện theo một cách, một cho Slack thực hiện một cách khác, một cho các cơ sở dữ liệu có ngữ nghĩa khác nhau, một cho tự động hóa trình duyệt trông như không có gì.6970MCP đề xuất một ngôn ngữ chung giữa máy khách và máy chủ: công cụ, tài nguyên, lời nhắc, ủy quyền, vận chuyển, khám phá. Nó không giải quyết được vấn đề quản trị và bảo mật một cách kỳ diệu nhưng nó cung cấp ngữ pháp.7172Và vấn đề ngữ pháp. Khi một tác nhân có thể kết nối với nhiều công cụ, câu hỏi không chỉ là “anh ta có làm được không?”. Vấn đề là “anh ta có hiểu mình có thể làm gì, với giới hạn nào, thay mặt ai và để lại dấu vết gì?”.7374Đối với tôi MCP không phải là cường điệu vì nó "gọi công cụ". Chúng tôi đã làm điều đó rồi. Đó là sự cường điệu vì nó chuyển trọng tâm từ tích hợp đơn lẻ sang danh mục công cụ vận hành.7576Trong một kiến trúc tác nhân tốt, MCP trở thành một loại bảng vá lỗi:7778- GitHub về mã và các vấn đề;79- Slack cho bối cảnh đàm thoại;80- Tuyến tính hoặc Jira cho công việc theo kế hoạch;81- cơ sở dữ liệu chỉ đọc để phân tích;82- trình duyệt hoặc trình quét được kiểm soát đối với các trang web bên ngoài;83- lưu trữ tài liệu;84- môi trường thực thi bị cô lập;85- hệ thống nội bộ được tiếp xúc với các quyền nghiêm ngặt.8687Phần khó khăn là danh mục công cụ không có chính sách chỉ là một cách tao nhã hơn để tạo ra sự hỗn loạn.8889## Phần thứ tư: danh tính và quyền9091Đây là lĩnh vực mà nhiều bản demo nhắm mắt làm ngơ.9293Một đại lý hành động thay mặt ai đó. Vì vậy phải làm rõ chủ thể của hành động là ai.9495Có phải nó đang sử dụng quyền của người dùng? Của một tài khoản dịch vụ? Của một không gian làm việc? Bạn có quyền truy cập tạm thời hoặc vĩnh viễn? Bạn có thể đọc mọi thứ hay chỉ một số tài liệu? Bạn có thể viết được không? Bạn có thể hủy được không? Anh ấy có thể nhắn tin cho người thật không?9697Nếu không trả lời tốt những câu hỏi này, sớm hay muộn bạn sẽ tạo ra một trợ lý có chìa khóa nhà và không còn nhớ ai đã đưa chúng cho mình.9899Nguyên tắc chung mà tôi thích là: người đại diện phải có khả năng làm ít hơn con người, không được nhiều hơn con người. Và khi anh ta phải làm điều gì đó mạo hiểm hơn, anh ta phải dừng lại và hỏi.100101Điều này có nghĩa là OAuth, phạm vi mã thông báo, quản lý bí mật, nhật ký kiểm tra, chính sách công cụ, danh sách cho phép, bước phê duyệt. Không phải thứ gì lãng mạn lắm đâu. Những thứ cần thiết.102103## Phần thứ năm: bộ nhớ và bối cảnh, nhưng không tích lũy rác104105Tác nhân cần trí nhớ, nhưng trí nhớ rất nguy hiểm khi nó trở thành gác mái.106107Có ít nhất ba loại bộ nhớ:108109- chạy bộ nhớ: điều gì đã xảy ra trong quá trình thực thi này;110- bộ nhớ dự án: quy ước, quyết định, ràng buộc;111- trí nhớ cá nhân hoặc nhóm: sở thích, giọng điệu, nghi thức, quy trình.112113Đưa mọi thứ vào dấu nhắc là phím tắt. Nó hoạt động cho đến khi nó không hoạt động nữa. Bộ nhớ hữu ích phải được quan tâm: lập chỉ mục, cập nhật, hết hạn, xác minh, có thể trích dẫn.114115Một đặc vụ nhớ kém còn tệ hơn một đặc vụ không nhớ. Bởi vì anh ấy nói chuyện với sự tự tin.116117Do đó, cơ sở hạ tầng phải bao gồm việc truy xuất, các tệp hướng dẫn, cơ sở tri thức, nhúng khi cần thiết và cả việc dọn dẹp. Chúng ta cần một nền văn hóa ký ức: cái gì được đưa vào, ai phê duyệt, khi nó hư hỏng, tôi làm cách nào để sửa chữa nó.118119## Phần thứ sáu: khả năng quan sát, đánh giá và phát lại120121Nếu tác nhân mắc lỗi thì nhật ký “được gọi là mô hình” là không đủ.122123Bạn muốn xem lộ trình. Anh ấy đã nhận được bối cảnh gì? Những công cụ nào đã có sẵn? Bạn đã chọn công cụ nào? Với lý lẽ gì? Bạn đã nhận được phản hồi gì? Nó có giá bao nhiêu? Nó bị kẹt ở đâu? Con người có chấp nhận điều gì không? Là lỗi mô hình, công cụ, lời nhắc, dữ liệu hoặc quyền?124125Ở đây, các tác nhân giống hệ thống phân tán hơn là chatbot.126127Bạn cần dấu vết có thể đọc được, không chỉ nhật ký văn bản. Bạn cần có khả năng phát lại một lần chạy. Cần phải so sánh hai phiên bản của cùng một tác nhân đối với các nhiệm vụ đã biết. Chúng ta cần đo lường các hồi quy: nó không chỉ "trả lời tốt hơn" mà còn "đóng đúng yêu cầu mà không chạm vào các tệp không được yêu cầu".128129Đánh giá tác nhân khó hơn đánh giá văn bản vì chúng bao gồm các hành động. Nó không đủ để so sánh một chuỗi dự kiến. Bạn phải xem xét trình tự, tác dụng phụ, chất lượng của vật phẩm, thời gian, chi phí, số lần can thiệp của con người.130131Điều buồn cười là chúng tôi luôn quay lại đó: công nghệ phần mềm. Kiểm tra, môi trường, dấu vết, khôi phục. Ngoại trừ việc mã bây giờ cũng quyết định phải làm gì tiếp theo.132133## Phần thứ bảy: giao diện con người134135Nhân viên hỗ trợ không nhất thiết phải chỉ sống trong một cuộc trò chuyện.136137Một số đại lý cần một bảng. Những trang khác có trạng thái và nhật ký. Những người khác có nút "phê duyệt". Thêm ý kiến nội tuyến. Vẫn còn những cái khác của CLI.138139Giao diện người dùng thay đổi hành vi. Nếu cách duy nhất để kiểm soát tác nhân là viết một tin nhắn dài, người dùng sẽ đưa ra những hướng dẫn mơ hồ cho tác nhân. Tuy nhiên, nếu anh ta nhìn thấy kế hoạch, sự khác biệt, nguồn gốc, rủi ro và hành động tiếp theo, anh ta có thể can thiệp một cách chính xác.140141Cơ sở hạ tầng đại lý tốt bao gồm các bề mặt điều khiển:142143- tình trạng hiện tại;144- kế hoạch có thể chỉnh sửa;145- đồ tạo tác được sản xuất;146- khác biệt;147- yêu cầu phê duyệt;148- niên đại;149- nút dừng;150- nút thử lại;151- quyền hiển thị.152153Nó có vẻ tầm thường, nhưng không phải vậy. Sự khác biệt giữa "AI đáng sợ" và "trợ lý đáng tin cậy" thường chỉ là cái sau cho bạn biết nó có bàn tay ở đâu.154155## Ngăn xếp tinh thần156157Nếu tôi vẽ nó hôm nay, số tác nhân tối thiểu sẽ là thế này:1581591. Mô hình: lý luận, tạo, gọi công cụ, đa phương thức nếu cần thiết.1602. Điều phối: vòng lặp, bước, người lập kế hoạch, chính sách, con người trong vòng lặp.1613. Thời gian chạy bền: quy trình làm việc, xếp hàng, thử lại, tạm dừng, tiếp tục.1624. Sandbox: thực thi mã, hệ thống tệp bị cô lập, các hạn chế, tạo phẩm.1635. Lớp công cụ: MCP, API nội bộ, trình duyệt, cơ sở dữ liệu, kho lưu trữ.1646. Lớp nhận dạng: OAuth, phạm vi, bí mật, kiểm toán, chính sách.1657. Lớp bộ nhớ: bối cảnh dự án, truy xuất, hướng dẫn, hết hạn.1668. Khả năng quan sát: các số liệu theo dõi, phát lại, đánh giá, chi phí và chất lượng.1679. Bề mặt sản phẩm: trò chuyện khi đủ, bảng điều khiển khi cần, xem lại khi cần thiết.168169Khung tác vụ chủ yếu bao gồm điểm 2 và một phần điểm 1. Phần còn lại là công việc thực tế.170171## Những gì tôi sẽ làm trong thực tế172173Nếu một nhóm nói với tôi “chúng tôi muốn sản xuất đại lý”, tôi sẽ không bắt đầu với mười đại lý.174175Tôi sẽ bắt đầu với một quy trình làm việc nhỏ, lặp đi lặp lại và có thể quan sát được. Ví dụ: mở PR bảo trì, cập nhật tài liệu từ các sự cố đã đóng, chuẩn bị đánh giá hàng tuần, phân loại các lỗi trùng lặp, tạo thử nghiệm cho các tệp bị ảnh hưởng.176177Sau đó tôi sẽ đặt ra những giới hạn rất rõ ràng:178179- không viết mà không có nhánh hoặc hộp cát;180- không có bí mật nào trong lời nhắc;181- công cụ trong danh sách cho phép;182- sự chấp thuận của con người đối với các hành động bên ngoài;183- nhật ký và theo dõi bắt buộc;184- ngân sách cho mỗi lần chạy;185- đầu ra luôn có thể kiểm tra được.186187Chỉ khi đó tôi mới mở rộng được.188189Các đại lý không thất bại chỉ vì mô hình sai. Chúng thất bại vì chúng tôi đặt chúng trong những môi trường mơ hồ, với những quyền khó hiểu và những kỳ vọng về sân khấu.190191## Bài đọc của tôi192193Cơ sở hạ tầng đại lý đang nhàm chán một cách tốt nhất.194195Đó không phải là phần khiến bạn phải vỗ tay trong bản demo. Đó là phần cho phép bạn thực sự sử dụng bản demo vào sáng thứ Hai, với người thật, dữ liệu thực và hậu quả thực.196197Tương lai của các đặc vụ sẽ không chỉ được quyết định bởi ai có hình mẫu tốt nhất. Nó sẽ được quyết định bởi người xây dựng nơi tốt nhất để anh ta làm việc: biệt lập khi anh ta thử nghiệm, kết nối khi cần thiết, luôn có thể quan sát được, được ủy quyền với các tiêu chí và đủ khiêm tốn để dừng lại khi anh ta không biết.198199Đó là nơi các đại lý không còn là đồ chơi nữa mà trở thành cơ sở hạ tầng.200201## Nguồn202203- [Vercel: Cách xây dựng tác nhân AI với Vercel và AI SDK](https://vercel.com/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk)204- [Vercel Docs: Sandbox](https://vercel.com/docs/sandbox)205- [Vercel Docs: Làm việc với Sandbox](https://vercel.com/docs/sandbox/working-with-sandbox)206- [Tài liệu Vercel: MCP](https://vercel.com/docs/mcp)207- [Giao thức ngữ cảnh mô hình: Thông số kỹ thuật](https://modelcontextprotocol.io/specuation)208- [OpenAI: Công cụ mới dành cho đại lý xây dựng](https://openai.com/index/new-tools-for-building-agents/)209- [Blog Cloudflare: Đại lý trên Cloudflare](https://blog.cloudflare.com/agents-on-cloudflare/)210
:Cơ sở hạ tầng đại lý và chương trình phụ trợ mớilines 1-210 (END) — press q to close