5 điểm bởi sleeplesshan 7 giờ trước | 2 bình luận | Chia sẻ qua WhatsApp

Xin chào,

Tôi muốn chia sẻ một kỹ năng do mình tạo ra dành cho những ai thường dùng các AI agent như Claude Code hay Codex để phân tích log dung lượng lớn hoặc chỉnh sửa code legacy, và luôn đau đầu vì chi phí token cùng độ trễ tăng vọt chỉ trong chốc lát.

Đây là token-router, một bộ định tuyến ngữ cảnh lai xử lý theo nguyên tắc "khám phá miễn phí ở máy cục bộ, suy luận hiệu năng cao trên đám mây" khi làm việc với các tệp lớn.


🛑 Giải quyết vấn đề gì?

Nếu đưa nguyên cả log triển khai hạ tầng dài hơn 2.000 dòng hoặc một tệp mã nguồn khổng lồ vào cloud LLM, bạn sẽ lãng phí cực nhiều token đầu vào và thời gian chờ cũng kéo dài.

Để tiết kiệm, đôi khi người ta dùng mô hình nhỏ để tóm tắt code trước, nhưng cách này rất rủi ro. Chỉ cần thiếu một dòng lỗi hoặc một chỗ định nghĩa biến, AI trên đám mây sẽ mất ngữ cảnh và đưa ra câu trả lời sai lệch.

Ngoài ra, ở phiên bản mới nhất, tôi cũng mở rộng phạm vi định tuyến sang các tệp hướng dẫn agent tĩnh dài được gắn lặp lại ở mỗi lượt như CLAUDE.md, AGENTS.md, .cursorrules. Tuy nhiên, không thể giảm chi phí token của các tệp root dài đã được tự động chèn sau khi sự việc đã xảy ra, vì vậy tôi khuyến nghị giữ tệp chỉ dẫn root ngắn gọn, tách các quy tắc dài theo từng tác vụ sang các tệp tham chiếu riêng, rồi chỉ định tuyến chúng khi cần.


🧠 Cách giải quyết như thế nào? (cách hoạt động từ góc nhìn người dùng)

Công cụ này không tóm tắt văn bản mà dùng phương pháp cắt trích đúng phần cần thiết từ nguyên văn.

  1. Khám phá cục bộ (Local Triage): Chạy trên máy của tôi qua Ollama bằng mô hình Gemma 4 2B gọn nhẹ. Mô hình cục bộ này nhanh chóng tìm đúng số dòng (tọa độ) khớp với câu hỏi của người dùng.
  2. Trích xuất nguyên văn (Raw Slicing): Một script Python dùng các số dòng đó để cắt ra những mảnh văn bản sạch từ đĩa, giữ nguyên bản gốc.
  3. Suy luận trên đám mây (Reasoning): Mô hình đám mây chính chỉ nhận các mảnh nguyên văn có mật độ thông tin cao sau khi đã loại bỏ nhiễu, cùng với sơ đồ cấu trúc tệp, để tập trung vào debug và viết code.

Vì truyền đi đúng nguyên văn chưa qua xử lý, công cụ có thể tận dụng 100% năng lực suy luận của mô hình đám mây trong khi vẫn giảm chi phí một cách đột phá.

Hiện tại công cụ hỗ trợ 3 chế độ: error_log, heavy_code, agent_context. agent_context là chế độ tìm đúng các dòng nguyên văn liên quan đến tác vụ hiện tại trong những tài liệu tham chiếu hướng dẫn agent dài như CLAUDE.md, AGENTS.md, GEMINI.md, .cursorrules, agent-context/*.md.


📊 Kết quả thử nghiệm thực tế trên PC của tôi

  • Log hạ tầng dung lượng lớn (2.000 dòng): giảm ngữ cảnh đầu vào từ 41.711 token xuống còn 131 token (tiết kiệm 99,69%, thời gian xử lý 5,37 giây).
  • Mã nguồn bug legacy (2.155 dòng): nén khối lượng ban đầu 7.520 token xuống chỉ 70 token để gửi đi (tiết kiệm 99,06%, thời gian xử lý 4,46 giây).

🛠️ Những điểm tiện lợi khi dùng trong công việc

  • Ngăn PC bị ì: Bạn có thể lo máy sẽ chậm đi khi dùng AI cục bộ. Công cụ này giải phóng ngay mô hình cục bộ khỏi bộ nhớ VRAM đúng vào thời điểm hoàn tất việc trích xuất tọa độ định tuyến.
  • Mở rộng ngữ cảnh ngược thông minh: Nếu đoạn code bị cắt ra quá hẹp khiến khó nắm được phụ thuộc trước sau, AI đám mây sẽ không trả lời kiểu đoán mò mà có sẵn một chốt an toàn trong prompt để yêu cầu ngược lại script rằng "hãy cắt lại một phạm vi rộng hơn".
  • Streaming cho tệp lớn: Ngay cả khi tệp quá lớn vượt quá dung lượng bộ nhớ của mô hình cục bộ, logic streaming ở backend vẫn tự động hoạt động bằng cách quét từ khóa và phần cuối tệp trước, nên vẫn an toàn.
  • Hỗ trợ Claude Code: Phiên bản mới nhất cũng kèm bootstrap CLAUDE.md dạng compact cho Claude Code. Có thể đặt các chỉ dẫn dài riêng cho Claude vào tệp tham chiếu riêng và dùng agent_context để định tuyến chúng.

Dự án được phát hành hoàn toàn miễn phí theo giấy phép MIT, và có thể đăng ký dùng ngay dưới dạng script độc lập hoặc skill cho OpenAI Codex. Trong Claude Code, bạn cũng có thể gọi cùng script router này bằng cách tham khảo bootstrap CLAUDE.md. Tôi hy vọng nó sẽ giúp tăng năng suất phát triển cho những ai thường xuyên debug log lớn hoặc xử lý code nặng.

Tôi rất cảm ơn nếu nhận được thêm nhiều phản hồi và ý kiến về kiến trúc hoặc tối ưu hóa prompt!

2 bình luận

 

Kỹ năng hay đấy, tôi đã thử dùng nhẹ một chút.
Thỉnh thoảng có trường hợp phát sinh lỗi do vi phạm cú pháp json khi tạo JSON để gửi bằng Python, và khi đổi sang 4b hoặc qwen2.5-coder:7b để dùng thì tỷ lệ lỗi đã giảm đi rõ rệt.

 
sleeplesshan 5 giờ trước

Ôi, cảm ơn bạn rất nhiều vì đã thử ngay sau khi mình đăng lên và còn để lại phản hồi so sánh cụ thể theo từng cấp độ model nữa!
Đúng như bạn nói, các model siêu nhỏ cỡ 2B dường như đôi khi có giới hạn là phá vỡ ràng buộc của system prompt và xuất ra JSON sai cú pháp trong những môi trường có log phức tạp hoặc lẫn nhiều ký tự đặc biệt. Nếu dư dả tài nguyên VRAM, thì rõ ràng dòng Qwen 2.5 Coder 7B hoặc Gemma 4B có vẻ tạo ra tọa độ định tuyến ổn định hơn rất nhiều.
Nếu những người khác khi thử nghiệm cũng gặp lỗi cú pháp JSON, thì có lẽ sẽ hữu ích hơn nếu chạy bằng cách đổi sang model cỡ lớn hơn như bên dưới thông qua thiết lập biến môi trường.
OLLAMA_MODEL=qwen2.5-coder:7b python3 scripts/router.py ...
Cảm ơn bạn đã chia sẻ ý kiến benchmark thực chiến quý giá.