- Aparna Dhinakaran phân tích 9 thành phần harness chuẩn, cộng 3 subsystem ngoài framework của Hermes Agent.
- Provider abstraction được khen là vượt Claude Code.
- Summary budget scale 20% với floor 2000 token và ceiling 12000.
- Session storage dùng SQLite + FTS5 + WAL, mỗi compression tạo child session với lineage chain.
- Gap còn lại: delegate_task chưa thành first-class orchestration plane với durable child-run control.
TL;DR
Co-founder của Arize AI, vừa đăng phân tích về Hermes Agent theo framework 9 thành phần "What is an Agent Harness" của chính Arize. Kết luận: Hermes implement đủ cả 9, và còn thêm 3 subsystem nằm ngoài frame - messaging gateway, profile system và cron first-class. Một điểm khen thẳng: provider abstraction "much better than Claude Code". Một gap thẳng: delegate_task chưa lên được first-class orchestration plane.
Khung 9 thành phần là gì
Bài "What is an Agent Harness" của Arize đề xuất tách rõ model và harness. Model chỉ reason; harness lo persistent memory, retry logic, schema validation, permission policy và quản lý state của task dài. Industry 2026 đã chuyển từ model-centric sang infrastructure-centric design: model giỏi tới đâu cũng không bù được scaffolding kém.

9 thành phần harness chuẩn theo Arize cộng 3 subsystem Hermes thêm: messaging gateway, profile system, cron first-class.
Chín thành phần Aparna dùng làm thước đo:
Outer iteration loop
Context management và compression
Skills và tools management
Subagent management
Built-in pre-packaged skills
Session persistence và recovery
System prompt assembly + project context injection
Lifecycle hooks
Permission và safety layer
Bốn điểm Hermes làm tốt hơn số đông
Provider abstraction: vượt Claude Code
Cùng một runtime Hermes drive được chat-completions API, Anthropic Messages, Codex Responses, out-of-process Codex app-server và Bedrock. Transport adapter normalize hết tool-call format và quirk của từng provider. Aparna nói thẳng: với những ai cần một harness open hỗ trợ mọi model, Hermes tốt hơn Claude Code.
Compression có cấu trúc, không phải trim tay
Hermes không chỉ cắt context cũ. Auxiliary model summarize turn cũ, head và tail được token budget bảo vệ, tool output cũ hơn threshold thì prune trước summarization. Summary budget scale ~20% nội dung bị compress, sàn 2000 token, trần 12000 token - đủ để compression nhỏ không tốn context và compression lớn vẫn có chỗ thở.
Quan trọng hơn: compression là session lifecycle event. Mỗi lần compress, Hermes đóng row SQLite session hiện tại, tạo child session seed bằng summary, rotate session ID, ghi parent-child lineage. Hội thoại dài compress nhiều lần thành một lineage chain chứ không phải transcript bị rewrite. Plugin context engine và memory provider được notify mốc boundary - đây là pattern hiếm so với các harness Aparna review.
Tách tool registration khỏi tool exposure
Tool đăng ký vào central registry tại import time. Một toolset layer riêng quyết định model thấy tool nào trong từng run, scope theo platform, scenario, và còn narrow tiếp cho delegated run. Mỗi profile có footprint enabled riêng. Hệ quả: thư viện tool có thể rộng, nhưng surface model thấy mỗi turn vẫn đủ hẹp để kiểm soát cost và safety.
Session là infrastructure, không phải transcript
State session lưu trong SQLite với FTS5 search và WAL journaling (fallback cho filesystem không hỗ trợ WAL). Track source tag cho turn, parent-child lineage qua compression, và metadata gateway dùng để resolve routing trước khi model chạy.
Hệ quả thiết kế quan trọng: CLI, messaging platform và scheduled job đều attach được vào cùng một session plane. Một tin nhắn có thể route đến đúng session trước inference. Cron job có thể write vào session ngay cả khi không có terminal active. Aparna gọi đây là cú departure xa nhất của Hermes so với editor-first harness.
Hermes còn expose session_search tool cho model gọi - đẩy quyết định context management vào loop của model thay vì chỉ inject tĩnh.
Prompt assembly ba tầng
Hermes compose system prompt thành ba tier rõ ràng trong code:
Stable: identity (SOUL.md), tool guidance cho enabled tool, skills index, environment hint (Tmux/container detection), platform hint.
Context: đọc AGENTS.md, CLAUDE.md, .cursorrules từ cwd, có chạy prompt-injection scanning trước khi load.
Volatile: memory snapshot, user profile, external memory block, timestamp với metadata model/provider.
Tiering rõ trong code = invariant dễ reason. Stable cứ stable, context bám cwd, volatile thay đổi từng turn. Rebuild prompt tied vào compression - giữ prefix cache-friendly cho turn bình thường.
Ba subsystem ngoài framework
Aparna chỉ ra 3 thứ Hermes có mà framework 9 thành phần không cover:
1. Messaging gateway. Adapter cho Telegram, Discord, Slack, WhatsApp và nhiều platform khác, route traffic qua shared session model. Aparna nhận xét pattern này gần với UX OpenClaw từng làm thành công cho long-running agent interaction.
2. Profile system. Một profile là một isolated agent root. Hai profile trên cùng một máy hành xử như hai agent khác nhau hoàn toàn về state và footprint - hữu ích cho multi-tenant hoặc tách hẳn workload.
3. Cron first-class. Job durable, gate bằng cùng permission machinery như session interactive, deliver qua gateway path, isolated per profile. Hermes ép unattended operation thành phần chính của kiến trúc, không phải script ngoại biên.
Gap còn lại: orchestration chưa first-class
Đây là phần Aparna phê bình rõ nhất. Delegation primitive đã ổn: child run có task ID riêng, terminal context riêng, return structured summary, dangerous command default deny trong delegated context, recursion depth cap.
Nhưng lifecycle ownership vẫn dính: phần lớn child work sống dưới parent call path. Parent xong thì child cũng xong. Chưa có durable, externally steerable child-run plane với run ID, lifecycle management explicit, external steering, cleanup survive parent completion.
Aparna nhấn: substrate đã sẵn (session infrastructure + gateway routing). Bước architectural tự nhiên kế tiếp là promote child run thành first-class control-plane object. Đây cũng là gap Hermes thua OpenClaw về orchestration layer.
Ý nghĩa cho dev đang chọn harness
Bài phân tích có giá trị vì đến từ một nhà khoa học observability đang build infra cho enterprise agent - Aparna không có động cơ shill Hermes hay dìm Claude Code. Vài take-away thực dụng:
Nếu bạn cần harness multi-provider thật sự (không chỉ wrapper), Hermes là lựa chọn open mạnh hiện tại.
Nếu workload của bạn rời khỏi editor (messaging, scheduled job, multi-tenant), session-as-infrastructure của Hermes hơn hẳn editor-first harness.
Nếu workload nặng về subagent orchestration với child run dài hạn, Hermes chưa đủ - chờ release sắp tới.
Pattern "prompt 3 tier" và "compression làm lifecycle event" là hai design pattern đáng copy ngay cả khi không dùng Hermes.
Kết
Aparna đóng bài bằng câu "pace of shipping is insane". NousResearch ship rất nhanh và substrate đã chắc - chỉ còn việc promote delegation thành orchestration first-class. Với những ai theo dõi open harness ecosystem, đây là một trong những bài phân tích đáng đọc nhất tháng này, đặc biệt khi đặt cạnh series "What is an Agent Harness" và "Swarm management in agent harnesses".
