2.9 KiB
Product Context: Hermes-Agent
Why This Project Exists
Hermes-Agent addresses several key challenges in the AI agent space:
-
Unified Tool Interface - Provides a clean, consistent interface for LLMs to use various tools (web, terminal, browser, vision, etc.) without requiring custom integration for each model provider.
-
Training Data Generation - Enables efficient generation of high-quality tool-calling trajectories for fine-tuning LLMs, with features like batch processing, checkpointing, and trajectory compression.
-
Flexible Deployment - Supports multiple execution environments (local, Docker, Singularity, Modal, SSH) to accommodate different security and isolation requirements.
-
Developer Experience - Offers a beautiful, interactive CLI with kawaii-style feedback that makes working with AI agents enjoyable.
Problems It Solves
For AI Researchers
- Data Generation at Scale: Parallel batch processing with content-based checkpointing for fault tolerance
- Clean Trajectories: Trajectory compression to fit token budgets while preserving important information
- Toolset Distributions: Probability-based tool selection for varied training data
For Developers
- Tool Orchestration: Logical grouping of tools into toolsets (research, development, debugging, etc.)
- Session Persistence: Conversation history and session logging for debugging
- Multi-Model Support: Works with any OpenAI-compatible API (OpenRouter, local models, etc.)
For MLOps
- Skills System: On-demand knowledge documents for specific tools/frameworks (Axolotl, vLLM, TRL, etc.)
- Sandboxed Execution: Terminal commands can run in isolated environments (Docker, Singularity, Modal)
- Configurable Backends: Easy switching between local and cloud execution
How It Should Work
User Flow (CLI)
- User launches
./hermes - Beautiful welcome banner displays with caduceus logo, model info, and available tools
- User types a natural language request
- Agent processes request, potentially calling tools with animated feedback
- Agent responds with results, conversation continues
- Session is automatically logged for debugging
User Flow (Batch Processing)
- User prepares JSONL file with prompts
- Runs
batch_runner.pywith distribution and worker count - System processes prompts in parallel, saves checkpoints
- Completed trajectories saved to
data/<run_name>/trajectories.jsonl - Optional: compress trajectories with
trajectory_compressor.py
User Experience Goals
- Delightful Interaction: Kawaii ASCII faces, animated spinners, cute messages
- Informative Feedback: Clear progress indication during tool execution
- Configurable Personalities: From "helpful" to "pirate" to "Shakespeare"
- Easy Configuration: YAML config file + environment variables + CLI flags
- Graceful Degradation: Missing tools/APIs don't break the system, just disable features