AI coding chạy local: Dựng trợ lý lập trình bằng Ollama và Continue
Với lập trình viên, AI coding chạy local là cách dựng trợ lý lập trình ngay trên máy cá nhân hoặc workstation nội bộ, giúp hỏi đáp code, gợi ý chỉnh sửa, tạo embedding cho tài liệu dự án và thử nghiệm agent mà không phải phụ thuộc hoàn toàn vào dịch vụ đám mây. Một stack dễ bắt đầu là dùng Ollama làm runtime model cục bộ, sau đó kết nối Continue vào IDE để có trải nghiệm coding assistant quen thuộc.
Bài viết này đi theo hướng thực dụng: dựng được luồng làm việc, hiểu điểm cần đo hiệu năng, biết giới hạn của Continue hiện tại và có lộ trình mở rộng bằng API, embedding, tool calling hoặc LangChain khi dự án lớn hơn.
Mục lục bài viết1. Vì sao nên dựng AI coding chạy local?2. Kiến trúc gợi ý cho trợ lý lập trình local3. Các bước dựng trợ lý lập trình bằng Ollama và Continue
4. Checklist triển khai nhanh cho lập trình viên
1. Vì sao nên dựng AI coding chạy local?
AI coding local phù hợp khi bạn muốn trợ lý lập trình nằm gần mã nguồn, dễ thử nhiều model, kiểm soát runtime và đo hiệu năng theo máy thật. Ollama hiện cung cấp REST API cục bộ mặc định tại http://localhost:11434, với các endpoint quan trọng như POST /api/generate, POST /api/chat và POST /api/embed. Đây là nền tảng đủ gọn để bắt đầu từ chat code cơ bản rồi nâng dần lên RAG hoặc agent có tool.

AI coding local phù hợp khi bạn muốn trợ lý lập trình nằm gần mã nguồn
Ở phía giao diện lập trình, Continue là coding agent có ba dạng phát hành: CLI @continuedev/cli trên npm, extension VS Code qua Marketplace và OpenVSX, cùng plugin JetBrains. Điểm cần lưu ý là repository continuedev/continue hiện ở trạng thái read-only và không còn được bảo trì tích cực; vì vậy bạn nên xem Continue như một lựa chọn tích hợp hiện có, đồng thời chuẩn bị phương án thay thế hoặc tự cấu hình thêm nếu stack sản xuất cần vòng đời dài.
2. Kiến trúc gợi ý cho trợ lý lập trình local
Một cấu hình dễ hiểu gồm bốn lớp:
- Runtime model: Ollama chạy model local và phục vụ API trên máy.
- Giao diện coding: Continue kết nối vào VS Code, JetBrains hoặc CLI để lập trình viên dùng ngay trong workflow.
- Truy hồi ngữ cảnh: endpoint POST /api/embed tạo embedding cho một hoặc nhiều đoạn văn bản, đảm nhiệm phần truy hồi của stack RAG chạy cục bộ.
Agent và automation: POST /api/chat hỗ trợ tool calling qua tham số tools chứa định nghĩa hàm; model có thể sinh tool call có cấu trúc và kết quả được đưa lại vào lịch sử hội thoại.
Với cấu trúc này, lập trình viên có thể bắt đầu bằng hỏi đáp code trong IDE, sau đó bổ sung kho tài liệu dự án, README, convention nội bộ hoặc log lỗi để trợ lý trả lời sát ngữ cảnh hơn.
3. Các bước dựng trợ lý lập trình bằng Ollama và Continue
Bước 1: Chuẩn bị Ollama làm runtime local
Sau khi cài và chạy Ollama, bạn cần kiểm tra các model đã có trong máy và model nào đang được nạp trong bộ nhớ. Ollama cung cấp nhóm endpoint quản trị model gồm GET /api/tags để liệt kê model đã có, GET /api/ps để xem model đang nạp trong bộ nhớ, cùng các endpoint POST /api/show, POST /api/pull, POST /api/create và DELETE /api/delete.
Với bài toán AI coding, đừng chỉ nhìn tên model. Bạn nên kiểm tra khả năng chạy ổn trên máy của mình, tốc độ phản hồi khi sinh code dài, độ trễ token đầu tiên và mức tiêu thụ bộ nhớ. Ollama đang cập nhật rất nhanh: v0.32.9 ngày 11/08/2026 bổ sung NVIDIA Nemotron 3.5 Lightning, model mixture-of-experts 30B với 3B tham số active, kèm hỗ trợ kiến trúc Nemotron 3. Muse Glimmer, model đa phương thức 30B của Meta định vị cho agent workload, được hỗ trợ ban đầu qua MLX engine trên Apple Silicon ở v0.32.7 ngày 10/08/2026, rồi mở rộng ra mọi nền tảng gồm NVIDIA và AMD ở v0.32.8 cùng ngày.
Nếu bạn dùng Apple Silicon và quan tâm Qwen3.5, Ollama v0.32.6 ngày 04/08/2026 cải thiện hiệu năng GPU Apple cho Qwen3.5 bằng speculative decoding qua MTP head tự động, đồng thời chuẩn hóa định dạng streaming /v1/chat/completions khớp OpenAI. Đến v0.32.10 ngày 12/08/2026 ở nhánh pre-release, Ollama đổi mặc định repeat_penalty từ 1.1 xuống 1.0 cho model không khai báo tham số này và cải thiện prefill NVFP4 trên MLX khoảng 7–8% ở một số model.
Bước 2: Kết nối Continue vào IDE
Tiếp theo, cài Continue theo môi trường bạn dùng: extension VS Code, plugin JetBrains hoặc CLI. Mục tiêu là để Continue gửi yêu cầu chat, sửa code hoặc giải thích đoạn mã về runtime local thay vì mặc định dùng dịch vụ bên ngoài.
Khi cấu hình, hãy tách rõ ba nhu cầu:
- Chat trong IDE: hỏi về file đang mở, giải thích lỗi, đề xuất refactor.
- Autocomplete hoặc chỉnh sửa: cần phản hồi nhanh, ngắn, ổn định.
- Agent task dài: cần model bền hơn với ngữ cảnh dài, có thể kết hợp tool calling hoặc truy hồi tài liệu.
Do Muse Glimmer được Ollama định vị cho agent workload, cụ thể là coding agent và trợ lý cá nhân chạy dài, đây là nhóm model đáng theo dõi nếu bạn đang thử nghiệm trợ lý lập trình dạng agent. Tuy nhiên, bài toán thực tế vẫn cần đo trên máy của bạn, vì dossier nguồn không cung cấp số tokens/giây tuyệt đối hay yêu cầu VRAM/RAM tối thiểu cho từng model.
Bước 3: Đo hiệu năng trước khi dùng hằng ngày
Với AI coding local, cảm giác “nhanh” không chỉ là số tokens/giây. Bạn nên đo ít nhất hai thứ: độ trễ token đầu tiên và tốc độ sinh tiếp theo. MLPerf Client v1.6 phát hành ngày 06/04/2026 đo workload LLM chạy cục bộ trên PC qua các backend Windows ML, llama.cpp trên Windows và macOS, MLX với Metal, cùng llama.cpp với Metal. MLPerf Client báo cả tính đáp ứng lẫn thông lượng; time to first token là thời gian chờ trước token đầu tiên và giá trị thấp hơn là tốt hơn.
Nếu dùng hệ sinh thái llama.cpp để đo sâu hơn, llama-bench báo kết quả theo tokens/giây kèm trung bình và độ lệch chuẩn qua nhiều lần lặp, mặc định 5 lần. Công cụ này không tính thời gian tokenization và sampling vào phép đo, nên bạn cần hiểu đây là phép đo phần suy luận chứ không phản ánh toàn bộ trải nghiệm ứng dụng.
llama-bench cũng tách hai chế độ đo khác bản chất: prompt processing, ký hiệu pp, mặc định 512 token; và text generation, ký hiệu tg, mặc định 128 token; ngoài ra có chế độ kết hợp pg. Với trợ lý lập trình, prompt processing quan trọng khi bạn nhét nhiều file hoặc diff dài vào ngữ cảnh, còn text generation quan trọng khi model sinh hàm, test case hoặc bản vá dài.
Bước 4: Chọn định dạng và mức lượng tử hóa hợp lý
Khi chạy model cục bộ, định dạng và lượng tử hóa ảnh hưởng trực tiếp đến dung lượng, tốc độ và độ chính xác. GGUF được thiết kế để triển khai một file duy nhất, hỗ trợ nạp bằng mmap, đồng thời tự chứa đầy đủ thông tin cần thiết để load model, gồm cả tokenizer. Điều này rất tiện khi bạn muốn quản lý model local gọn và dễ di chuyển giữa các máy.
GGUF định nghĩa nhiều họ lượng tử hóa: nhóm legacy như F32, F16, Q4_0, Q4_1, Q5_0, Q5_1, Q8_0, Q8_1; nhóm K-series như Q2_K, Q3_K, Q4_K, Q5_K, Q6_K, Q8_K; nhóm IQ như IQ2_XXS, IQ3_XXS, IQ4_NL; cùng các định dạng BF16, MXFP4, TQ1_0 và TQ2_0. Ý nghĩa thực tế là bạn có nhiều mức đánh đổi giữa dung lượng và độ chính xác, nhưng không nên suy đoán chất lượng chỉ từ tên lượng tử hóa. Hãy đo tác vụ thật: đọc codebase, sửa bug, viết test và giải thích lỗi build.
Bước 5: Mở rộng thành RAG và agent nội bộ
Khi chat code cơ bản đã ổn, bước nâng cấp đáng giá nhất là RAG cục bộ. Bạn có thể tạo embedding cho tài liệu dự án bằng POST /api/embed, lưu vào vector store, rồi truy hồi các đoạn liên quan khi lập trình viên hỏi về convention, module hoặc lỗi đã từng xử lý.
Nếu cần orchestration phức tạp hơn, LangChain là framework xây dựng agent và ứng dụng LLM, cấp phép MIT, cung cấp giao diện chuẩn cho model, embedding, vector store và retriever, kèm LangGraph cho luồng agent có kiểm soát. Cách tiếp cận hợp lý là để Ollama xử lý model local, còn framework agent đảm nhiệm luồng gọi công cụ, truy hồi, kiểm soát trạng thái và ghi nhận kết quả.
Tool calling trong POST /api/chat mở ra các kịch bản hữu ích cho lập trình viên: gọi công cụ tìm file, đọc tài liệu nội bộ, chạy kiểm tra tĩnh, tạo checklist review hoặc truy xuất issue liên quan. Tuy nhiên, hãy giới hạn quyền của tool theo nguyên tắc tối thiểu, đặc biệt với thao tác ghi file, chạy lệnh hoặc chạm vào repository thật.
4. Checklist triển khai nhanh cho lập trình viên
- Cài Ollama và xác nhận API local hoạt động ở http://localhost:11434.
- Tải một model phù hợp cho tác vụ coding, sau đó kiểm tra danh sách model bằng endpoint quản trị.
- Cài Continue trên IDE đang dùng, rồi cấu hình để gửi yêu cầu về runtime local.
- Đo riêng độ trễ token đầu tiên, prompt processing và text generation trước khi chọn model dùng hằng ngày.
- Ưu tiên định dạng model dễ quản lý, ví dụ GGUF, và thử nhiều mức lượng tử hóa thay vì đoán theo tên.
- Bổ sung RAG bằng embedding cho tài liệu dự án nếu câu trả lời cần bám sát codebase.
- Chỉ bật tool calling cho các công cụ đã giới hạn quyền và có log rõ ràng.
Kết luận
Dựng AI coding chạy local bằng Ollama và Continue là hướng khả thi cho lập trình viên muốn có trợ lý lập trình gần codebase, dễ thử model và kiểm soát dữ liệu tốt hơn. Ollama cung cấp runtime và API local, Continue đem lại lớp giao diện trong IDE, còn embedding, tool calling và LangChain giúp mở rộng thành RAG hoặc agent nội bộ khi cần.
Điểm mấu chốt là đừng chọn model theo cảm tính. Hãy đo đúng: time to first token cho độ phản hồi, prompt processing cho ngữ cảnh dài, text generation cho khả năng sinh code, rồi mới quyết định cấu hình dùng hằng ngày. Với AI coding local, cấu hình tốt nhất không phải cấu hình mạnh nhất trên giấy, mà là cấu hình trả lời đủ nhanh, đủ đúng và đủ ổn định trên chính workflow lập trình của bạn.
