Tiện ích mở rộng workflow ép buộc chu trình phát triển có cấu trúc cho Pi Coding Agent
(github.com/popododo0720)Gần đây các công cụ AI coding agent xuất hiện dồn dập, và cách chỉnh sửa nhiều tệp cùng lúc bằng các agent song song đang trở nên phổ biến. Nhưng khi trực tiếp dùng thử, có một điều có thể cảm nhận rất nhanh — kết quả đầu ra khá lộn xộn.
Agent đẩy mã ra mà không có kế hoạch, tính nhất quán giữa các mô-đun bị phá vỡ, và cùng một lỗi lại lặp đi lặp lại qua từng phiên. Hóa ra việc "tạo ra thật nhanh thật nhiều" không hẳn là điều tốt. Dù tốc độ sinh nhanh đến đâu, nếu thời gian con người phải dọn dẹp phía sau còn lâu hơn thì cũng không có nhiều ý nghĩa.
Vì vậy tôi đã đổi cách tiếp cận. Nếu cố tình làm chậm tốc độ của agent nhưng ép buộc cấu trúc, liệu chất lượng cuối cùng có được nâng lên không?
Tôi đã tạo một tiện ích mở rộng workflow cho Pi Coding Agent (@mariozechner/pi-coding-agent), và trọng tâm là ép agent tuân theo chu trình phát triển 6 bước:
📝 Plan → 🔍 Verify Plan → 🔨 Implement → ✅ Verify Impl → 🧠 Compound → 🎉 Done
- Chặn công cụ theo từng giai đoạn
Nếu không phải giai đoạn Implement thì bản thân công cụ chỉnh sửa tệp sẽ bị chặn. Các lệnh bash như rm, mv, sed -i cũng bị chặn trong các giai đoạn chỉ đọc. AI hoàn toàn không thể đụng vào mã trước khi lập kế hoạch. - Xác minh đối kháng đa mô hình song song
Nhiều LLM sẽ đồng thời xác minh kế hoạch và kết quả triển khai. Đây không chỉ là code review đơn thuần, mà là cách tấn công bằng cách tạo ra các kịch bản cụ thể để phá vỡ mã. Mức độ nghiêm trọng được phân loại thành 🔴 CRITICAL / 🟡 WARNING / 🔵 INFO, và chỉ cần có dù chỉ một CRITICAL thì giai đoạn đó không thể được thông qua. - Học tập kiểu Compound & bộ nhớ dự án
Sau mỗi chu kỳ, các mẫu, lỗi dễ mắc phải (gotchas) và các quyết định kiến trúc sẽ được tự động ghi lại. Bộ nhớ này được lưu trong.pi/workflow-memory.jsonnên vẫn được giữ nguyên ngay cả khi đổi phiên. Điều này giúp thực hiện được kiểu "hôm qua đã vật lộn ở chỗ này rồi, hôm nay đừng lặp lại nữa". - Repo Map (AST + PageRank)
Bằng web-tree-sitter, hệ thống trích xuất toàn bộ symbol của dự án (hàm, lớp, interface, v.v.), tạo đồ thị import và gán mức độ quan trọng cho từng tệp bằng PageRank. Vì có thể nắm được cấu trúc dự án trong phạm vi ngân sách token (mặc định 2048), agent làm việc trong trạng thái đã hiểu "dự án này được tổ chức như thế nào". Hỗ trợ 18 ngôn ngữ.
Các đặc điểm khác
- Hệ thống TODO — chia tác vụ lớn thành các đơn vị TODO, và với mỗi TODO sẽ thực hiện độc lập chu trình Implement → Verify → Compound
- Tự động hóa Git — tự động commit/push ở ranh giới mỗi TODO, nếu tree đang dirty thì sẽ bị buộc dọn dẹp trước
- Kiểm tra tùy chỉnh — nếu đặt các tệp Markdown trong
docs/checks/thì có thể thêm tiêu chí xác minh theo từng dự án - Quản lý ngữ cảnh — tách ngữ cảnh tối thiểu luôn được chèn và ngữ cảnh theo yêu cầu được truy xuất khi cần để tránh lãng phí token
Triết lý
Không phải agent song song là xấu. Nhưng tôi nghĩ việc sinh song song mà không có cấu trúc gần như cũng đồng nghĩa với việc tạo ra technical debt theo kiểu song song. Tiện ích mở rộng này bắt đầu từ ý tưởng: "giao việc cho AI, nhưng áp dụng cùng một kỷ luật như cách con người làm việc".
Được viết 100% bằng TypeScript, và cài đặt chỉ vớinpm installcộng thêm một symlink.
GitHub: https://github.com/popododo0720/pi-stuff
Rất mong nhận được phản hồi!
Chưa có bình luận nào.