VPS

Claude Agent SDK: dựng agent riêng cho hệ thống

Thanh Nguyễn Đăng 9 phút đọc 2 khối lệnh

Claude Agent SDK: dựng agent riêng cho hệ thống
Mục lục bài viết
  1. Khi nào nên tự dựng
  2. Vòng lặp cốt lõi
  3. Bốn thứ phải tự lo
  4. Kiểm soát chi phí
  5. Chạy ở đâu
  6. Khi nào nên tự dựng và khi nào không
  7. Bốn thứ phải tự lo khi tự dựng
  8. Bốn hạn mức bắt buộc khi chạy tự động
  9. Trợ lý tự chạy phải nằm trên máy chủ
  10. Câu hỏi thường gặp
  11. Bài viết liên quan

Trả lời nhanh: Claude Agent SDK cho phép bạn dựng một agent riêng chạy trong hệ thống của mình, thay vì gõ lệnh trong terminal. Đáng làm khi bạn cần một quy trình tự động chạy theo sự kiện, ví dụ nhận yêu cầu hỗ trợ rồi tự phân loại, hoặc một agent nhúng trong sản phẩm của bạn. Bốn thứ phải tự lo mà công cụ dòng lệnh vốn làm sẵn: quản lý ngữ cảnh, giới hạn công cụ, xử lý lỗi và thử lại, và ghi nhật ký để gỡ lỗi.

Dùng agent qua dòng lệnh hợp với công việc lập trình hằng ngày. Nhưng khi bạn muốn một quy trình tự chạy khi có sự kiện, hoặc muốn nhúng khả năng đó vào sản phẩm bán cho khách, thì cần tự dựng. Bài này nói khi nào nên và những gì bạn phải tự làm.

Khi nào nên tự dựng

Bốn tình huống rõ ràng:

  • Quy trình chạy theo sự kiện. Có yêu cầu hỗ trợ mới thì agent đọc, phân loại, tìm bài liên quan trong tài liệu nội bộ rồi soạn bản nháp trả lời.
  • Nhúng vào sản phẩm. Bạn bán một công cụ và muốn khách dùng được khả năng của agent ngay trong đó.
  • Tích hợp sâu với hệ thống nội bộ. Agent cần gọi API riêng của công ty theo cách rất đặc thù.
  • Cần kiểm soát chặt từng bước. Ví dụ bắt buộc mọi thao tác ghi phải qua một lớp kiểm duyệt của bạn.

Ngược lại, nếu việc của bạn là viết code hằng ngày thì công cụ dòng lệnh đã lo hết những phần khó, và tự dựng chỉ là làm lại từ đầu.

Vòng lặp cốt lõi

Bản chất của một agent rất đơn giản: gửi yêu cầu, nhận về hoặc là câu trả lời hoặc là lời gọi công cụ, chạy công cụ đó, gửi kết quả trở lại, lặp cho tới khi xong.

CodeVòng lặp cốt lõijavascript
// Khung y tuong, khong phai ma nguon day dulet lichSu = [{ vaiTro: 'nguoi_dung', noiDung: yeuCau }] for (let vong = 0; vong < SO_VONG_TOI_DA; vong++) {  const traLoi = await goiMoHinh({ lichSu, congCu: DANH_SACH_CONG_CU })   if (!traLoi.goiCongCu) {    return traLoi.noiDung        // agent da tra loi xong  }   const ketQua = await chayCongCu(traLoi.goiCongCu)   // co kiem tra quyen  lichSu.push(traLoi, { vaiTro: 'ket_qua_cong_cu', noiDung: ketQua })}throw new Error('Vuot qua so vong cho phep')

Dòng cuối quan trọng hơn vẻ ngoài: luôn đặt giới hạn số vòng. Không có nó, một agent gặp việc không giải được sẽ lặp mãi và bạn trả tiền cho từng vòng đó.

Bốn thứ phải tự lo

Quản lý ngữ cảnh. Lịch sử dài ra sau mỗi vòng, và tới lúc nào đó vượt giới hạn. Bạn phải tự quyết cắt gì và giữ gì, thường là giữ yêu cầu ban đầu cùng các kết luận, bỏ bớt kết quả công cụ cũ. Nguyên tắc giống hệt phần đã bàn ở bài quản lý ngữ cảnh.

Giới hạn công cụ. Bạn quyết agent gọi được những gì. Cấp ít nhất có thể, và với thao tác ghi thì thêm bước xác nhận, theo tinh thần ở bài về quyền.

Xử lý lỗi và thử lại. Gọi mạng thất bại, công cụ trả lỗi, mô hình trả về định dạng không đúng. Cần thử lại có giãn cách cho lỗi tạm thời và dừng hẳn cho lỗi thật.

Ghi nhật ký. Đây là thứ bạn sẽ cảm ơn chính mình. Ghi lại từng vòng: yêu cầu, công cụ được gọi, kết quả. Không có nó thì gỡ lỗi một agent chạy sai gần như bất khả thi.

Kiểm soát chi phí

Agent tự chạy có thể tiêu tiền rất nhanh nếu không có rào. Bốn việc:

  • Giới hạn số vòng cho mỗi lượt chạy, như trong đoạn mã ở trên.
  • Giới hạn kích thước ngữ cảnh, cắt bớt lịch sử khi vượt ngưỡng thay vì để nó lớn mãi.
  • Đặt hạn mức theo ngày cho toàn hệ thống, và cảnh báo khi chạm ngưỡng.
  • Ghi lại lượng tiêu thụ theo từng lượt chạy để biết loại yêu cầu nào tốn nhất.

Điểm cuối thường phát hiện ra chuyện bất ngờ: một loại yêu cầu hiếm gặp nhưng ngốn gấp mười lần bình thường, và thường đó là loại mà agent không giải được nên cứ thử mãi.

Chạy ở đâu

Agent nhúng thường là tiến trình sống lâu, nhận sự kiện và xử lý. Ba yêu cầu về nơi chạy:

  • Luôn bật, vì sự kiện tới bất kỳ lúc nào.
  • Gần các hệ thống nó cần gọi, để độ trễ thấp và không phải mở cổng ra internet.
  • Có hàng đợi phía trước, để lượt xử lý dài không chặn việc nhận yêu cầu mới, theo cách trong bài về hàng đợi.

Về tài nguyên, tiến trình agent bản thân nó nhẹ vì phần tính toán nặng nằm ở phía nhà cung cấp mô hình. Cái tốn là những gì công cụ của bạn làm: đọc file, truy vấn database, gọi API. Cấu hình theo đúng những việc đó, theo hướng dẫn ở bài chọn cấu hình VPS.

Cuối cùng, hãy cách ly agent tự chạy khỏi hệ thống thật, theo ba mức trong bài về cách ly. Một agent chạy tự động mà có khóa vào database sản xuất là rủi ro không cần thiết.

Khi nào nên tự dựng và khi nào không

Tình huốngNên tự dựng khôngVì sao
Cần trợ lý chạy tự động trong quy trình của công tyNênCông cụ có sẵn thiết kế cho người ngồi trước máy
Cần nhúng khả năng trợ lý vào sản phẩm của bạnNênĐây là mục đích chính
Cần trợ lý chạy theo lịch, không có người trựcNênCần kiểm soát chặt hơn
Chỉ cần trợ lý cho việc lập trình hằng ngàyKhôngCông cụ có sẵn đã đủ và tốt hơn
Đội chưa có ai vận hành dịch vụ chạy nềnChưa nênThêm một hệ thống phải bảo trì

Bốn thứ phải tự lo khi tự dựng

  • Giới hạn vòng lặp. Trợ lý gọi công cụ rồi nhận kết quả rồi gọi tiếp; không giới hạn số vòng là mở đường cho vòng lặp vô hạn và hóa đơn lớn.
  • Xử lý lỗi ở mọi bước. Công cụ thất bại, dịch vụ quá tải, phản hồi sai định dạng. Không xử lý là quy trình chết giữa chừng và im lặng.
  • Giới hạn quyền của từng công cụ. Trợ lý tự chạy không có ai bấm đồng ý, nên quyền phải khai chặt từ đầu.
  • Ghi nhật ký đầy đủ: mỗi lượt gọi, mỗi công cụ được dùng, mỗi kết quả. Đây là thứ duy nhất cho biết chuyện gì đã xảy ra.

Bốn hạn mức bắt buộc khi chạy tự động

TerminalBốn hạn mức bắt buộc khi chạy tự độngbash
# Bon co che bat buoc voi tro ly chay tu dong: # 1. Gioi han so vong lap moi nhiem vu# 2. Gioi han tong so token moi nhiem vu# 3. Dat han muc chi tieu trong bang dieu khien# 4. Canh bao khi chi phi ngay vuot nguong # Ghi lai cho moi lan chay:#   nhiem vu gi, bao nhieu vong, bao nhieu token, ket qua ra sao# Con so nay la du lieu duy nhat de toi uu ve sau # Kiem chi phi theo TUAN, khong doi den cuoi thang# Phat hien som thi mat vai tram nghin, phat hien muon thi mat vai trieu

Trợ lý tự chạy phải nằm trên máy chủ

  • Trợ lý tự chạy phải nằm trên máy chủ, không phải máy cá nhân: nó cần chạy theo lịch và chạy tiếp khi bạn tắt máy.
  • Tài nguyên chủ yếu là bộ nhớ và ổ đĩa, vì phần lớn thời gian là chờ dịch vụ mô hình trả lời.
  • Đặt gần dữ liệu nó cần đọc. Nếu nó truy vấn cơ sở dữ liệu của bạn, đặt cùng khu vực với cơ sở dữ liệu đó.
  • Tách khỏi máy chủ đang phục vụ khách, để một nhiệm vụ đi hoang không làm chết dịch vụ thật.

Câu hỏi thường gặp

Tự dựng agent có khó không?

Vòng lặp cốt lõi thì đơn giản, chỉ vài chục dòng. Phần khó là những thứ quanh nó: quản lý ngữ cảnh, giới hạn công cụ, xử lý lỗi, ghi nhật ký và kiểm soát chi phí. Đó cũng là phần công cụ dòng lệnh vốn làm sẵn cho bạn.

Khi nào không nên tự dựng?

Khi việc của bạn là lập trình hằng ngày. Công cụ dòng lệnh đã có quản lý ngữ cảnh, hệ thống quyền, hook và nhiều thứ khác. Tự dựng chỉ đáng khi bạn cần chạy theo sự kiện hoặc nhúng vào sản phẩm.

Làm sao để agent không tiêu tiền vô tội vạ?

Giới hạn số vòng lặp cho mỗi lượt chạy, cắt bớt ngữ cảnh khi vượt ngưỡng, đặt hạn mức theo ngày và ghi lại mức tiêu thụ theo từng loại yêu cầu để phát hiện loại nào bất thường.

Agent tự chạy nên đặt ở đâu?

Trên một máy chủ luôn bật, đặt gần các hệ thống mà nó cần gọi, và tách khỏi hệ thống sản xuất về mặt quyền truy cập. Có hàng đợi phía trước để lượt xử lý dài không chặn việc nhận yêu cầu mới.

Chia sẻ:Facebook

Thanh Nguyễn

TND

Tư vấn bản quyền, VPS và máy chủ kèm hóa đơn VAT, hợp đồng đầy đủ cho doanh nghiệp.