Do mắc bệnh OCD nên khi chơi món gì là tôi hay setup full đồ, full tool toys để làm. Từ chăm hoa , nuôi rau đến âm nhạc nghệ thuật. Tuy nhiên nghề chính là IT thì vẫn phải tập trung cho món này
Claude Code
A local observability stack for monitoring Claude Code usage, costs, and productivity metrics using OpenTelemetry, Prometheus, Loki, and Grafana.
Claude Code → OpenTelemetry Collector (4317) → Prometheus (metrics) → Grafana (8000) → Loki (logs) ↗Ngoài ra, tool này có đo luôn độ hiệu quả của việc sử dụng AI agent từ Vibe coding, repos, số lượng prompt... Tóm lại là đủ thứ tá lả, tuỳ theo yêu cầu của sếp mà tôi config collect tính toán thông tin
Có 1 vài chiêu tôi đang dùng để tiết kiệm token
AI agent có khái niệm Context Window, là giới hạn về lượng dữ liệu mà một mô hình ngôn ngữ lớn (LLM) như Claude hay GPT có thể "ghi nhớ" và xử lý trong một phiên làm việc tại một thời điểm nhất định.
Context windows càng lớn thì đòi hỏi tài nguyên tính toán (RAM/GPU) rất khủng khiếp và càng đốt token. Nguyên nhân của Windows context dài là prompt không clear, chat back and forth một vấn đề quá dài có 1 vài chiêu để giảm context windows là sử dụng /compact và /clear để nén các phần thảo luận cũ hoặc /clear Để reset hoàn toàn ngữ cảnh khi chuyển sang một task mới. Nên viết sẵn 1 Claude.md để tóm tắt source code và các bộ prompt chi tiết chỉ định luôn cho em nói cách output để tiết kiệm.
Làm AI agent thì khái niệm MCP để access tool nghe nhiều rồi, nhưng mà Agent mà càng tích hợp nhiều tool → càng tốn token → càng chậm → càng đắt. Vì cách tiếp cận MCP truyền trống nó như thế này
Toàn bộ tên tool, mô tả, schema JSON, tham số… từ tất cả MCP servers, đều bị nhét vào context.
Thói quen add nhiều tools, agent, nhiều MCP quá mức cần thiết sẽ đốt token rất nhanh, nên tốt nhất chỉ dùng những thứ thật sự cần, còn lại xóa hết. Đừng thấy trên Facebook giới thiệu plugin này repos kia mà đem về xài luôn
Đây là kiểu chơi some, nhét tất cả toys vào 1 lỗ thì đương nhiên là context windows tăng vọt, token đốt như cháy rừng Cali, gọi là Token bloat, overload context
ví dụ 1 Claude nó load từng này tool agents
Dynamic MCP
Thế nên mới đẻ ra khái niệm Dynamic MCP và Code Mode
Hiểu đơn giản thế này
Bạn đưa ra yêu cầu: Kiểm tra danh sách các em hàng ở khu vực Trần Duy Hưng, recommend 1 em có những skill sau ..., nếu AI chưa có quyền truy cập, nó có thể tự động khởi tạo hoặc yêu cầu kết nối với một MCP Server thiendia location Trần Duy Hưng Hà Nội để tìm kiếm thông tin thay vì load 1 loạt các MCP không cần thiết lên, cái này gọi là Dynamic MCP
Vậy còn Code Mode thì thế nào
Ví dụ thế này
Prompt trên có 2 steps, step 1 load MCP thiendia để get list danh sách em hàng, đổ output vào Model, rồi gọi tool recommendation. Nếu list danh sách có hàng trăm nghìn thì lại quá tải context window. Cho nên Code Mode sẽ làm theo cách
LLM viết code gọi MCP thiendia lẫn recommendation chạy trong sandbox rồi trả về kết quả. Như vậy, không phải đổ dữ liệu 2 lần vào Model giảm được token cost. Script chạy 1 lần duy nhất rồi đổ vào model để phân tích
Thật ra tiết kiệm token search Google hỏi ChatGPT cũng đc suggest cả đống tuy nhiên đây là cách practical mà tôi đang áp dụng
Model Auto-routing
Thay vì gửi mọi câu hỏi đến một mô hình đắt tiền và mạnh nhất (như Claude 3.5 Opus hay GPT-4o), hệ thống sẽ tự động phân tích câu hỏi đó và chọn mô hình phù hợp nhất để xử lý.
Anh em có thói quen chọn model xịn như Sonet Opus, version latest dùng cho oách, nhưng thực tế có nhiều tình huống gọi là dao mổ trâu giết gà. Có những task có thể dùng model thấp hơn nhiều để tiết kiệm chi phí. Copilot hay Kiro có mode Auto để tự động lựa chọn model hợp lý giảm chi phí. Tuy nhiên, xài built-in cũng tạm tạm, còn tôi thì chọn cách tự build riêng. Claude nó chỉ hỗ trợ 1 vài models có sẵn, trong khi còn cả mớ model free trên mạng thì lại ko có
Giải pháp tôi sử dụng là xây dựng LiteLLM
Nó biến Claude Code từ một công cụ chỉ dùng cho Anthropic trở thành một "Universal AI Agent" có khả năng điều khiển mọi model (GPT-4o, Gemini 1.5 Pro, Llama 3) thông qua một cổng duy nhất.
claude config set --global env \
\ '{"ANTHROPIC_BASE_URL": "https://litellm.*.com",
\ "ANTHROPIC_AUTH_TOKEN": "sk-..."}'
claude config set --global model "model-name"
Các prompt trong Claude Code sẽ được chuyển tới LiteLLM để sử dụng các model mà tôi config trong LiteLLM. Nó giúp tôi giải quyết dc chi phí token cho các tác vụ đơn giản
Sau khi có thể sử dụng thêm các model free để tối ưu chi phí, bước sau là xây dựng Auto routing model, cơ chế hoạt động như sau
Entry Point: Tiếp nhận prompt từ người dùng.
The Router (Phân loại): Đánh giá độ khó, mục đích và dự đoán model phù hợp.
Model Pool: Danh sách các LLM API (GPT-4o, Claude 3.5, Gemini, Llama 3).
Fallback & Aggregator: Xử lý lỗi và trả kết quả.
Bài sau sẽ nói chi tiết hơn về cách implement routing model này
0 Nhận xét