Context Engineering trong n8n: Từ lý thuyết sang Workflow có thể Import chạy ngay (kèm JSON export)
Hôm 11/9 mình chia sẻ 3 kỹ thuật Context Engineering giúp giảm 40% token và tăng độ chính xác từ 71% lên 89%. Nhiều bạn hỏi: "Cụ thể node IF + Function viết code thế nào?", "Bảng Static/Dynamic Context schema ra sao?", "Có file workflow .json để import không?".
Hôm nay mình công khai toàn bộ: cấu trúc 2 bảng Google Sheets, code Function node tóm tắt lịch sử, cấu hình AI Agent node, và file workflow export .json các bạn tải về import vào n8n chạy thử ngay.
Một chủ shop thời trang nhắn mình tuần này: "Em đã tách Static/Dynamic theo bài trước, nhưng node IF check token mà em không biết viết code Function node tóm tắt. Em copy prompt tóm tắt từ mạng vào mà token vẫn không giảm được."
Vấn đề không phải prompt tóm tắt, mà là cách tính token trước khi gọi AI và cách ép model tóm tắt đúng format. Mình đo được trên workflow thực tế:
• Token/phiên: 2.400 → 1.380 (giảm 42.5%) • Latency: 2.8s → 1.6s • Cost/ngày: 180k → 102k VNĐ
Nguyên nhân thực: Function node countTokens dùng tiktoken nhầm model (cl100k_base vs o200k_base) khiến ước lượng sai, node IF không trigger tóm tắt đúng lúc. Cùng với prompt tóm tắt thiếu ràng buộc "chỉ trả về 5 bullet, không giải thích".
Giải pháp triển khai trong n8n gồm 4 kỹ thuật có code cụ thể:
Schema 2 bảng Google Sheets (Static + Dynamic Context) Bảng Static_Context: key (PK), category (process|template|policy|price), content, token_estimate, active (boolean). 12 dòng, nạp một lần khi agent khởi động. Bảng Dynamic_Context: session_id, customer_uid, intent, summary_bullets (JSON array), need_recall (boolean), turn_count, updated_at. Index trên session_id + need_recall=true.
Function node countTokens chuẩn xác (dùng tiktoken model o200k_base cho GPT-4o) Code Function node: const { encoding_for_model } = require('tiktoken'); const enc = encoding_for_model('gpt-4o'); const tokens = enc.encode($json.system_prompt + $json.dynamic_context + $json.user_message).length; return [{ json: { ...$json, token_count: tokens } }]; Node này đặt trước node IF check ngưỡng 3000 token.
Node IF + Function summarizeHistory có guardrail output IF condition: {{ $json.token_count > 3000 }} True branch → Function node gọi gpt-4o-mini voi system prompt: Bạn là tóm tắt viên. Nhiệm vụ: nén lịch sử chat thành ĐÚNG 5 bullet points. • Chỉ xuất 5 dòng bắt đầu bằng "• " • Không giải thích, không chào hỏi, không markdown • Giữ tên sản phẩm, giá, mã đơn, ngày giờ chính xác • Bỏ qua tin nhắn xã giao (cảm ơn, chào, ok) Output parse: split by newline bullet → array 5 phần tử → gán vào Dynamic_Context.summary_bullets.
AI Agent node với system prompt tối giản (chỉ 180 token) System prompt chỉ chứa: vai trò, ràng buộc output JSON schema, 3 ví dụ few-shot. Static Context nạp qua System Message parameter, Dynamic Context nạp qua Human Message parameter (không nhét vào system prompt).
Sơ đồ n8n hoàn chỉnh (import file .json ở Blog): • Webhook nhận tin nhắn • HTTP Request → countTokens Function node (tiktoken o200k_base) • IF: token_count > 3000?
- True: HTTP Request → summarizeHistory Function (gpt-4o-mini) → Update Dynamic_Context
- False: pass through • Google Sheets: Read Static_Context (filter active=true) • Google Sheets: Read Dynamic_Context (filter session_id + need_recall=true) • Merge: Build final context object • AI Agent (GPT-4o, temperature 0.3, max_tokens 800) • Structured Output Parser (Zod schema) • Google Sheets: Append log + update Dynamic_Context • Respond to Webhook
Kết quả thực tế sau 14 ngày chạy production cho 2 shop: • Token trung bình/phiên: 1.380 (giảm 42.5% so với baseline 2.400) • P95 latency: 1.6s (giảm từ 2.8s) • Chi phí API/ngày: 102.000đ (giảm từ 180.000đ) • Tỷ lệ escalation sang người thật: 5/ngày (giảm từ 14)
Nói ngắn gọn: Context Engineering không phải lý thuyết — là 4 node n8n, 2 bảng Sheets, 1 file JSON các bạn import chạy được hôm nay.
Chi tiết schema 2 bảng, code 2 Function node, file workflow .json export, và cách setup tiktoken trong n8n cloud/self-hosted mình để tại link Blog dưới phần bình luận nhé!
Anh em đã thử tách Static/Dynamic Context chưa? Node IF check token ở chỗ nào trong workflow của các bạn? Comment chia sẻ để cùng tối ưu nhé!
Bình luận
Schema 2 bảng Sheets, code Function node countTokens/summarizeHistory, file workflow .json import ngay: https://tyauto.name.vn/posts/2026-09-19-personal-feed-context-engineering-code.html
Hostinger VPS — n8n tự lưu trữ
Chạy n8n tự lưu trữ: workflow không giới hạn, số lệnh chạy đồng thời không giới hạn, dùng được node cộng đồng. Hoàn tiền trong 30 ngày. giảm tới 69%
Gigabyte RTX 5060 Ti Windforce MAX OC 16GB
Rẻ nhất trong nhóm 16GB VRAM. Đủ để tự host model local cỡ vừa và chạy n8n tại nhà mà không phải trả tiền API theo tháng. 14.309.000₫