iiRecord
Agentic AI Atlas · Hermes AIAgent Loop
agent-core-impl:hermes.agent-loopa5c.ai
II.
AgentCoreImpl JSON

agent-core-impl:hermes.agent-loop

Structured · live

Hermes AIAgent Loop json

Inspect the normalized record payload exactly as the atlas UI reads it.

File · agent-stack/hermes/hermes-agent-loop.yamlCluster · agent-stack
Record JSON
{
  "id": "agent-core-impl:hermes.agent-loop",
  "_kind": "AgentCoreImpl",
  "_file": "agent-stack/hermes/hermes-agent-loop.yaml",
  "_cluster": "agent-stack",
  "attributes": {
    "displayName": "Hermes AIAgent Loop",
    "agentVersionId": "agentVersion:hermes:ge-0-0-0",
    "loopKind": "synchronous-iterative",
    "description": "The AIAgent class in run_agent.py (~4,400 lines) is the single monolithic\ncore loop powering all Hermes surfaces (CLI, gateway, ACP, batch, API).\nImplements synchronous orchestration with interruptible API calls via\nbackground threads, sequential or concurrent tool dispatch, prompt caching,\ncontext compression, and subagent delegation.\n",
    "keyFiles": [
      "run_agent.py",
      "agent/prompt_builder.py",
      "agent/context_engine.py",
      "agent/context_compressor.py",
      "agent/prompt_caching.py",
      "agent/auxiliary_client.py",
      "model_tools.py"
    ],
    "turnLifecycle": [
      "Generate task_id",
      "Append user message",
      "Build or reuse cached system prompt",
      "Preflight compression check (>50% context)",
      "Build API messages",
      "Inject ephemeral prompt layers",
      "Apply prompt caching markers (Anthropic)",
      "Make interruptible API call",
      "Parse response: tool calls loop, text response returns"
    ],
    "toolDispatch": "Central registry, auto-discovery at import. Sequential for single, ThreadPoolExecutor for multiple.",
    "budgetDefault": 90,
    "subagentBudgetDefault": 50,
    "compressionThreshold": "50% preflight, 85% gateway",
    "compressionStrategy": "Memory flush, middle turn summarization, last N preserved, tool call/result pairs kept",
    "apiModes": [
      "chat_completions",
      "codex_responses",
      "anthropic_messages"
    ],
    "ourEquivalent": "Our agent core lives in the upstream harness (Claude Code, Codex, etc.).\ngenty-platform wraps harness cores via adapter bridge\n(packages/genty/platform/src/harness/adapters/). The babysitter SDK\ndrives turn lifecycle through task definitions and effects rather than\nowning the inference loop directly.\n"
  },
  "outgoingEdges": [
    {
      "from": "agent-core-impl:hermes.agent-loop",
      "to": "layer:4-agent-core",
      "kind": "realizes",
      "attributes": {}
    },
    {
      "from": "agent-core-impl:hermes.agent-loop",
      "to": "agent:hermes",
      "kind": "part_of",
      "attributes": {}
    }
  ],
  "incomingEdges": []
}