Act Operator – mã nguồn mở bộ harness điều khiển dự án LangGraph 1.0+ “dùng cho production thực tế”
(github.com/Proact0)Cùng một mô hình AI, cùng là con người, tại sao kết quả lại khác nhau.
Mỗi lần lại đào lại từ đầu để làm mới, mỗi team dùng Agent theo một cách khác nhau nên phát sinh xung đột code, và chỉ có các prototype không thể vận hành cứ chồng chất…
Ở đây luôn xuất hiện một hiện tượng bất thường cố hữu xảy ra khi cộng tác giữa những người sử dụng công cụ AI.
Khi một developer quen thuộc với công nghệ yêu cầu Claude Code triển khai workflow, nó tạo ra mã rất xuất sắc. Nhưng nếu một developer mới tiếp cận lần đầu gửi cùng yêu cầu đó cho chính Claude Code, kết quả lại là mã phổ thông, thiếu nhất quán và sai lệch một cách tinh vi. Vẫn là cùng một mô hình. Vậy tại sao lại như vậy?
Vấn đề không nằm ở mô hình mà là ở khoảng cách ngữ cảnh (Context Gap) — và điều này áp dụng giống nhau cho cả con người lẫn AI agent.
Một thành viên mới được đưa vào làm việc mà không có onboarding cũng loay hoay trong cùng codebase vì lý do tương tự: convention chỉ tồn tại ngầm, kiến trúc chỉ nằm trong đầu ai đó, và không có môi trường có cấu trúc để dẫn dắt. AI agent cũng không khác.
Ngay cả người có kinh nghiệm cũng va phải bức tường này. Khi session thay đổi, agent quên thiết kế trước đó. Kiến trúc được quyết định hôm qua thì agent của hôm nay không biết. Bởi tri thức chỉ nằm trong đầu con người, chứ không nằm trong codebase. Nếu con người không tìm được convention thì agent cũng không thể tìm ra.
Để giải quyết điều này, không cần cải thiện prompt hay dùng mô hình tốt hơn. Điều cần làm là thiết kế chính môi trường nơi con người và agent cùng vận hành.
[ Harness vốn dĩ đã luôn tồn tại. ]
Từ harness bắt nguồn từ tiếng Pháp cổ 'harnois'. Nghĩa gốc là "trang bị quân sự, công cụ kiểm soát".
Từ thập niên 1690, nghĩa ẩn dụ của nó được xác lập: "kiểm soát một sức mạnh chưa được kiểm soát để sử dụng theo đúng hướng (to control for use as power)".
Đó cũng là cùng ngữ cảnh như khi nói nhà máy điện gió "harnessing" gió để biến nó thành năng lượng.
Trong kỹ thuật, nguyên lý này liên tục xuất hiện lặp lại dưới những hình thức khác nhau.
- Wiring Harness: thiết bị gom nhiều dây điện rối phức tạp thành một bó để biến chúng thành một đơn vị có thể kiểm soát. Đây đã là tiêu chuẩn trong ngành ô tô suốt nhiều thập kỷ.
- Test Harness: môi trường thực thi gồm stub và driver cho phép cô lập và chạy một component cụ thể mà không cần toàn bộ hạ tầng. Đây là khái niệm cốt lõi trong kiểm thử phần mềm.
- Pipeline CI/CD: môi trường kiểm soát có cấu trúc để code không đi thẳng vào production mà phải đi qua các lớp build, test và validation. Đây cũng là một loại harness.
Điểm chung chỉ có một.
Thiết kế một môi trường bên ngoài để điều khiển đúng hướng một đối tượng vốn chưa được kiểm soát (dây điện, component mã, luồng triển khai).
Vì vậy, khi đầu năm 2026 OpenAI dùng agent Codex để xây dựng một hệ thống quy mô 1 triệu dòng mã trong 5 tháng mà không viết thủ công một dòng code nào, việc áp dụng nguyên lý lâu đời này cho AI agent và gọi nó là Harness Engineering là một hệ quả tự nhiên. Việc Martin Fowler và team kỹ thuật của Anthropic dùng cùng một thuật ngữ vào cùng thời điểm không phải là ngẫu nhiên.
LangChain cũng đã nâng hạng Terminal Bench 2.0 từ vị trí 30 lên vị trí 5 chỉ bằng cách cải thiện harness.
Vì thế, act-operator được tạo ra như một harness để điều khiển cấu trúc LangGraph 1.0+ có thể được dùng trong sản phẩm thực tế.
[ Ultra-Quick Start ]}
Trong môi trường đã cài uv, chỉ cần một dòng dưới đây là hoàn tất thiết lập harness dự án LangGraph 1.0+ dùng cho production thực tế.
uvx --from act-operator act new
[ 3 lớp của Act Operator ]
Trong phát triển dựa trên AI, harness là một hệ thống gồm scaffolding, tri thức có thể thực thi và feedback loop bao bọc để cả con người lẫn AI agent đều có thể tạo ra đầu ra đúng và ổn định bất kể ai là người thực hiện công việc.
Act Operator hiện thực điều này bằng ba lớp:
- Scaffolding: một skeleton dự án hoàn chỉnh được lắp ráp trước prompt đầu tiên của agent, tích hợp sẵn convention mô-đun và base class bảo đảm mức coupling thấp tối thiểu và mức cohesion cao tối thiểu
- SSOT có thể thực thi: tri thức được mã hóa thành các file hoạt động mà agent và con người đọc ở runtime
- Feedback loop: đặc tả giúp giữ agent ở trạng thái aligned qua nhiều session
[ SSOT có thể thực thi ]
Các team thông thường chia sẻ tri thức phát triển và thiết kế qua wiki, tài liệu kiến trúc, kiến thức truyền miệng — thậm chí đôi khi còn không làm. Vấn đề là tài liệu sẽ cũ đi, wiki sẽ lỗi thời, và kiến thức truyền miệng thì không thể sống sót qua những thay đổi của team.
Harness mã hóa những tri thức này thành các file đang hoạt động — không phải tài liệu tĩnh, mà là tham chiếu có thể thực thi được agent và con người trực tiếp đọc. Act Operator quản lý điều này bằng ba lớp thành phần SSOT bổ sung cho nhau, có xét đến coupling và cohesion:
- Act Template (scaffold): chính skeleton dự án — workflow CI cơ bản, base class, cấu trúc test, thiết lập monorepo, quản lý biến môi trường, hướng dẫn sử dụng
- Agent Skills: tổng cộng 5 skill, hơn 50 pattern tham chiếu, cây quyết định, template kiến trúc
- Drawkit: các shape Act kiến trúc được định nghĩa sẵn cho draw.io — từ vựng trực quan dùng chung cho giao tiếp giữa con người
Mỗi thành phần nhắm tới một đối tượng khác nhau nhưng cùng tham chiếu đến một tập convention nền tảng. Act Template thiết lập nền tảng cấu trúc nơi cả agent và developer cùng làm việc. Skills chỉ cho agent cách xây dựng đúng trong cấu trúc đó, còn Drawkit chỉ cho team cách trực quan hóa kiến trúc.
[ Thông tin mã nguồn mở khác ]
- Ngoài Claude Code, mọi công cụ hỗ trợ thư mục skill như OpenCode, Cursor, Gemini CLI đều hoạt động.
- Hỗ trợ cả tài liệu tiếng Hàn và tiếng Anh
- Apache 2.0 License – đang được phát hành miễn phí 200% trên PIPY
Rất hoan nghênh phản hồi và đóng góp của tất cả mọi người (và cả GitHub star★ nữa..!). Xin cảm ơn :)
Chưa có bình luận nào.