AI & Agents

Hermes Agent File Limits: Context Constraints, Subagent Memory, and MCP Storage

A Hermes Agent file limit is the maximum document size or context payload that Nous Research's Hermes Agent can parse into memory or pass between subagents without context degradation. While Hermes models support up to 131,072 tokens, context references enforce a 25% soft warning and a 50% hard refusal cap. Stacking raw documents inside recursive tool loops saturates memory. Decoupling storage into indexed Fast.io workspaces via MCP enables targeted semantic retrieval without prompt bloat.

Tom Langridge 18 min read Updated
Managing Hermes Agent context limits and subagent memory with external MCP workspace storage

What Is the Hermes Agent File Limit?

Nous Research documents that context references in Hermes Agent enforce a hard limit of 50% of the active context length, outright refusing expansion and returning the prompt unchanged whenever an injected document payload exceeds that boundary. In multi-turn autonomous execution, file handling operates under very different constraints than standard file upload widgets.

A Hermes Agent file limit is the maximum document size or context payload that Nous Research's Hermes Agent can parse into memory or pass between subagents without context degradation.

Nous Research Hermes Agent is an open source, MIT-licensed agent framework designed to execute complex tasks across local environments, remote servers, and messaging networks. Unlike closed SaaS assistants that mask file management behind conversational interfaces, Hermes Agent exposes raw model reasoning, system shells, and execution tools directly to developers. When running Hermes Agent on top of Hermes 3 models, which span 8B, 70B, and 405B parameter architectures, the model sets a native context ceiling of 131,072 tokens.

However, file constraints in Hermes Agent rarely stem from a single static setting. Instead, file operations hit four distinct architectural boundaries:

  1. Context Reference Boundaries: Users can inject local files, directories, and web pages directly into chat messages using the @ reference syntax (such as @file:path/to/doc.txt or @folder:src/). Hermes Agent evaluates the token weight of the referenced content against the active model context window. If the injected file consumes more than 25% of the total context length, Hermes appends a soft warning but proceeds with expansion. If the file consumes 50% or more of the context length, Hermes outright refuses expansion and returns the prompt unmodified. Directory inspections via @folder: cap at 200 files, truncating excess entries with - ..., while git history injections via @git: cap at 10 commits. Sensitive directories such as ~/.ssh/, ~/.aws/, and $HERMES_HOME/.env are blocked from file injection, and binary files are rejected using MIME type inspection and null-byte scanning.

  2. Gateway and IPC Transfer Ceilings: When developers interact with Hermes Agent through desktop interfaces, web dashboards, or remote gateway daemons, files traverse application transport layers. The backend API server enforces a default request body ceiling via MAX_REQUEST_BYTES of 10 MB. In desktop runtimes, Electron IPC file reads and dashboard filesystem Data URLs enforce safety caps around 16 MB. When communicating over Uvicorn WebSocket connections, the default frame size limit is set to 16 MB (ws_max_size). Because binary files base64-encode with an approximate one-third size expansion, a raw file exceeding 12 MB will saturate the 16 MB WebSocket frame limit, causing socket disconnections or dropped payloads.

  3. Operating System File Descriptors: When Hermes Agent runs as a long-lived server process or handles background messaging gateways, it manages open sockets, SQLite state databases (state.db), and active tool sessions. On macOS and Linux systems, default process limits can restrict open files to 256 descriptors. Hermes Agent configures nofile_soft_limit: 4096 during startup to prevent system errors, clamping the adjustment against the host operating system's hard limit.

  4. Model Working Memory Saturation: Even when a document bypasses gateway and reference caps, injecting thousands of lines into the active prompt crowds out tool schemas, system personas, and chain-of-thought reasoning buffers. In multi-turn tool loops, every injected token is re-evaluated on every subsequent turn, causing attention dispersion and instruction drift.

The following comparison table details how file boundaries operate across Hermes Agent subsystems:

Execution Mechanism Document or Payload Ceiling Operating System or Runtime Layer Document Retrieval Behavior Primary Failure Mode
Inline Context Reference (@file:) 50% of active context length CLI tokenizer and prompt expander Full text inline injection under attached context Hard expansion refusal; message returned unchanged
Directory Inspection (@folder:) 200 files maximum Filesystem tree walker Metadata and directory listing Silent truncation of entries beyond 200 files
Gateway WebSocket Upload 16 MB frame ceiling (~12 MB raw file) Uvicorn WebSocket server Base64 encoded payload transfer Socket disconnection; 1006 connection closed
HTTP Gateway Request Body 10 MB request limit (MAX_REQUEST_BYTES) FastAPI HTTP server Multipart form or JSON payload HTTP 413 Payload Too Large error
Subagent Tool Delegation Dynamic prompt budget Process memory and tool arguments Serialized JSON arguments Child agent context exhaustion; argument truncation
External Fast.io Workspace 25 GB (Starter) to 100 GB (Enterprise) Remote cloud workspace via MCP Hybrid semantic vector and metadata search Clean query pagination without prompt bloat

Understanding these stacked limits demonstrates why treating an LLM context window as a document repository creates operational bottlenecks. Production agent architectures decouple document persistence from active reasoning loops.

How Context Constraints and Subagent Delegation Affect File Handling

Hermes Agent context windows fill rapidly when raw documents over 25,000 tokens are injected directly into active tool sessions. In autonomous problem solving, an agent does not simply read a document once and answer a question. The agent engages in an iterative execution loop: it inspects code, runs diagnostic shell commands, reviews outputs, and synthesizes intermediate results.

Every action appends new content to the transcript. Because transformer models are stateless, the runtime reconstructs the full prompt history on every turn. In Hermes Agent, the token budget must support several competing operational components:

  • System Personas and Identity: The core agent identity defined in ~/.hermes/SOUL.md, safety guidelines, and base operational directives remain permanently resident in context across every turn.
  • Active Tool Schemas: Hermes Agent uses ChatML function-calling schemas to interact with the host system. Registering tool suites for terminal execution, web browsing, file management, and external APIs consumes between 3,000 and 8,000 tokens before any task execution begins.
  • Project Context Rules: Hermes Agent automatically discovers repository files like .hermes.md, AGENTS.md, and .cursorrules, loading coding guidelines and project boundaries into memory.
  • Execution History and Tool Payloads: Every command execution, standard output stream, and error trace accumulates in turn history.
  • Scratchpad Reasoning Traces: Chain-of-thought scratchpad blocks generated during complex reasoning consume working memory.

When a user injects a large technical document directly into this stream, the available buffer for tool operations shrinks dramatically. In a model with a 128,000-token context window, injecting a 40,000-token PDF leaves less than half the window for active computation. As total context utilization approaches maximum capacity, models suffer from attention dispersion, often referred to as the lost-in-the-middle phenomenon. The agent struggles to extract specific clauses located in the middle of long documents and frequently misidentifies arguments required for tool execution.

Subagent Delegation Bottlenecks

To handle complex multi-step objectives, Hermes Agent provides the delegate_task tool. This mechanism spawns child subagents to execute focused subroutines in parallel. While subagents execute with isolated context windows, transferring file data between parent and child agents introduces significant memory friction.

When a parent agent attempts to pass a large document to a child agent, the naive approach passes the raw text inside the delegate_task tool arguments:

{
  "tool": "delegate_task",
  "arguments": {
    "task": "Analyze this technical specification for compliance gaps",
    "context": "--- BEGIN 50-PAGE SPECIFICATION DUMP --- ..."
  }
}

This pattern triggers a compounding failure mode. First, serializing a multi-megabyte string into JSON tool arguments inflates memory consumption on the host runtime. Second, the entire document payload remains embedded in the parent agent's turn history, consuming prompt tokens on every subsequent turn the parent performs while waiting for the child to complete. Third, the child agent begins its execution with its own context window heavily occupied by the raw document dump, leaving minimal headroom for its own reasoning and tool loops.

Short-Term Memory Boundaries

Hermes Agent maintains persistent cross-session memory through structured files in ~/.hermes/memories/, notably MEMORY.md and USER.md. The built-in memory management tool allows the agent to record user preferences, project facts, and operational learnings across sessions.

However, these memory stores enforce strict character limits, typically configured around a 2,200-character cap per entry. When an agent attempts to write raw file contents, data schemas, or document summaries into MEMORY.md, the runtime triggers soft warnings or hard truncation. Attempting to use memory files as makeshift document stores corrupts the agent's core memory bank, displacing essential user preferences and operational facts.

To scale beyond these boundaries, subagents must exchange lightweight file references rather than raw document payloads. By storing files in an external workspace, the parent agent passes only a document pointer or query handle. The subagent then searches and reads only the exact passages required for its assigned task.

Connecting Hermes Agent to Fast.io Persistent Storage via MCP

Fast.io workspace intelligence indexes files on upload or cloud sync (Google Drive, Dropbox, Box, OneDrive), enabling Hermes Agent to retrieve targeted passages via MCP. Instead of forcing raw documents through CLI context expanders or saturating subagent memory, developers can connect Hermes Agent directly to an external Fast.io workspace.

Fast.io provides an intelligent workspace platform built for autonomous agents and human teams. When documents live in a Fast.io workspace, the platform automatically parses, chunks, and indexes them using a hybrid search engine combining full-text search, semantic vector retrieval, and metadata filtering. The assistant connects through the remote Model Context Protocol (MCP) server over Streamable HTTP, allowing Hermes Agent to query external files dynamically.

Hermes Agent runs as a server process on local workstations, VPS instances, Docker containers, or cloud compute environments like Modal. Because Hermes operates in a headless server environment without an interactive browser login window, it authenticates to Fast.io using a scoped API key passed in request headers.

Configuring the Fast.io MCP Server in Hermes Agent

To connect Hermes Agent to Fast.io, declare the remote server endpoint in your Hermes configuration file located at ~/.hermes/config.yaml. The Fast.io remote MCP server address for general assistant runtimes is https://mcp.fast.io/mcp/tools. Add the connection under the mcpServers block:

mcpServers:
  fastio:
    url: "https://mcp.fast.io/mcp/tools"
    headers:
      Authorization: "Bearer ${FASTIO_API_KEY}"

Store your API key in ~/.hermes/.env to prevent committing secrets to version control:

FASTIO_API_KEY=your_fastio_scoped_api_key_here

Developers can review complete setup instructions at mcp.fast.io/docs and examine the full tool specifications in mcp.fast.io/skill.md.

The Consolidated MCP Toolset

Once connected, Hermes Agent accesses a consolidated MCP toolset organized into distinct operational areas:

  • workspace and workspace_manage: Query organization workspaces, inspect membership, and configure workspace settings.
  • storage and storage_manage: Read folder hierarchies, search indexed documents, fetch metadata, move files, and execute deletions. Write operations, including advisory file locking, run through storage_manage.
  • upload and upload_manage: Ingest documents, initialize chunked file streams, and finalize uploads.
  • share and share_manage: Configure Send, Receive, and Exchange shares, manage permissions, and generate share links.

To prevent concurrent file conflicts when multiple subagents operate in parallel, Fast.io provides an advisory file lease mechanism. Hermes Agent acquires an advisory lease using the lock-acquire action on storage_manage, verifies lease ownership using lock-status on storage, and releases the lease with lock-release on storage_manage. A lock expires automatically unless heartbeated by the holding agent, allowing other members to see who holds the lease while ensuring that concurrent writes are safely tracked in version history, where unlocked concurrent writes both land.

Plan Capacities and Ingestion Ceilings

Fast.io offers structured subscription tiers designed for teams deploying autonomous agents. Monthly plans start with a 14-day free trial that requires a credit card. Paid plans include:

  • Starter: $9.99/mo (includes 3 seats, 250 GB storage, 5 workspaces, and 100,000 AI credits monthly). File upload size ceiling is 25 GB.
  • Business: $49.99/mo (includes 10 seats, 5 TB storage, 50 workspaces, and 600,000 AI credits monthly). File upload size ceiling is 50 GB.
  • Enterprise: $199.99/mo (includes 30 seats, with additional seats at $1 each up to 200 seats, 25 TB storage, 200 workspaces, and 3,000,000 AI credits monthly). File upload size ceiling is 100 GB.

On annual billing, the same plans cost $99, $499, and $1,999 per year, as listed on Fast.io pricing. Additional storage is billed at 1.5 cents per GB per month, and additional bandwidth is billed at 4 cents per GB. Credits meter AI indexing and intelligence operations; overage is billed at $10 per 100,000 credits. No token-to-credit conversion rate is published. Teams can explore specialized agent storage architecture and evaluate platform pricing to size their workspace deployments.

Fastio features

Scale Hermes Agent Document Intelligence with Persistent Workspaces

Connect Hermes Agent to Fast.io workspaces over Streamable HTTP MCP. Index, search, and version large files without context bloat. Starts with a 14-day free trial.

Architectural Patterns for Large Document Handling and Retrieval

Connecting Hermes Agent to an indexed workspace fundamentally alters how the agent processes information. Instead of relying on brute-force context stuffing, developers can implement five architectural patterns that preserve working memory while giving agents access to massive document repositories.

1. Ingestion via Cloud Sync and Direct Upload

Large document archives should never be routed through conversational message prompts. Instead, store source materials directly inside a Fast.io workspace.

Organizations can upload archives up to 100 GB per file on Enterprise plans (25 GB on Starter, 50 GB on Business) directly through the web interface, command line tooling, or API. Alternatively, teams can configure Cloud Sync to connect Google Drive, Dropbox, Box, and OneDrive folders to a workspace. Cloud Sync operates one-way or two-way, running on an automated schedule or on demand. When legal discovery bundles, technical manuals, or financial audits update in Google Drive or OneDrive, the files sync into the Fast.io workspace without consuming local agent bandwidth or storage.

2. Built-In Workspace Intelligence

Once files arrive in a workspace, enabling Intelligence Mode triggers automatic document indexing. Fast.io parses document text, generates semantic embeddings, and creates hybrid search indices server-side.

This eliminates the need to build and maintain external vector databases like Pinecone, Qdrant, or Chroma. When Hermes Agent needs to answer a question or verify a technical requirement, it searches workspace files via MCP. Fast.io processes the query server-side and returns only the most relevant excerpts accompanied by document citations. An agent examining an 800-page regulatory filing consumes roughly 600 prompt tokens for the search response rather than 350,000 tokens for the raw text.

3. Structured Data Extraction with Metadata Views

For document collections containing recurring schemas, such as vendor contracts, invoices, or equipment manifests, teams can deploy Metadata Views.

Metadata Views transform unstructured files into structured, queryable tables. Users define the fields they need in plain English, such as contract termination dates, governing law clauses, policy numbers, or total payment liabilities. The platform extracts the data into typed schema columns, including Text, Integer, Decimal, Boolean, URL, JSON, and Date & Time formats. Hermes Agent queries these structured views directly via MCP, retrieving precise values without reading the underlying files.

4. Search-Over-Attachment Operating Pattern

In traditional CLI sessions, users frequently attach entire codebases or manuals using @file: or @folder: commands. In high-efficiency workflows, developers instruct Hermes Agent to operate under a search-first protocol:

Before modifying API client code:
1. Use Fast.io storage search to locate the latest authentication specification in the 'engineering-docs' workspace.
2. Retrieve only the token refresh schema.
3. Implement the handler matching the retrieved specification.

By querying external storage dynamically, the agent keeps its active context window clean, reserving reasoning capacity for code generation and error correction.

5. Multi-Agent Coordination and Human Handoff

Fast.io workspaces provide an ideal coordination substrate for multi-agent teams. Subagents running in separate processes can read from the same indexed workspace simultaneously. Per-file version history records every modification, allowing teams to roll back unintended changes.

A detailed activity log records every upload, edit, move, deletion, and permission update across the organization, tracking actions taken by people and agents alike. When an autonomous agent completes an assigned project, it can generate deliverables directly inside the workspace and transfer workspace ownership to a human stakeholder. External partners can access specific deliverables through durable branded shares (Send, Receive, or Exchange) with configurable download controls, keeping raw agent infrastructure securely isolated.

Troubleshooting Hermes Agent Context Bloat and File Failures

When deploying Hermes Agent in production, developers encounter specific error states when processing documents. Diagnosing these failures requires identifying whether the restriction originated from local token limits, gateway transport ceilings, or operating system resource rules.

1. Diagnosing "Expansion refused, original message returned unchanged"

If a user types Review @file:large_manual.pdf and Hermes Agent echoes the prompt back without executing the task, the context reference has breached the 50% hard refusal ceiling.

To resolve this issue:

  • Use precise line ranges: Instead of referencing the full file, narrow the prompt to specific lines using @file:path/to/file.py:10-45. Lines are 1-indexed and inclusive.
  • Verify file formats: Hermes Agent rejects binary files with a warning after MIME type and null-byte scanning. Plain text formats (.py, .md, .json, .yaml, .ts) pass automatically.
  • Shift to MCP retrieval: Upload the document to a Fast.io workspace and prompt the agent to search for the specific topic rather than attaching the file.

2. Resolving Operating System File Descriptor Exhaustion

Long-running Hermes server daemons, messaging gateways (connecting Telegram, Discord, or WhatsApp), and subagent pools can fail with a Python OSError carrying errno 24 (EMFILE) and the message "Too many open files".

This error indicates that the process has exhausted the host operating system's file descriptor table. Long-lived agent sessions maintain open network sockets, SQLite connections, and temporary logging handles.

To fix descriptor exhaustion, open ~/.hermes/config.yaml and verify that the runtime file descriptor limit is properly declared:

runtime:
  nofile_soft_limit: 4096

During startup, Hermes Agent applies this soft limit configuration, clamping it against the operating system's hard ceiling. If your host system restricts the user hard limit below 4096, adjust your operating system limits using ulimit -n 4096 or update system configuration profiles in /etc/security/limits.conf.

3. Handling Gateway WebSocket Frame Drops

When transmitting files to Hermes Agent through browser dashboards or desktop interfaces, file uploads may fail with a generic connection drop:

WebSocket connection closed abnormally (code 1006)

This error occurs when the uploaded file exceeds the Uvicorn WebSocket frame limit (ws_max_size), which defaults to 16 MB. Because binary payloads are encoded to base64 before transmission, a 12 MB file expands to approximately 16 MB of text data, saturating the frame and dropping the connection.

Do not attempt to pass large binary datasets through the conversational gateway. Instead, store the files in a Fast.io workspace and instruct Hermes Agent to inspect the file using MCP tools.

4. Mitigating Subagent Memory Saturation

If child subagents spawned via delegate_task fail to complete multi-step objectives, check for context window saturation. When a child agent inherits a massive context payload from its parent, its working memory becomes crowded with historical text.

To resolve subagent bloat:

  • Audit the delegation prompt: Ensure the parent agent passes concise task directives and document identifiers rather than full file dumps.
  • Enable context compression: Hermes Agent incorporates automated context compression routines that compress middle conversation turns while protecting system instructions and recent messages.
  • Clean short-term memory files: Check ~/.hermes/memories/MEMORY.md to ensure the agent has not dumped raw text into its cross-session memory store. Remove bloated entries and enforce concise factual notes.

Sources

References used to verify factual claims in this guide.

  1. Nous Research documents that context references in Hermes Agent enforce a soft limit of 25% of context length where expansion proceeds with a warning and a hard limit of 50% where expansion is refused.

  2. Hermes Agent server surfaces automatically configure a default file descriptor soft limit of 4096 during startup on supported operating systems.

Frequently Asked Questions

What is the file limit for Hermes Agent?

Hermes Agent enforces different limits depending on the operation. Inline context references (@file:) enforce a 25% soft warning and a 50% hard refusal cap based on the model's active context length (such as `64,000` tokens on a `128K` model). Directory inspections (@folder:) cap at 200 files. Web and desktop gateways enforce an HTTP request limit of `10 MB` and a WebSocket frame limit of `16 MB`. External documents stored in Fast.io workspaces can scale up to `100 GB` per file on Enterprise plans (25 GB on Starter, 50 GB on Business).

How does Hermes Agent handle large files across subagents?

Hermes Agent spawns child subagents using the delegate_task tool, giving each subagent an isolated context window. Passing raw document text inside delegation arguments exhausts memory in both parent and child agents. The recommended architecture passes document pointers or search queries to the child agent, which then retrieves specific passages from an external Fast.io workspace via MCP.

How do you connect Hermes Agent to persistent cloud storage via MCP?

Declare the Fast.io remote MCP endpoint in ~/.hermes/config.yaml under mcpServers, specifying `https://mcp.fast.io/mcp/tools` with an Authorization Bearer header holding a scoped API key. Hermes Agent connects over Streamable HTTP, allowing the model to search, read, write, and lock workspace files dynamically.

What happens when an inline context reference exceeds the 50% hard limit?

When an @file: or @folder: reference contains content that meets or exceeds 50% of the active model context window, Hermes Agent refuses the expansion and returns the user's original message completely unchanged, without injecting the file contents.

How does Fast.io prevent Hermes Agent context window overflow?

Fast.io automatically indexes workspace documents using server-side Intelligence Mode. Instead of loading an entire document into the prompt, Hermes Agent queries Fast.io using hybrid search via MCP. The platform returns only relevant passages with citations, consuming a few hundred tokens rather than tens of thousands.

Does Hermes Agent support multi-gigabyte file uploads natively?

No. Local Hermes Agent interfaces and gateways enforce file limits between 10 MB and 16 MB, and model context windows cannot process gigabyte-scale inputs. Multi-gigabyte archives should be stored in Fast.io workspaces, which support single-file uploads up to `100 GB` on Enterprise plans, and queried externally via MCP.

Related Resources

Fastio features

Scale Hermes Agent Document Intelligence with Persistent Workspaces

Connect Hermes Agent to Fast.io workspaces over Streamable HTTP MCP. Index, search, and version large files without context bloat. Starts with a 14-day free trial.