8 điểm bởi jeikei 2026-04-23 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

Xin chào.
Mình đang xây dựng Tenet, một harness AI coding agent có thể tự vận hành trong thời gian dài, nên muốn chia sẻ với mọi người.

Khi dùng AI coding agent, mình thấy các tác vụ ngắn thì làm khá tốt, nhưng khi chuyển sang các phần triển khai kéo dài nhiều giờ trở lên thì thường nhanh chóng cảm thấy bất an.
Đặc tả dễ bị mờ đi, test thì vẫn chạy nhưng không rõ đã đủ chưa, đang giữa chừng cũng khó đổi hướng, và nếu phiên làm việc bị ngắt thì ngữ cảnh cũng mất theo.

Tenet là một harness được tạo ra để giảm bớt những vấn đề đó.
Nó không đơn thuần là “một agent chạy lâu”, mà gần hơn với một cấu trúc giúp duy trì hướng đi và chất lượng ngay cả khi chạy trong thời gian dài.

Nó hoạt động theo luồng đại khái như sau.

  1. Interview

    • Trước tiên, cụ thể hóa yêu cầu thông qua phỏng vấn.
    • Khi cần, cũng sẽ thực hiện khảo sát kỹ thuật.
  2. Visuals / Architecture

    • Tạo sơ đồ kiến trúc hoặc UI mockup.
    • Nếu là công việc UI, hệ thống tạo nhiều variation để có thể chọn trước hướng đi phù hợp.
  3. Spec / Harness / Scenarios

    • Lưu lại triển khai spec, harness kiểm thử/xác minh và scenario dưới dạng tài liệu.
    • Không chỉ cố định “sẽ làm gì” mà còn cố định cả “dùng gì để coi là đạt”.
  4. DAG decomposition

    • Chia công việc thành dependency graph.
    • Các job độc lập có thể được chạy song song.
  5. Autonomous execution loop

    • Thực thi từng job, rồi gắn bước đánh giá sau khi hoàn tất.
    • Vòng lặp này được thiết kế để có thể chạy trong thời gian dài.

Cách đánh giá

Mỗi job không chuyển ngay sang bước tiếp theo chỉ vì đã hoàn thành, mà phải vượt qua 3 critic.

  • code critic: phần triển khai có khớp với ý đồ của spec hay không
  • test critic: các test hiện có thực sự đủ để xác minh job này hay không
  • Playwright e2e eval: có hoạt động đúng từ góc nhìn người dùng thực tế hay không

Điểm được chú trọng là các critic này được xem xét trong fresh context tách biệt tối đa khỏi ngữ cảnh của người viết.
Mình muốn giảm việc agent viết code quá dễ dàng tự cho qua kết quả của chính nó.

Mình cũng đã viết trong README, nhưng riêng phần test thì mình cho rằng điều quan trọng hơn việc “có test hay không” là test có thực sự xác minh đúng hay không.

Steer giữa chừng

Khi chạy trong thời gian dài, sẽ có lúc con người muốn chỉnh nhẹ hướng đi ở giữa quá trình.

Trong Tenet, thay vì phải giải thích lại toàn bộ quá trình thực thi từ đầu,
chỉ cần gửi một steer message, hệ thống sẽ lưu lại và phản ánh nó ở các job liên quan về sau.

Tức là,

  • không cần cắt toàn bộ vòng lặp ngay lập tức
  • mà có thể để hệ thống pick up lại ở các bước có liên quan

Mình coi trọng việc để lại tài liệu và dấu vết

Khi làm cái này, điều mình đặc biệt xem trọng là
không chỉ để lại kết quả mà còn lưu lại cả quyết định và dấu vết công việc.

Dưới .tenet/ sẽ còn lại những thứ như sau.

  • interview
  • spec
  • harness
  • visuals
  • knowledge
  • journal
  • steer
  • status
  • SQLite state

Vì vậy, thay vì là một agent kiểu phiên làm việc chạy xong một lần là hết,
Tenet hướng đến một cấu trúc liên tục tích lũy hồ sơ phát triển để còn có thể tham chiếu lại ở các công việc tiếp theo.

Về cảm giác thì nó gần hơn với
một nỗ lực mang cấu trúc tài liệu hóa/xác minh/bàn giao cần có khi giao việc cho freelancer hoặc bên nhận outsource sang phía AI agent.

Trạng thái hiện tại

Dự án vẫn đang ở giai đoạn đầu.
Dù vậy, luồng cơ bản đã được triển khai, và hiện tại đã có những thành phần như sau.

  • adapter cho Claude Code / OpenCode / Codex
  • MCP server + CLI
  • điều phối job dựa trên DAG
  • persistent state dựa trên SQLite + WAL
  • orphan job recovery
  • pipeline đánh giá 3-critic
  • xử lý steer message
  • cấu trúc tài liệu .tenet/

Mình đã thực sự dùng nó để chạy trong thời gian khá dài,
và *đã xác nhận rằng sau hơn 6 tiếng chạy không cần con người can thiệp, nó có thể tạo ra kết quả dùng được ngay.
Một trong những sản phẩm triển khai mà mình đang dùng hằng ngày cũng là kết quả được tạo ra bằng tenet.

Vì đây là dự án còn ở giai đoạn đầu nên vẫn còn nhiều chỗ thô.
Mình sẽ rất cảm kích nếu mọi người thoải mái góp ý dưới bất kỳ hình thức nào.

Chưa có bình luận nào.

Chưa có bình luận nào.