Hướng dẫn · 10 phút đọc

Người dịch cũng là một agent: Cách AgentKits tự bản địa hóa tài liệu của chính mình

AgentKits phát hành README và khóa đào tạo 23 module bằng mười ngôn ngữ — không phải qua một đơn vị dịch thuật, mà qua một công cụ Node.js xây dựng trên Claude Agent SDK, và đội ngũ còn mã nguồn mở chính công cụ đó thành một gói riêng. Đây là cách pipeline thực sự vận hành, và lý do vì sao LLM là công cụ phù hợp cho công việc cụ thể này.

Người dịch cũng là một agent: Cách AgentKits tự bản địa hóa tài liệu của chính mình

Một hạng mục mà phần lớn dự án mã nguồn mở vẫn còn bỏ qua

Tài liệu mã nguồn mở đã âm thầm không còn là chuyện chỉ dùng tiếng Anh nữa. Một khảo sát học thuật gần đây trên các kho GitHub cho thấy tỷ lệ repository có tài liệu không phải tiếng Anh đã tăng từ 3,7% vào tháng 1/2015 lên 13,0% vào tháng 5/2025 — tăng hơn gấp ba trong một thập kỷ mà phần lớn thời gian đó, mặc định “chỉ tiếng Anh” vẫn là chuẩn mực không ai đặt câu hỏi. Cùng giai đoạn đó, tính đa ngôn ngữ cũng len lỏi vào chính mã nguồn: hơn 22% file Java được khảo sát năm 2025 có chú thích không phải tiếng Anh, và 13% có chuỗi ký tự literal không phải tiếng Anh. Về mặt lịch sử, việc bản địa hóa luôn đem lại lợi ích cho những dự án thực sự đầu tư vào nó — ví dụ kinh điển là WordPress, chiếm hơn 40% web toàn cầu, phần lớn nhờ việc phát hành bằng hàng chục ngôn ngữ thay vì mặc định ai cũng đọc được tài liệu tiếng Anh để bắt đầu.

Nhưng phần lớn các dự án mã nguồn mở quy mô nhỏ và vừa vẫn chưa bản địa hóa, vì một lý do rất thực tế: giữ cho bản dịch luôn cập nhật rất tốn kém. Một README thay đổi hàng tuần thì cần một quy trình dịch thuật cũng cập nhật hàng tuần, và việc thuê ngoài việc đó không thể mở rộng quy mô cho một dự án chỉ có vài người bảo trì. AgentKits — bộ công cụ AI agent mã nguồn mở, giấy phép MIT của chúng tôi, với Marketing Kit đã phát hành gồm 20 agent, 77 lệnh và 28 kỹ năng — đã giải quyết ràng buộc này theo một cách đáng được mô tả chi tiết: họ xây dựng một công cụ để chính agent dịch tài liệu của mình, rồi công bố luôn công cụ đó như một gói mã nguồn mở riêng biệt.

Những gì thực sự đang chạy

Công cụ này nằm trong repo tại scripts/translate-readme, là mã Node.js thật, đang hoạt động, xây dựng trực tiếp trên API query() dạng streaming của @anthropic-ai/claude-agent-sdk — không phải một lớp bọc quanh một API dịch thuật thông thường. Một vài lựa chọn kỹ thuật trong script này đáng được nêu cụ thể, vì chính chúng là ranh giới giữa “một script gọi LLM” và một pipeline mà ai đó có thể thực sự chạy không giám sát, lặp đi lặp lại, mà không biến thành vấn đề về chi phí hay độ chính xác.

Đầu tiên là cache. Mọi tài liệu gốc đều được băm nội dung bằng SHA-256, và giá trị băm này được đối chiếu với file .translation-cache.json trước khi bất kỳ bản dịch nào chạy. Nếu bản gốc tiếng Anh không thay đổi kể từ lần chạy trước, bản dịch trong cache sẽ được tái sử dụng và không có lệnh gọi API nào xảy ra. Điều này quan trọng hơn vẻ ngoài của nó — nếu không có cơ chế này, mỗi lần chạy CI hay bảo trì sẽ dịch lại từ đầu toàn bộ tài liệu ở mọi ngôn ngữ, đốt token vào phần nội dung vốn không hề thay đổi.

Thứ hai là xử lý song song. Các tác vụ dịch chạy song song, giới hạn ở Math.min(languages.length, 10) yêu cầu đồng thời — đủ để một lượt chạy mười ngôn ngữ hoàn tất trong khoảng thời gian gần bằng dịch một ngôn ngữ, mà không phát ra một số lượng yêu cầu API đồng thời không giới hạn.

Thứ ba, chi phí được đo thực tế chứ không phải giả định. Script đọc trực tiếp giá trị total_cost_usd từ chính message result của SDK cho từng tác vụ dịch, và hỗ trợ một ngưỡng maxBudgetUsd tùy chọn để dừng toàn bộ lượt chạy thay vì tiếp tục dịch vượt quá giới hạn chi tiêu. Đây là một lập trường khác hẳn so với việc coi lệnh gọi LLM như một yêu cầu API có chi phí cố định theo kiểu API dịch máy truyền thống tính phí theo ký tự — mức giá cố định theo ký tự thì không cần ngưỡng ngân sách, nhưng một lệnh gọi mô hình có chi phí biến động theo từng tài liệu thì cần.

Thứ tư, và có lẽ là chi tiết quan trọng nhất đối với bất kỳ ai dịch tài liệu kỹ thuật: prompt yêu cầu rõ ràng mô hình không được đụng vào code fence, đường dẫn file, hay các slash command như /training:start-0-0. Một API dịch thuật thông thường không hề có khái niệm “chuỗi này là một lệnh mà người đọc phải gõ nguyên văn” — nó sẵn sàng dịch luôn một chú thích nằm trong code fence hoặc làm hỏng một cờ dòng lệnh (CLI flag). Một LLM được đưa ra chỉ dẫn bằng ngôn ngữ tự nhiên về ranh giới giữa code và văn xuôi có thể tuân thủ ranh giới đó một cách trực tiếp — đây chính là loại năng lực tuân theo chỉ dẫn khiến việc dịch bằng LLM trở thành một hạng mục công cụ khác hẳn so với dịch máy nơ-ron truyền thống, đặc biệt với nội dung dành cho lập trình viên.

Cùng một công cụ, tái sử dụng cho khóa học 23 module

Công cụ translate-readme không phải là một script dùng một lần cho một file duy nhất. Cùng một pipeline nền tảng (được đóng gói riêng thành scripts/translate-training) tạo ra toàn bộ cây lệnh đã được bản địa hóa cho khóa đào tạo marketing 23 module của AgentKits — chương trình tương tác dẫn dắt người học qua chiến lược chiến dịch, dùng chính sản phẩm AgentKits làm case study xuyên suốt. Cây lệnh trong repo cho thấy kết quả: mười biến thể ngôn ngữ đầy đủ của lộ trình đào tạo đã được tạo ra (commands/training-ar, -de, -es, -fr, -ja, -ko, -pt-br, -ru, -vi, -zh), mỗi biến thể là một bản sao song song đầy đủ của cả 23 module, không phải bản rút gọn hay tóm tắt.

Việc lựa chọn ngôn ngữ cũng không hề tùy tiện — nó được triển khai theo từng giai đoạn, và lý do được viết thẳng vào mã nguồn của công cụ dưới dạng chú thích, phân nhóm các ngôn ngữ mục tiêu theo tầng ưu tiên: nhóm “Tier 1 — lựa chọn hiển nhiên” (tiếng Trung, tiếng Nhật, tiếng Bồ Đào Nha Brazil, tiếng Hàn, tiếng Tây Ban Nha, tiếng Đức, tiếng Pháp) nhắm vào các thị trường lập trình viên lớn nhất và rõ ràng nhất về mặt thương mại trước tiên, nhóm “Tier 2 — cộng đồng công nghệ mạnh” (tiếng Hebrew, tiếng Ả Rập, tiếng Nga, tiếng Ba Lan, tiếng Séc, tiếng Hà Lan, tiếng Thổ Nhĩ Kỳ, tiếng Ukraina) theo sau, và còn có thêm các tầng khác nữa. Đây là một chi tiết nhỏ, nhưng có thật: việc triển khai không phải là “dịch ra mọi ngôn ngữ nghĩ ra được”, mà là một canh bạc rõ ràng, có ưu tiên, về việc người dùng tiếp theo của một bộ công cụ marketing-agent nhiều khả năng sẽ đến từ đâu.

Vì sao chọn LLM thay vì API dịch thuật

Hoàn toàn có thể kết nối cùng một pipeline đó với một API dịch máy nơ-ron truyền thống thay vì LLM, và đáng để nói rõ vì sao đó sẽ là lựa chọn đánh đổi sai lầm cho loại nội dung cụ thể này. Dữ liệu benchmark năm 2026 cho thấy LLM đạt điểm COMET cao hơn 8-15% so với các engine NMT truyền thống, đặc biệt với nội dung phức tạp, nhiều thuật ngữ chuyên ngành — và trong hạng mục chia sẻ WMT24, các hệ thống dựa trên LLM đã thắng 9 trên 11 cặp ngôn ngữ trước các hệ thống dịch máy nơ-ron chuyên biệt được xây dựng riêng cho công việc đó. Khoảng cách này xuất hiện vì LLM có thể đọc ngữ cảnh rộng hơn trong toàn bộ tài liệu, giữ được bảng thuật ngữ và giọng văn xuyên suốt cả file, và tuân theo các quy tắc định dạng bằng ngôn ngữ tự nhiên — chính xác là kiểu chỉ dẫn “đừng đụng vào slash command này” mà prompt của AgentKits dựa vào.

Câu chuyện chi phí lại đi theo chiều ngược lại, và đáng để nêu thẳng thắn thay vì chỉ trích dẫn con số có lợi. Các API NMT truyền thống như Microsoft Translator có giá khoảng 10 đô la cho mỗi triệu ký tự — một mức chi phí thực sự rẻ và dễ dự đoán ở quy mô lớn. API LLM tính phí theo token thay vì theo ký tự, và mức giá dao động rất lớn tùy theo cấp độ mô hình: một lựa chọn tiết kiệm chi phí như DeepSeek V3 có giá khoảng 0,27 đô la cho mỗi triệu token đầu vào, trong khi một mô hình cao cấp được xây dựng để xử lý sắc thái tinh tế thì tốn kém hơn rõ rệt. Đối với một dự án dịch toàn bộ chương trình đào tạo sang mười ngôn ngữ mỗi khi có thay đổi nội dung đáng kể, đây chính xác là bài toán đánh đổi mà ngưỡng maxBudgetUsd và cơ chế cache SHA-256 trong pipeline của AgentKits được xây dựng để quản lý — trả thêm cho bản dịch hiểu ngữ cảnh và tuân theo chỉ dẫn, nhưng giới hạn mức độ xảy ra và bỏ qua phần việc đã hoàn thành.

Điểm đáng chú ý

AgentKits cung cấp một Marketing Kit xoay quanh các AI agent lập kế hoạch chiến dịch, viết nội dung quảng cáo và tối ưu hóa phễu bán hàng cho sản phẩm của các công ty khác. Công cụ mà AgentKits dùng để dịch chính README và chính chương trình đào tạo của mình sang mười ngôn ngữ, tự bản thân nó cũng là một agent — xây dựng trên cùng một SDK, theo cùng một khuôn mẫu “đưa cho mô hình chỉ dẫn bằng ngôn ngữ tự nhiên và để nó suy luận dựa trên ngữ cảnh” mà cả bộ công cụ đang rao bán. Đây không phải là một sự trùng hợp nên bỏ qua: một dự án có thông điệp sản phẩm là “để agent làm việc này một cách đáng tin cậy” lại chọn vận hành chính pipeline tài liệu của mình theo đúng cách đó, là một hình thức tự tin cụ thể hơn nhiều so với bất kỳ case study nào — và điều đó có thể kiểm chứng được, vì cả tài liệu đã dịch lẫn công cụ tạo ra chúng đều nằm trong cùng một repo công khai.

Khám phá mã nguồn mở

Chúng tôi xây dựng và duy trì các công cụ mã nguồn mở cho nhà phát triển. Xem trên GitHub.

Xem trên GitHub

Bài viết liên quan

Hướng dẫn

Apple và Google Vừa Bắt Đầu Ghi Chép Cuộc Gọi Miễn Phí. Không Bên Nào Chạm Đến Tab Zoom

iOS 26 và Pixel Recorder của Google giờ đây thực hiện phiên âm và tóm tắt cuộc gọi ngay trên thiết bị, miễn phí. Đây là ranh giới cụ thể mà cả hai nền tảng đều chưa vượt qua — và đó chính xác là nơi Tiện ích Chrome của MinuteAI hoạt động.

Hướng dẫn

Cảnh Báo 12 Nghìn Tỷ Yên Của Nhật Bản Không Phải Câu Chuyện Về Thiếu Kỹ Sư COBOL. Đó Là Câu Chuyện Về Bảng Mã Ký Tự.

Cảnh báo 'vách đá 2025' của METI thường được hiểu là câu chuyện về nhân sự nghỉ hưu và bài toán chi phí thay-thế-toàn-bộ. Nhưng lỗi thực sự làm hỏng các dự án di trú lại nhỏ hơn và dễ bị bỏ qua hơn: EBCDIC và Shift-JIS thậm chí không thống nhất chữ cái hay chữ số được sắp xếp trước. Vì sao Legacy Dragon xử lý bảng mã ký tự ngay ở tầng phân tích cú pháp, chứ không phải như một bước tiền xử lý gắn thêm sau này.

Hướng dẫn

Không Trang Giá, Không Đồng Hồ Tính Phí API: Kinh Tế Học Đằng Sau Các Công Cụ Miễn Phí Của PrivateAI

AI trên đám mây được tính giá theo token vì mỗi truy vấn đều tốn chi phí điện toán thực sự cho nhà cung cấp. Các công cụ chạy trên thiết bị không có hóa đơn đó. Đây là những gì sự khác biệt về cấu trúc này thực sự mang lại — và không mang lại — cho một sản phẩm như PrivateAI.