Để tối ưu chi phí API cho Hermes Agent, cách hiệu quả nhất hiện nay là kết hợp OpenRouter với Prompt Caching. Khi đó, phần nội dung lặp lại ở mỗi lượt chạy chỉ bị tính khoảng 10% giá gốc thay vì 100%, nên hóa đơn có thể giảm rất mạnh khi agent chạy nhiều lượt liên tục. Bài viết này giải thích từng khái niệm, kèm các bước thực hiện và cách kiểm tra kết quả ngay trên bảng điều khiển OpenRouter.
Tại sao Hermes Agent tốn chi phí API hơn chatbot thông thường?
Mỗi lượt chạy đều gửi lại một “gói hành lý” lớn
Khi bạn chat với một chatbot bình thường, hệ thống chỉ gửi câu hỏi và một đoạn hướng dẫn ngắn. Hermes Agent thì khác. Trước khi bạn gõ chữ đầu tiên, Agent đã đính kèm bộ hướng dẫn hệ thống, danh sách công cụ, danh mục kỹ năng và các tệp ghi nhớ.
Theo một bài phân tích đăng tháng 9/2026, lượng dữ liệu gửi đi mặc định của Hermes Agent vào khoảng 16.000 token, trong đó riêng phần mô tả công cụ chiếm từ 8.000 đến hơn 12.000 token. Cộng đồng phát triển cũng ghi nhận con số tương tự: một số người dùng thấy prompt hệ thống mặc định nặng từ 16.000 đến 19.000 token.

Vòng lặp của agent nhân chi phí lên nhiều lần
Agent không chỉ trả lời một lần rồi dừng. Hermes sẽ suy nghĩ, gọi công cụ, đọc kết quả rồi suy nghĩ tiếp. Mỗi vòng như vậy lại gửi toàn bộ “gói hành lý” kia đi lần nữa. Một tác vụ đơn giản có thể kéo theo hàng chục lần gọi API, và chi phí tăng theo cấp số nhân mà người dùng khó nhận ra.
Prompt Caching là gì? Có thể giúp tối ưu chi phí API ra sao?
Định nghĩa: Prompt Caching là cơ chế lưu lại phần prompt đã được xử lý trước đó để những request tiếp theo có cùng phần nội dung đầu vào có thể tái sử dụng kết quả xử lý này.
- Không có Prompt Caching: System Prompt + Tools + Context + câu hỏi mới → tính lại toàn bộ
- Có Prompt Caching: Phần đã cache + câu hỏi mới → chủ yếu xử lý phần mới
Hãy hình dung bạn gửi một tập hồ sơ dày cho cùng một cơ quan nhiều lần trong ngày. Lần đầu, bạn nộp đầy đủ và trả phí lưu hồ sơ. Từ lần thứ hai, bạn chỉ cần nói “dùng lại tập hồ sơ hôm trước” và bên nhận chỉ thu một khoản phí rất nhỏ.
Prompt Caching hoạt động đúng như vậy. Hệ thống ghi nhớ phần đầu của prompt (hướng dẫn hệ thống, công cụ, ghi nhớ dài hạn) và những lượt sau chỉ tính giá ưu đãi cho phần đã lưu. Nhưng cũng cần điều kiện là phần đầu đó phải giống hệt lần trước.

Prompt Caching khác Response Caching ra sao?
Hai khái niệm này rất dễ nhầm lẫn.
Prompt Caching Response Caching Cache một phần input giống nhau Cache toàn bộ request và response Model vẫn tạo câu trả lời mới Trả lại response đã tạo trước đó Phù hợp hội thoại nhiều lượt Phù hợp request giống hệt nhau Giảm giá input token Cache hit có thể không phát sinh token mới Rất phù hợp AI Agent Phù hợp retry hoặc tác vụ lặp nguyên trạng
OpenRouter hiện hỗ trợ Response Caching bằng X-OpenRouter-Cache. Khi một request hoàn toàn giống request trước và cache vẫn còn hiệu lực, OpenRouter có thể trả lại response trực tiếp mà không gọi provider, đồng nghĩa không phát sinh token mới cho lần cache hit đó.
Hermes Agent cũng đã có cấu hình riêng cho OpenRouter Response Caching và tài liệu hiện tại ghi nhận cơ chế này được bật mặc định.
Cách tối ưu chi phí API cho Hermes Agent bằng OpenRouter và Prompt Caching
Bước 1: Kết nối Hermes Agent với OpenRouter
Tino đã có hướng dẫn riêng về phần này. Bạn có thể xem:
Sau khi Hermes Agent gọi model thành công qua OpenRouter, bạn có thể tiếp tục tối ưu Prompt Caching.
Bước 2: Chọn model phù hợp với Prompt Caching
Nếu mục tiêu chính là tận dụng cơ chế Prompt Caching được Hermes hỗ trợ trực tiếp, Claude là lựa chọn dễ triển khai.
Hermes Agent hiện tự nhận diện Claude và kích hoạt cơ chế cache_control khi model được gọi qua OpenRouter.
Một số model từ OpenAI, Google, DeepSeek và các provider khác cũng có cơ chế implicit caching ở phía provider. OpenRouter có thể tận dụng các cơ chế này tùy model và tuyến provider đang sử dụng.
Lưu ý: Không nên chỉ chọn model dựa trên mức giảm cache. Cần cân bằng thêm:
- Giá input.
- Giá output.
- Chất lượng phản hồi.
- Khả năng gọi tool.
- Context window.
- Tốc độ phản hồi.
- Mức độ phù hợp với workload.
Model rẻ hơn nhưng tạo output quá dài hoặc cần nhiều vòng sửa lại chưa chắc mang lại tổng chi phí thấp hơn.

Bước 3: Cấu hình TTL cho Prompt Caching
Hermes Agent hiện hỗ trợ 3 lựa chọn phổ biến:
prompt_caching:
cache_ttl: "5m"
hoặc:
prompt_caching:
cache_ttl: "1h"
Phiên bản hiện tại cũng hỗ trợ:
prompt_caching:
cache_ttl: "auto"
Cấu hình nằm trong file:
~/.hermes/config.yaml
Bạn có thể mở file bằng:
hermes config edit

Trong chế độ auto, Hermes sẽ lựa chọn TTL dựa trên loại phiên:
- Các phiên do người dùng tương tác trực tiếp có thể dùng TTL 1 giờ.
- Cron, subagent, webhook, API, batch và các tác vụ chạy máy với máy ưu tiên TTL 5 phút.
Với phần lớn người dùng, auto là lựa chọn hợp lý vì không cần tự thay TTL giữa nhiều loại workload.
Sau khi chỉnh cấu hình, hãy mở phiên Hermes mới hoặc khởi động lại gateway để bảo đảm cấu hình mới được tải.
Bước 4: Giữ model và phiên làm việc ổn định
Prompt Caching hoạt động hiệu quả nhất khi các request tiếp theo vẫn sử dụng cùng model và cùng tuyến provider. Hermes Agent hiện gửi session_id sang OpenRouter để hỗ trợ sticky routing tự động.
Tuy nhiên, một số thao tác vẫn có thể làm mất cache hiện tại, chẳng hạn:
- Đổi model giữa phiên.
- Chuyển provider.
- Fallback sang provider khác.
- Chuyển sang API key khác trong credential pool.
- Cache hết TTL.
Tài liệu Hermes Agent cũng lưu ý rằng việc đổi model hoặc đổi tài khoản API giữa phiên khiến request tiếp theo phải đọc lại context với mức giá input thông thường.
Vì vậy, không nên đổi model liên tục chỉ để tiết kiệm một vài request ngắn nếu phiên hiện tại đã có context rất lớn.
Bước 5: Giữ phần prompt dùng chung càng ổn định càng tốt
Prompt Caching chỉ hoạt động khi phần đầu prompt giống hệt giữa các lượt. Do đó, phần đầu của prompt nên ưu tiên các nội dung ít thay đổi:
- System prompt.
- Tool definitions.
- Schema.
- Hướng dẫn cố định.
- Skill.
- Tài liệu tham chiếu dùng xuyên suốt phiên.
Các nội dung thay đổi thường xuyên nên nằm về sau:
- Câu hỏi mới.
- Tool result mới.
- Timestamp.
- Trạng thái tạm thời.
- Dữ liệu phát sinh trong từng lượt.
Nếu phần đầu của request liên tục thay đổi, khả năng cache hit sẽ giảm.
Ngoài ra, bạn nên:
- Không bật/tắt công cụ giữa phiên
- Không sửa tệp ghi nhớ khi đang chạy tác vụ dài
- Giữ nhịp dưới 5 phút

Bước 6: Tận dụng Response Caching của OpenRouter
Ngoài Prompt Caching, Hermes Agent còn hỗ trợ OpenRouter Response Caching.
Cấu hình tương ứng:
openrouter:
response_cache: true
response_cache_ttl: 300
Trong đó: 300 giây = 5 phút
Tài liệu cấu hình hiện tại của Hermes ghi nhận response_cache: true và TTL mặc định 300 giây.
Response Caching đặc biệt hữu ích khi:
- Agent retry cùng request.
- Workflow bị chạy lại.
- Một tác vụ hỏi cùng dữ liệu nhiều lần.
- API client gửi request trùng nhau.
- Một bước trong pipeline bị thực thi lại.
Nếu request giống hoàn toàn và cache vẫn còn hiệu lực, OpenRouter có thể trả lại response đã lưu mà không phát sinh lượt inference mới.
Tuy nhiên, Response Caching và Prompt Caching vẫn là hai cơ chế độc lập.
Bước 7: Kiểm tra Prompt Caching có thực sự tiết kiệm chi phí hay không
Không nên chỉ bật cache rồi giả định rằng chi phí đã giảm. Bạn có thể kiểm tra trực tiếp trên trang Activity của OpenRouter.
Trong thông tin usage của request, trường cached_tokens cho biết lượng token đã được đọc từ cache.

OpenRouter còn cung cấp cache_write_tokens để xác định lượng token được ghi vào cache.
Nếu cached_tokens > 0 request đã có cache hit.
Ngoài ra, bạn cũng có thể kiểm tra cache_discount để xem tác động của cache đến chi phí request.
Với Claude qua OpenRouter, Hermes CLI cũng có thể hiển thị trạng thái dạng Prompt caching: ENABLED khi Prompt Caching được kích hoạt.
Bước 8: Đặt hạn mức chi tiêu để an tâm
Ngay cả khi đã tối ưu, Agent vẫn có thể rơi vào vòng lặp bất ngờ. Hãy nạp số tiền vừa phải và đặt giới hạn tín dụng cho từng API key trong phần quản lý key của OpenRouter. Cách này giúp chi phí không vượt tầm kiểm soát.
Prompt Caching có thể tiết kiệm bao nhiêu chi phí?
OpenRouter cho biết cached input hiện có thể có giá bằng khoảng 10% đến 50% input thông thường tùy provider. Với Claude Sonnet 4.6, ví dụ được OpenRouter công bố là:
Loại token Chi phí tham khảo Input thông thường 3 USD / 1 triệu token Cached input 0,30 USD / 1 triệu token Cache write 5 phút 3,75 USD / 1 triệu token Cache write 1 giờ 6 USD / 1 triệu token
Giả sử Hermes Agent có khoảng 10.000 token context lặp lại trong 6 lượt liên tiếp và đang sử dụng Claude Sonnet 4.6.
Theo mức giá được OpenRouter công bố tại thời điểm cập nhật:
- Input: 3 USD / 1 triệu token.
- Cache read: 0,30 USD / 1 triệu token.
- Cache write 5 phút: 3,75 USD / 1 triệu token.
Không sử dụng cache
6 lượt × 10.000 token = 60.000 token
Chi phí phần input lặp:
60.000 / 1.000.000 × 3 USD = 0,18 USD
Sử dụng Prompt Caching 5 phút
Lượt đầu ghi 10.000 token vào cache:
10.000 / 1.000.000 × 3,75 USD = 0,0375 USD
5 lượt tiếp theo đọc từ cache:
50.000 / 1.000.000 × 0,30 USD = 0,015 USD
Tổng:
0,0375 + 0,015 = 0,0525 USD
So với 0,18 USD khi không cache, phần context lặp lại trong ví dụ này giảm khoảng 71% chi phí input.
Đây chỉ là ví dụ minh họa. Tổng hóa đơn thực tế còn phụ thuộc vào:
- Token mới ở mỗi lượt.
- Output token.
- Tool calls.
- Model.
- Provider.
- TTL.
- Số lần cache được tái sử dụng.
- Giá API tại thời điểm sử dụng.
Prompt Caching mang lại lợi ích lớn nhất khi một lượng context lớn được tái sử dụng nhiều lần.
Nên chọn TTL 5 phút, 1 giờ hay Auto?
Có thể chọn nhanh theo bảng sau:
Kiểu sử dụng TTL phù hợp Chat liên tục 5mAgent loop nhanh 5mCron Job 5mWebhook 5mBatch/API tự động 5mNgười dùng chat và nghỉ vài phút 1hPhiên nghiên cứu dài 1hKhông muốn tự quản lý auto
Lưu ý: TTL dài hơn không phải lúc nào cũng rẻ hơn.
Những nguyên nhân khiến Prompt Caching không tiết kiệm như mong đợi
Prompt Caching có thể hoạt động kém hiệu quả trong một số trường hợp:
- Prompt quá ngắn: phần context chưa đủ lớn để provider tạo cache.
- TTL hết hạn: request tiếp theo xuất hiện quá muộn.
- Đổi model giữa phiên: cache của model cũ không thể tái sử dụng trực tiếp.
- Đổi API key: cache có thể gắn với tài khoản hoặc credential đang sử dụng.
- Provider thay đổi: request được chuyển sang endpoint chưa có cache.
- Prefix thay đổi: system prompt hoặc phần đầu context bị chỉnh sửa thường xuyên.
- Chỉ gửi một request: chi phí cache write có thể cao hơn lợi ích nhận được.
- Context liên tục thay đổi: tỷ lệ token có thể đọc từ cache thấp.

Một số cách giảm thêm chi phí API cho Hermes Agent (bổ sung)
Prompt Caching chỉ là một phần của bài toán tối ưu. Bạn có thể kết hợp thêm các biện pháp sau:
- Dùng model mạnh cho nhiệm vụ phức tạp và model rẻ hơn cho tác vụ đơn giản.
- Hạn chế đổi model giữa một phiên context lớn.
- Không đưa tài liệu dài vào prompt khi không thực sự cần.
- Chia Skill theo từng mục đích thay vì tải quá nhiều hướng dẫn cùng lúc.
- Tận dụng Context Compression của Hermes với các hội thoại dài.
- Dùng model giá thấp hơn cho các auxiliary task như compression hoặc tác vụ phụ.
- Kiểm tra OpenRouter Activity để tìm workflow tiêu thụ token bất thường.
- Đặt giới hạn ngân sách API.
- Tối ưu độ dài output nếu không cần phản hồi quá dài.
Hermes Agent hiện còn hỗ trợ provider_routing để ưu tiên provider theo giá:
provider_routing:
sort: "price"
Thiết lập này yêu cầu OpenRouter ưu tiên tuyến provider rẻ hơn trong các tuyến phù hợp.
Tuy nhiên, với hội thoại dài đã có cache tốt, việc duy trì tuyến ổn định đôi khi quan trọng hơn việc cố giảm một lượng rất nhỏ giá request đơn lẻ.

Khi nào không cần quá quan tâm đến Prompt Caching?
Prompt Caching không phải lúc nào cũng tạo ra khác biệt lớn.
Bạn có thể ít quan tâm đến cơ chế này nếu:
- Chỉ gửi các prompt ngắn.
- Mỗi tác vụ chỉ có một request.
- Context thay đổi hoàn toàn giữa các request.
- Dùng model có input rất rẻ.
- Phần lớn chi phí đến từ output token.
- Workflow chủ yếu xử lý các nhiệm vụ độc lập.
Ngược lại, Prompt Caching đáng quan tâm khi Hermes Agent hoạt động như một trợ lý liên tục, coding agent, research agent, workflow nhiều bước hoặc AI Worker chạy dài hạn.

Kết luận
Tối ưu chi phí API cho Hermes Agent không nhất thiết phải chuyển sang model rẻ nhất. Với các workflow sử dụng context lớn và lặp lại nhiều lần, OpenRouter kết hợp Prompt Caching có thể giảm đáng kể chi phí input mà vẫn giữ nguyên model đang sử dụng. Nếu đang triển khai Hermes Agent cho các tác vụ chạy liên tục, Cron Job, nghiên cứu, coding hoặc workflow tự động, Prompt Caching là một trong những cách đơn giản nhất để kiểm soát chi phí API khi quy mô sử dụng tăng lên.
Các bài viết liên quan:
- Hướng dẫn cài đặt và sử dụng Hermes Agent Desktop
- Hướng dẫn kết nối Google Workspace với Hermes Agent
- Hướng dẫn kết nối Google Chat với Hermes Agent A-Z
- Hướng dẫn kết nối Slack với Hermes Agent trên VPS Hermes
- Hướng dẫn kết nối Kilo Code với Hermes Agent
- Hướng dẫn kết nối Telegram với Hermes Agent trên VPS Hermes
- Hướng dẫn kết nối tài khoản Zalo cá nhân với Hermes Agent trên VPS Hermes
- Hướng dẫn kết nối Discord với Hermes Agent trên VPS Hermes
- Cách viết Skill cho Hermes Agent: Đúng chuẩn, dễ kích hoạt
- Hermes Agent nên chạy Local hay VPS?
Những câu hỏi thường gặp
Hermes Agent có tự bật Prompt Caching không?
Có. Với Claude chạy qua OpenRouter hoặc Anthropic API hỗ trợ cache_control, Hermes Agent hiện có thể tự kích hoạt Prompt Caching. Người dùng chủ yếu cần lựa chọn TTL phù hợp.
Nên chọn Prompt Caching 5 phút hay 1 giờ?
Nếu Agent chạy nhiều request liên tiếp, 5m thường phù hợp hơn. Nếu người dùng thường nghỉ hơn 5 phút giữa các lượt, 1h có thể tăng tỷ lệ cache hit. Chế độ auto phù hợp khi muốn Hermes tự lựa chọn theo loại workload.
Cắt bớt công cụ và kỹ năng của Hermes có làm Agent kém thông minh đi không?
Chỉ khi bạn tắt nhầm thứ đang cần. Hãy tắt những nhóm công cụ không dùng (như đọc to văn bản hoặc ủy quyền cho agent con) và giữ lại công cụ cốt lõi cùng tệp ghi nhớ dự án. Nếu cần tính năng nào, bạn bật lại sau.
Prompt Caching có làm câu trả lời của Hermes Agent cũ đi không?
Không. Prompt Caching chỉ tái sử dụng phần tính toán cho context đã xuất hiện trước đó. Model vẫn xử lý thông tin mới và tạo phản hồi mới cho từng request.
Dùng OpenRouter có đắt hơn gọi thẳng API của hãng không?
Giá mô hình trên OpenRouter nhìn chung theo giá của nhà cung cấp, nhưng có thể phát sinh phí nạp tiền hoặc khác biệt tùy thời điểm. Bù lại, bạn có một tài khoản duy nhất, đổi mô hình nhanh và theo dõi chi phí tập trung. Hãy kiểm tra mục giá và phí hiện hành trên OpenRouter trước khi quyết định. Bạn cũng có thể xem lại bài viết OpenRouter là gì để hiểu rõ hơn cách tính phí.
