Di chuyển AI Agent mà không gây gián đoạn

Tôi từng vận hành hai AI agent: OpenClaw và Hermes.

OpenClaw hoạt động tốt với các tác vụ theo lịch trình. Hermes hoạt động tốt hơn với các lập luận phức tạp. Tuy nhiên, OpenClaw có một nhược điểm lớn. Khi các tác vụ trở nên nặng nề, nó sẽ bị hết thời gian chờ (time out) và bỏ dở công việc. Hermes không bao giờ gặp tình trạng này. Nó giữ tác vụ và hoàn thành công việc.

Tôi quyết định chuyển mọi thứ sang Hermes. Tôi không muốn thay đổi đột ngột. Một sự thay đổi đột ngột rất rủi ro. Nếu hệ thống mới thất bại, tôi sẽ mất các thông báo của mình.

Tôi đã chọn chiến lược di chuyển song song.

Tôi vẫn để OpenClaw chạy. Tôi thêm Hermes như một hệ thống shadow. Điều này cho phép tôi so sánh cả hai agent cạnh nhau.

Hệ thống thông báo của tôi khá lộn xộn. Nó sử dụng bốn phương thức khác nhau:

  • Shell scripts
  • Node monitors
  • Bash helpers
  • Python scripts

Tôi không viết lại mã nguồn. Tôi thực hiện việc chuyển giao theo hướng bổ sung. Tôi đã tạo một script có tên là hermes_mirror.sh. Tôi thêm một dòng vào mọi tác vụ hiện có để gọi script này chạy ngầm.

Cách tiếp cận này mang lại ba lợi ích:

  • An toàn: Nếu bản sao (mirror) thất bại, thông báo gốc vẫn được gửi đi.
  • Đơn giản: Một script duy nhất quản lý tất cả việc sao chép.
  • Kiểm soát: Tôi có thể dừng tất cả việc sao chép bằng cách thay đổi một biến duy nhất.

Sau đó, tôi đã mắc sai lầm về mặt thời gian.

Tôi không muốn hai thông báo đến cùng một giây chính xác. Tôi nghĩ như vậy sẽ gây nhiễu. Tôi đã đặt độ trễ ba phút cho các thông báo của Hermes.

Tôi đã chạy thử nghiệm. Thông báo từ OpenClaw đã đến. Thông báo từ Hermes thì không. Tôi đã nghĩ rằng hệ thống bị lỗi.

Hệ thống không hề bị lỗi. Nó chỉ đang chờ bộ đếm thời gian ba phút. Trong một quá trình di chuyển, sự "chậm trễ" trông giống như sự "thất bại".

Tôi đã giảm độ trễ xuống còn 20 giây. Khoảng thời gian này đủ để tách biệt các thông báo mà không làm chúng có vẻ như bị thất lạc.

Tôi cũng học được về sự nguy hiểm của việc thay đổi mã nguồn tự động. Tôi đã sử dụng một script để chèn dòng mới vào các tệp Python của mình. Nó hoạt động với hầu hết mọi thứ, ngoại trừ một tệp. Tệp đó có cấu trúc import khác biệt. Nó đã gây ra lỗi crash. Hãy luôn kiểm tra mọi tệp, ngay cả những tệp mà bạn nghĩ là an toàn.

Quá trình di chuyển vẫn chưa kết thúc. Tôi đang chuyển từng tác vụ một. Tôi chỉ ngừng sử dụng một tác vụ OpenClaw sau khi thấy Hermes thực hiện nó thành công.

Một cuộc di chuyển không nên là một khoảnh khắc duy nhất. Nó nên là một bước đi vững chắc hướng tới một hệ thống mới.

Nguồn: https://dev.to/henry_dan_81513dd35a2f540/migrating-off-openclaw-without-downtime-and-the-offset-that-made-hermes-look-dead-2gic

Cộng đồng học tập tùy chọn: https://t.me/GyaanSetuAi