· Cấp 1 (file này) → Cấp 2 → Cấp 3 → Cấp 4.
· Mỗi cấp có thể học độc lập, nhưng nên học theo thứ tự để đạt kết quả tốt nhất.
· Phù hợp cho developer, tech lead, kỹ sư phần mềm muốn dùng AI coding agent thực chiến.
· Hiểu đúng OpenCode là gì và không phải là gì.
· Biết OpenCode khác ChatGPT/Claude.ai và GitHub Copilot ở điểm nào.
· Xác định được OpenCode có phù hợp với công việc của bạn không.
OpenCode là một AI coding agent mã nguồn mở — không phải chatbot, không phải công cụ hoàn thành code tự động, không phải Google thông minh hơn. Đây là một tác nhân AI có thể đọc toàn bộ dự án của bạn, lập kế hoạch, thực hiện thay đổi thật, chạy lệnh và kiểm tra kết quả — tất cả bằng ngôn ngữ tự nhiên.
"OpenCode là một lập trình viên AI ngồi trong terminal của bạn, hiểu cả codebase, và chờ bạn giao việc."
Khác với ChatGPT ở chỗ: nó sống trong dự án của bạn, không phải ở ngoài.
BẠN │ mô tả mục tiêu bằng ngôn ngữ tự nhiên ▼ OPENCODE ┌─────────────────────────────────────────┐ │ 1. Đọc AGENTS.md và ngữ cảnh dự án │ │ 2. Phân tích codebase liên quan │ │ 3. Lập kế hoạch thực hiện │ │ 4. Dùng tools (đọc/ghi file, chạy...) │ │ 5. Trả kết quả + báo cáo │ └─────────────────────────────────────────┘ │ diff, output, kết quả test ▼ BẠN (review → chấp nhận hoặc yêu cầu sửa)
| OpenCode KHÔNG phải... | Vì sao quan trọng phải biết điều này |
|---|---|
| Không phải công cụ thay thế developer | Bạn vẫn phải hiểu code, review kết quả và chịu trách nhiệm về sản phẩm |
| Không phải "magic button" chạy một phát xong | Task phức tạp cần chia nhỏ, hướng dẫn rõ, kiểm tra từng bước |
| Không phải AI biết tất cả mọi thứ | Chỉ biết những gì có trong codebase và prompt bạn cung cấp |
| Không phải công cụ an toàn nếu dùng bừa | Có thể sửa file, chạy lệnh — phải kiểm soát quyền cẩn thận |
| Không phải dịch vụ trả lời câu hỏi chung | Mạnh nhất khi làm việc với codebase cụ thể, task rõ ràng |
· "Gõ một câu là xong cả tính năng phức tạp." → Thực tế: cần nhiều vòng hướng dẫn và review.
· "AI không bao giờ sai." → Thực tế: AI mắc lỗi logic, cần developer review trước khi deploy.
· "Không cần biết code nữa." → Thực tế: bạn vẫn cần hiểu để review và phát hiện lỗi của AI.
| Tiêu chí | ChatGPT / Claude.ai | GitHub Copilot | OpenCode |
|---|---|---|---|
| Vị trí làm việc | Browser của ChatGPT hoặc Claude.ai — ngoài codebase | Trong IDE, inline | Terminal, trong repo |
| Hiểu codebase | Chỉ phần bạn paste vào chat ChatGPT/Claude.ai | File hiện tại | Toàn bộ project |
| Thực thi thay đổi | Không — cả ChatGPT lẫn Claude.ai chỉ gợi ý | Gợi ý inline | Sửa file thật |
| Chạy lệnh terminal | Không | Không | Có |
| Kiểm tra kết quả | Không | Không | Có (chạy test, build) |
| Nhớ quy ước dự án | Không — mỗi chat ChatGPT/Claude.ai là mới | Một phần (context) | Có (AGENTS.md) |
| Phù hợp nhất cho | Hỏi đáp, viết nội dung trên ChatGPT hoặc Claude.ai | Gợi ý code nhanh | Engineering workflow |
| Giá tham khảo | Free / $20/tháng (cả ChatGPT Plus và Claude Pro) | $10/tháng | Free + model cost |
· Cần đọc hiểu một repo lạ nhanh — OpenCode đọc hàng nghìn dòng và tóm tắt trong 5 phút.
· Sửa bug ảnh hưởng nhiều file liên quan — OpenCode track đủ dependencies.
· Refactor module lớn — AI theo dõi consistency xuyên suốt, ít bỏ sót.
· Viết test cho code chưa có test coverage.
· Tạo boilerplate và scaffold theo pattern của dự án hiện tại.
· Task dưới 5 phút làm tay — overhead setup không đáng.
· Cần creative decision về UX/business — AI không biết context kinh doanh.
· Debug môi trường đặc biệt cần physical access — AI không truy cập được.
· Codebase không có Git — không có safety net khi AI làm sai.
· Hiểu cách OpenCode "nhìn" dự án của bạn.
· Nắm vững hai chế độ: Khám phá (Plan) và Thực thi (Build).
· Biết vai trò của bạn trong vòng lặp làm việc với AI.
OpenCode không "biết" dự án theo nghĩa con người — nó đọc và xử lý. Khi mở OpenCode trong thư mục, nó sẽ: (1) quét cấu trúc thư mục, (2) đọc AGENTS.md nếu có, (3) đọc file liên quan theo context của task, (4) dùng Git history khi cần.
· AI chỉ biết những gì được cung cấp. Muốn AI làm đúng → cung cấp đủ context.
· AGENTS.md là cách hiệu quả nhất để "dạy" AI biết quy ước dự án của bạn.
| Plan Mode (Khám Phá) | Build Mode (Thực Thi) | |
|---|---|---|
| Mục đích | Phân tích, tìm hiểu, lập kế hoạch | Thực sự thay đổi file và chạy lệnh |
| Thay đổi file? | Không | Có — file thật bị sửa |
| Mức rủi ro | Thấp An toàn để thử | Cao hơn Cần review kỹ |
| Dùng khi nào | Chưa rõ phạm vi, muốn hỏi trước | Đã rõ plan, muốn AI làm |
| Chuyển mode | Nhấn Tab trong TUI | Nhấn Tab trong TUI |
· Chưa thể mô tả rõ "người thật sẽ làm gì từng bước" → dùng Plan thêm một vòng.
· Đã có plan rõ ràng, đã approve → mới chuyển sang Build.
· Sau Build: luôn đọc diff trước khi chấp nhận thay đổi. Không bao giờ bỏ qua bước này.
BẠN giao việc với prompt rõ ràng
↓
OPENCODE phân tích → đề xuất hoặc thực hiện
↓
BẠN review kết quả (diff, output, log)
↓
┌────┴────┐
OK Chưa OK
↓ ↓
Commit Hướng dẫn lại
/deploy → quay lại bước 1
· Bỏ qua bước "review kết quả" — tin tưởng AI 100% mà không kiểm tra.
· Đây là nguyên nhân số 1 gây bug production khi dùng AI coding agent.
· Quy tắc: "AI báo xong" ≠ "thực sự xong". Phải chạy test và đọc diff.
| Bạn chịu trách nhiệm | OpenCode hỗ trợ |
|---|---|
| Hiểu business requirement | Translate requirement thành code changes |
| Xác định phạm vi và ràng buộc | Tìm file liên quan và lập kế hoạch |
| Review kết quả và approve | Implement theo plan đã được approve |
| Chạy test và verify | Chạy test tự động và báo kết quả |
| Quyết định deploy hay không | Tạo commit message chuẩn |
| Chịu trách nhiệm về sản phẩm | Không thể chịu trách nhiệm — đó là của bạn |
· Nắm thuần thục 14 thuật ngữ này trước khi bắt đầu dùng OpenCode.
· Không cần ghi nhớ máy móc — hiểu ý nghĩa thực tế của từng thuật ngữ.
| Thuật ngữ | Giải thích thực tế | Ví dụ cụ thể |
|---|---|---|
| Repo (Repository) | Kho chứa toàn bộ source code, tài liệu và lịch sử thay đổi của một dự án. | Thư mục my-saas-app/ với tất cả file code, README, .git/ |
| Codebase | Tổng thể tất cả code nguồn của một dự án. | Khi nói "đọc codebase" = đọc toàn bộ code |
| Entrypoint | Điểm bắt đầu chạy của chương trình. File/hàm được gọi đầu tiên. | main.py, index.js, app.go, Program.cs |
| Diff | Sự khác biệt giữa code cũ và mới. Dòng xanh = thêm, dòng đỏ = xóa. | git diff hiển thị: +retry=3; -retry=1 |
| Thuật ngữ | Giải thích thực tế | Ví dụ cụ thể |
|---|---|---|
| Prompt | Câu lệnh / yêu cầu bạn gửi cho AI. Chất lượng prompt quyết định chất lượng kết quả. | "Tìm lỗi trong hàm calculateTotal() và đề xuất fix" |
| Context | Tất cả thông tin AI đang nắm: file đã đọc, lịch sử chat, AGENTS.md, prompt. | Context = AGENTS.md + 3 file đã đọc + 5 tin nhắn trước |
| Agent | Một phiên bản AI được cấu hình để thực hiện loại task cụ thể. | Plan agent phân tích, Build agent sửa code |
| Subagent | Agent phụ chạy trong nền để xử lý một phần task. | Dùng subagent tìm tất cả file liên quan đến payment |
| Session | Một phiên làm việc với OpenCode từ lúc mở đến lúc đóng. | Mở opencode → làm việc → đóng terminal = 1 session |
| Thuật ngữ | Giải thích thực tế | Ví dụ cụ thể |
|---|---|---|
| AGENTS.md | File markdown ở root project. OpenCode đọc tự động. Như "hợp đồng" với AI. | AGENTS.md ghi: "build bằng npm run build, test bằng jest" |
| MCP | Model Context Protocol — chuẩn kết nối với công cụ và dịch vụ bên ngoài. | Kết nối OpenCode với GitHub, Slack, database nội bộ |
| Tool | Công cụ cụ thể AI có thể gọi để thực hiện hành động. | read_file, write_file, run_command, web_search |
| Token | Đơn vị đo độ dài text AI xử lý. ~750 từ tiếng Anh = 1.000 token. | Context window 200K token ≈ 150.000 từ ≈ 500 trang A4 |
| Context window | Giới hạn tổng lượng thông tin AI xử lý được trong một lần. | Khi đầy: /compact hoặc tách session mới |
| Lệnh | Chức năng | Khi nào dùng |
|---|---|---|
/init | Phân tích project và tạo AGENTS.md tự động | Lần đầu mở OpenCode trong dự án mới |
/compact | Nén lịch sử chat, giữ thông tin quan trọng | Khi context đạt ~70% hoặc AI bắt đầu "quên" |
/clear | Xóa toàn bộ lịch sử chat, bắt đầu session mới | Khi chuyển sang task hoàn toàn khác |
/undo | Hoàn tác thay đổi gần nhất (cả file và message) | Khi kết quả Build không đúng ý |
/help | Xem danh sách tất cả lệnh có sẵn | Khi không nhớ cú pháp lệnh |
· Nắm công thức 4 thành phần để viết prompt cho mọi tình huống.
· Nhận ra và sửa được các lỗi prompt phổ biến.
· Có prompt mẫu thực tế dùng được ngay.
OpenCode mạnh hay yếu phụ thuộc phần lớn vào chất lượng prompt. Cùng một công cụ, người viết prompt tốt đạt kết quả trong 1 lần, người viết prompt kém phải làm đi làm lại 5–10 lần.
| Prompt yếu → Kết quả mơ hồ | Prompt mạnh → Kết quả ngay từ lần đầu |
|---|---|
| AI đoán ý → thường sai | AI hiểu đúng → đúng ngay lần đầu |
| Phải sửa đi sửa lại nhiều lần | Tiết kiệm thời gian, context sạch |
| Khó debug khi kết quả sai | Dễ xác định vấn đề nằm ở đâu |
| Thành phần | Câu hỏi cần trả lời | Ví dụ thực tế |
|---|---|---|
| ① VAI TRÒ | AI đang đóng vai gì? | "Hãy đóng vai senior backend engineer với kinh nghiệm về distributed systems..." |
| ② NHIỆM VỤ | Cần làm gì cụ thể? Bắt đầu bằng động từ. | ...review hàm processPayment() trong file payments/processor.ts... |
| ③ NGỮ CẢNH | Ràng buộc, điều kiện, file liên quan, điều không được làm? | ...hệ thống dùng Stripe API v3, không thay đổi interface public... |
| ④ ĐẦU RA | Kết quả mong muốn trông như thế nào? | ...trả về: (1) list vấn đề [CRITICAL/WARNING/SUGGEST], (2) code fix. |
# Ví dụ prompt thực tế — SaaS payment system
"Hãy đóng vai senior backend engineer [VAI TRÒ]
có kinh nghiệm về payment systems.
Review hàm processPayment() trong [NHIỆM VỤ]
file payments/processor.ts.
Dùng Stripe API v3, Node.js 20, TS strict. [NGỮ CẢNH]
KHÔNG đổi function signature.
Trả về: [ĐẦU RA]
1. Vấn đề: [CRITICAL/WARNING/SUGGEST]
file:dòng — mô tả — cách fix
2. Code fix cho [CRITICAL] items
3. Test cases cần thêm"
| # | Lỗi phổ biến | Cách sửa |
|---|---|---|
| 01 | "Sửa bug" (quá ngắn) | Mô tả: bug ở đâu, triệu chứng gì, điều kiện tái hiện, file nào |
| 02 | "Cải thiện code" (mơ hồ) | Xác định: cải thiện về gì? Performance? Readability? Security? |
| 03 | Không nói file nào được phép sửa | Luôn ghi: "Chỉ sửa file X và Y. Không đụng đến Z." |
| 04 | Không có tiêu chí hoàn thành | Thêm: "Hoàn thành khi test A, B, C pass" |
| 05 | Gộp nhiều task vào 1 prompt | Tách thành nhiều prompt riêng, mỗi prompt 1 mục tiêu |
| 06 | Không nói tech stack | Ghi rõ: "dùng React 18, TypeScript strict, Tailwind CSS v3" |
| 07 | Không nhắc backward compatibility | Thêm: "Không breaking change với API v1" |
| 08 | Không nói output format | Xác định: code, list, table, hay báo cáo? |
| 09 | Prompt quá dài, nhiều yêu cầu trộn lẫn | Chia thành Phase 1, Phase 2 rõ ràng |
| 10 | Không nói ngôn ngữ trả lời | Thêm: "Trả lời bằng tiếng Việt" nếu cần |
· Hiểu rõ những gì OpenCode không thể làm để không kỳ vọng sai.
· Biết các rủi ro thực tế và cách kiểm soát chúng.
| Giới hạn | Chi tiết | Cách làm việc xung quanh |
|---|---|---|
| Context window có hạn | Khi context đầy, AI "quên" thông tin cũ và chất lượng giảm | /compact kịp thời; chia task lớn thành nhiều session nhỏ |
| Không nhớ giữa các session | Mỗi lần mở OpenCode mới là bắt đầu lại từ đầu | Viết AGENTS.md kỹ; dùng handoff note giữa sessions |
| Có thể hallucinate (bịa) | AI có thể tự tin đề xuất giải pháp sai | Luôn verify bằng test; không tin AI về API của lib lạ |
| Không biết context thực tế | Không biết server đang chạy gì, data thật ra sao | Cung cấp context cụ thể trong prompt hoặc AGENTS.md |
| Không có "common sense" về business | AI không biết feature này quan trọng thế nào | Bạn phải đưa business context vào prompt rõ ràng |
| Rủi ro | Mức độ | Cách phòng ngừa |
|---|---|---|
| AI sửa file ngoài phạm vi | Cao | Ghi rõ file được phép sửa; cấu hình permissions; đọc diff trước commit |
| Code AI tạo ra có bug | Trung bình | Luôn chạy test sau mỗi thay đổi; review kỹ critical path |
| AI xóa / sửa logic quan trọng | Cao | Refactor từng phần nhỏ; test sau mỗi bước; dùng Git branch |
| Leak credentials | Nghiêm trọng | Cấu hình .opencode/ignore; không cho AI đọc file secrets |
| Phụ thuộc quá nhiều vào AI | Dài hạn | Luôn review và hiểu code AI tạo ra |
· Project đang dùng Git — không có Git = không có safety net khi AI làm sai.
· Có branch riêng cho task — không làm trực tiếp trên main/master.
· File .env và credentials đã được thêm vào .gitignore.
· Biết cách dùng git diff và git checkout -- . để hoàn tác.
· Kiểm tra hiểu biết bằng bài thực hành cụ thể.
· Chuẩn bị tư duy đúng trước khi bước vào Cấp 2.
· Cấp 1 là về tư duy và khái niệm, không phải thực hành kỹ thuật.
· Cài đặt và thực hành với công cụ thật bắt đầu từ Cấp 2.
| # | Task | Phù hợp? | Lý do |
|---|---|---|---|
| 1 | Đọc 50 file và tóm tắt kiến trúc hệ thống mới | ______ | __________________ |
| 2 | Quyết định tên sản phẩm cho startup | ______ | __________________ |
| 3 | Tìm tất cả chỗ trong code dùng API deprecated | ______ | __________________ |
| 4 | Design màu sắc cho UI/UX của ứng dụng | ______ | __________________ |
| 5 | Thêm rate limiting vào tất cả API endpoints | ______ | __________________ |
| 6 | Viết unit test cho module authentication | ______ | __________________ |
| 7 | Debug lỗi chỉ xảy ra trên server production | ______ | __________________ |
1: Phù hợp — Đọc file hàng loạt là thế mạnh của OpenCode.
2: Không — Quyết định sáng tạo về business cần con người.
3: Phù hợp — Tìm kiếm pattern trong codebase lớn.
4: Không — Creative design cần aesthetic judgment.
5: Phù hợp — Thêm cross-cutting concern vào nhiều file.
6: Phù hợp — Viết test là task lặp lại, có pattern rõ.
7: Không — Cần access vào server thật và biết context infra.
Viết lại các prompt yếu dưới đây thành prompt mạnh theo công thức 4 thành phần:
# Prompt yếu 1: "sửa bug login" # Prompt mạnh của bạn: "________________________________________________________________ ________________________________________________________________" # Prompt yếu 2: "tối ưu database" # Prompt mạnh của bạn: "________________________________________________________________ ________________________________________________________________" # Prompt yếu 3: "thêm tính năng xuất Excel" # Prompt mạnh của bạn: "________________________________________________________________ ________________________________________________________________"
☐ Giải thích được OpenCode khác ChatGPT/Claude.ai ít nhất 3 điểm cụ thể.
☐ Liệt kê và giải thích được 10/14 thuật ngữ không cần nhìn tài liệu.
☐ Phân biệt được Plan mode và Build mode, biết khi nào dùng cái nào.
☐ Viết được prompt theo công thức 4 thành phần cho 3 tình huống khác nhau.
☐ Xác định được 3 rủi ro của OpenCode và cách phòng ngừa.
☐ Biết khi nào KHÔNG nên dùng OpenCode.
· Bạn check được ít nhất 5/6 mục trên.
· Có thể giải thích OpenCode cho người khác mà không cần nhìn tài liệu.
· Đã chuẩn bị một repo nhỏ để thực hành từ Cấp 2.
| Thuật ngữ | Giải thích |
|---|---|
| Agent Teams | Nhiều AI agent chạy song song để xử lý task phức tạp nhanh hơn |
| API Key | Mã xác thực để dùng AI model qua API |
| Auto-compact | Tính năng tự động nén context khi gần đầy |
| Bash / Shell | Ngôn ngữ lệnh phổ biến trong Linux/macOS terminal |
| Branch | Nhánh riêng trong Git để làm việc tách biệt với code chính |
| Build mode | Chế độ OpenCode thực sự thay đổi file — đối lập với Plan mode |
| CI/CD | Hệ thống tự động chạy test và deploy khi có code mới |
| CLI | Command Line Interface — giao diện dòng lệnh trong terminal |
| Context window | Giới hạn lượng thông tin AI xử lý được trong một lần (token). |
| Custom command | Lệnh tự tạo để tái sử dụng prompt, giống macro. |
| Diff | Bảng so sánh khác biệt giữa hai phiên bản code. |
| Edit tool | Công cụ cho phép AI thay đổi nội dung file. |
| Endpoint | Đường dẫn API cụ thể nhận request từ client. |
| Hallucination | AI bịa thông tin nghe có vẻ đúng nhưng sai sự thật. |
| IDE | Môi trường lập trình tích hợp (VS Code, JetBrains...). |
| LLM | Large Language Model — mô hình ngôn ngữ lớn (Claude, GPT...). |
| Lint | Công cụ phát hiện lỗi cú pháp / style trong code. |
| Merge | Hợp nhất nhánh code này vào nhánh khác trong Git. |
| MCP | Model Context Protocol — chuẩn kết nối AI với tool / data nguồn ngoài. |
| Plan mode | Chế độ OpenCode chỉ lập kế hoạch, KHÔNG sửa file. |
| Prompt | Câu lệnh / mô tả bạn nói với AI để giao việc. |
| Pull Request (PR) | Yêu cầu hợp nhất code, kèm review trước khi merge. |
| Read tool | Công cụ cho phép AI đọc nội dung file. |
| Refactor | Cải thiện cấu trúc code mà không đổi chức năng. |
| Repository (repo) | Kho chứa toàn bộ code và lịch sử của 1 dự án. |
| Session | Một phiên làm việc với AI, có context riêng từ lúc mở tới khi đóng. |
| Skill | Khối kiến thức / quy tắc tái sử dụng được AI nạp khi cần. |
| Stacktrace | Danh sách các bước dẫn tới lỗi khi chương trình crash. |
| System prompt | Prompt ngầm định, đặt tính cách / quy tắc cho AI ngay khi mở session. |
| Token | Đơn vị đếm độ dài input/output của AI; 1 token ≈ 0.75 từ tiếng Anh. |
| Tool call | Lượt AI gọi 1 công cụ (read, edit, bash...) để thực thi tác vụ. |
| TUI | Terminal UI — giao diện chữ chạy trong terminal. |
· Đọc qua bảng từ điển và hiểu trên 70% thuật ngữ.
· Đã trả lời được câu hỏi "Khi nào tôi nên / không nên dùng OpenCode?".
· Đã chuẩn bị máy tính (Linux/macOS hoặc WSL trên Windows) sẵn sàng cài đặt.
Hoàn thành Cấp 1 · Nền Tảng OpenCode
Bước tiếp theo: Cấp 2 — Cài Đặt & Bắt Đầu Thực Hành
📱 Bot mua hàng 24/7: @TroLyAIThucChien_bot
💬 Zalo trao đổi: 0985 438 373 ·
✉️ Email: thuanktqd.mba@gmail.com
⏰ Hỗ trợ 1-1: Chủ Nhật 9:00–12:00 (giờ Việt Nam)
© 2026 Tạ Quang Thuận · AI Thực Chiến · Tài liệu độc quyền