hermes与hindsight

总结

  • 终端里运行的AI Agent,用你配置的LLM作为大脑,通过工具跑命令、读写文件、操作浏览器、委派子 Agent,类似claw、claudecode等agent工具。

  • hermes支持hindsight(内置pg)保存记忆,查询hindsight的pg可以看到记忆:

    • SELECT text, fact_type, to_char(created_at,'MM-DD HH24:MI:SS') AS t FROM memory_units ORDER BY created_at DESC;
  • hindsight:https://hindsight.vectorize.io/

    • 为AI Agent提供的长期记忆,用PG+向量检索+知识图谱存储和召回对话中抽取的事实,让Agent跨会话记住用户偏好、背景和过往交流。
    • 支持三种模式使用,本地启动内嵌模式(本文)、直接用vectorize提供的api key、本地部署集群提供服务。
    • 定位是一个ai的长期记忆系统,和其他竞品的差异是可以提供类似人的记忆能力。支持四类记忆类型:

安装hermes

环境:mac m1

安装hindsight

复制代码
uv pip install --python ~/.hermes/hermes-agent/venv/bin/python "hindsight-client>=0.4.22"


vim ~/.hermes/config.yaml
memory:
  memory_enabled: true
  user_profile_enabled: true
  memory_char_limit: 2200
  user_char_limit: 1375
  provider: hindsight
  nudge_interval: 10
  flush_min_turns: 6

本地验证用小模型即可,速度比较快: qwen2.5:3b(约 2GB)

复制代码
$ ollama list
NAME                   ID              SIZE      
qwen2.5:3b             357c53fb659c    1.9 GB     << 用这个
qwen3.5-fast:latest    c7c7753abea4    6.6 GB   
qwen3.5:latest         6488c96fa5fa    6.6 GB    

$ ollama show qwen2.5:3b
  Model
    architecture        qwen2
    parameters          3.1B
    context length      32768
    embedding length    2048
    quantization        Q4_K_M

  Capabilities
    completion
    tools

  System
    You are Qwen, created by Alibaba Cloud. You are a helpful assistant.

  License
    Qwen RESEARCH LICENSE AGREEMENT
    Qwen RESEARCH LICENSE AGREEMENT Release Date: September 19, 2024
    ...

配置文件~/.hermes/config.yaml在附录。

配置记忆

复制代码
  hermes memory setup

本地部署(后面分析下本地启动了什么)

配置本地记忆会下载hindsight-all大概200MB。
/Users/wzw/root/proj/hermes-agent/plugins/memory/hindsight/__init__.py

hindsight-all安装位置

复制代码
  ~/.hermes/hermes-agent/venv/lib/python3.11/site-packages/
  ├── hindsight/          124K  (核心引擎)
  ├── hindsight_api/      4.8M  (API 层)
  ├── hindsight_client/   144K  (客户端)
  ├── hindsight_client_api/ 2.8M (客户端API)
  ├── hindsight_embed/    208K  (嵌入/本地运行)

hindsight日志:tail -f ~/.hermes/logs/hindsight-embed.log

记忆测试

启动后,hermes chat可以让他记住一些信息

复制代码
Please call hindsight_retain to save this exact fact: 
"The user's name is mingjiegao. The user is a PostgreSQL kernel engineer."

Hermes内置两套记忆系统,模型会决定使用哪个保存。

  • ~/.hermes/memories/USER.md每轮回话自动注入。
  • hindsight pg数据库。

查看hindsight自带的pg:
PGPASSWORD=hindsight ~/.pg0/installation/18.1.0/bin/psql -h 127.0.0.1 -U hindsight -d hindsight

pg进程

记忆:
SELECT text, fact_type, to_char(created_at,'MM-DD HH24:MI:SS') AS t FROM memory_units ORDER BY created_at DESC;

hermes记忆原理分析

hermes支持使用hindsight做为记忆组件

hindsight支持本地安装的方式, hindsight-all包包括了一个pg和一个restful服务组件。

hindsight的大致架构
复制代码
┌─────────────────────────────────────────────────────────┐
│                   Client Layer                          │
│  Python SDK │ TypeScript SDK │ Rust SDK │ Go SDK │ CLI  │
├─────────────────────────────────────────────────────────┤
│                   API Layer                             │
│         FastAPI (HTTP REST) │ MCP (SSE/Streamable)      │
├─────────────────────────────────────────────────────────┤
│                   Engine Layer                          │
│  Retain Pipeline │ Recall Pipeline │ Reflect Agent      │
│  Consolidation   │ Entity Resolver │ Query Analyzer     │
├─────────────────────────────────────────────────────────┤
│                 Infrastructure Layer                    │
│  PostgreSQL + pgvector│ LLM Providers │ Embedding Models│
│  Cross-Encoder │ Object Storage (S3/GCS/Azure)          │
└─────────────────────────────────────────────────────────┘

处理逻辑

复制代码
                        ┌──────────────────────────────────────┐
                        │           Retain (写入)               │
                        │                                      │
   Content ──────────►  │  1. Text Chunking (~3000 chars)      │
                        │  2. LLM Fact Extraction (并行)        │
                        │  3. Entity Resolution (spaCy + pg)   │
                        │  4. Embedding Generation (批量)       │
                        │  5. Link Creation (时序+语义+实体)    │
                        │  6. DB Transaction (原子写入)         │
                        │  7. Trigger Consolidation (异步)      │
                        └──────────────┬───────────────────────┘
                                       │
                                       ▼
                        ┌──────────────────────────────────────┐
                        │        PostgreSQL + pgvector          │
                        │                                      │
                        │  memory_units (事实 + 向量)           │
                        │  entities (实体图谱)                  │
                        │  memory_links (关系图)                │
                        │  documents / chunks (原文)            │
                        │  banks (隔离的记忆库)                 │
                        └──────────────┬───────────────────────┘
                                       │
                        ┌──────────────┴───────────────────────┐
                        │           Recall (读取)               │
                        │                                      │
   Query ──────────►    │  1. Query Analysis (时间约束提取)     │
                        │  2. 4路并行检索:                      │
                        │     ├─ Semantic (HNSW向量搜索)        │
                        │     ├─ BM25 (全文检索)                │
                        │     ├─ Graph (链接扩展)               │
                        │     └─ Temporal (时间感知)             │
                        │  3. RRF Fusion (倒数排名融合)         │
                        │  4. Cross-Encoder Reranking           │
                        │  5. Combined Scoring (时效+证据)      │
                        │  6. MMR Diversity (去重)              │
                        │  7. Token Budget Filtering            │
                        └──────────────┬───────────────────────┘
                                       │
                        ┌──────────────┴───────────────────────┐
                        │          Reflect (推理)               │
                        │                                      │
   Question ─────────►  │  Agentic Loop (max N iterations):    │
                        │  1. search_mental_models (最高质量)   │
                        │  2. search_observations (整合知识)    │
                        │  3. recall (原始事实)                 │
                        │  4. expand (获取上下文)               │
                        │  5. done (最终回答)                   │
                        └──────────────────────────────────────┘

pg中的表结构含义

复制代码
┌─────────────────────────────────────────────────────────────────┐
│                        banks (Memory Bank)                       │
│  bank_id PK │ name │ personality JSONB │ background │            │
│  internal_id UUID UNIQUE │ bank_config JSONB                     │
└─────────────┬───────────────────────────────────────────────────┘
              │ 1:N
              ▼
┌─────────────────────────────────────────────────────────────────┐
│                      documents (原始文档)                        │
│  (id, bank_id) PK │ original_text │ content_hash │ metadata JSONB│
│  retain_params JSONB │ created_at │ updated_at                   │
└─────────────┬───────────────────────────────────────────────────┘
              │ 1:N                              1:N
              ▼                                   ▼
┌──────────────────────────────┐  ┌──────────────────────────────┐
│     chunks (文档分块)         │  │    memory_units (核心事实)    │
│ chunk_id PK │ document_id FK │  │ id UUID PK                   │
│ bank_id │ chunk_index        │  │ bank_id │ document_id FK     │
│ chunk_text │ content_hash    │  │ text │ embedding vector(384) │
│ created_at                   │  │ context │ event_date          │
└──────────────────────────────┘  │ occurred_start/end            │
                                  │ mentioned_at │ fact_type      │
                                  │ confidence_score │ access_count│
                                  │ metadata JSONB │ tags varchar[]│
                                  │ search_vector tsvector        │
                                  │ proof_count │ source_memory_ids│
                                  │ history JSONB                 │
                                  │ chunk_id │ observation_tags   │
                                  │ consolidated_at               │
                                  └───────────┬───────────────────┘
                                              │
                         ┌────────────────────┼────────────────────┐
                         │                    │                    │
                         ▼                    ▼                    ▼
              ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐
              │  unit_entities  │  │  memory_links   │  │    entities      │
              │ (unit_id,       │  │ from_unit_id    │  │ id UUID PK      │
              │  entity_id) PK  │  │ to_unit_id      │  │ canonical_name  │
              └────────┬────────┘  │ link_type       │  │ bank_id         │
                       │           │ entity_id       │  │ mention_count   │
                       │           │ weight [0,1]    │  │ first/last_seen │
                       └──────►    └─────────────────┘  └────────┬────────┘
                                                                  │
                                                                  ▼
                                                        ┌─────────────────┐
                                                        │entity_cooccurrences│
                                                        │entity_id_1 < _2 │
                                                        │cooccurrence_count│
                                                        └─────────────────┘

生产部署方式

复制代码
基于 helm/hindsight/Chart.yaml (v0.5.1) 和 helm/hindsight/templates/ 下全部模板来看(不是凭空推断):

  组件清单

  ┌─────┬─────────────┬───────────────┬─────────────────────────────────────┬────────────────────────────────────────────────────────────────────────────────┬────────────────────────────────────────────┐
  │  #  │    组件     │   K8s 类型    │              默认状态               │                                      职责                                      │                  来源模板                  │
  ├─────┼─────────────┼───────────────┼─────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────┤
  │ 1   │ API Server  │ Deployment    │ enabled=true                        │ HTTP REST + MCP 接口;默认也内置 worker                                        │ api-deployment.yaml / api-service.yaml     │
  ├─────┼─────────────┼───────────────┼─────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────┤
  │ 2   │ Control     │ Deployment    │ enabled=true                        │ Next.js Web UI(端口 3000)                                                    │ controlplane-deployment.yaml /             │
  │     │ Plane       │               │                                     │                                                                                │ controlplane-service.yaml                  │
  ├─────┼─────────────┼───────────────┼─────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────┤
  │ 3   │ Worker      │ StatefulSet   │ enabled=false(生产建议开)         │ 后台任务处理(FOR UPDATE SKIP LOCKED 轮询);开启后 API 内的 worker 会被关闭   │ worker-statefulset.yaml /                  │
  │     │             │               │                                     │                                                                                │ worker-service.yaml                        │
  ├─────┼─────────────┼───────────────┼─────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────┤
  │ 4   │ PostgreSQL  │ StatefulSet + │ enabled=true(默认用                │ 主存储;生产通常关掉这个,指向托管 PG                                          │ postgresql-statefulset.yaml /              │
  │     │             │  PVC          │ ankane/pgvector:latest)            │                                                                                │ postgresql-service.yaml                    │
  ├─────┼─────────────┼───────────────┼─────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────┤
  │ 5   │ TEI         │ Deployment    │ enabled=false                       │ HuggingFace Text Embeddings Inference 跑                                       │ tei-reranker-deployment.yaml /             │
  │     │ Reranker    │               │                                     │ cross-encoder(cross-encoder/ms-marco-MiniLM-L-6-v2,端口 8090)               │ tei-reranker-service.yaml                  │
  ├─────┼─────────────┼───────────────┼─────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────┤
  │ 6   │ TEI         │ Deployment    │ enabled=false                       │ TEI 跑 embedding 模型(sentence-transformers/all-MiniLM-L6-v2,端口 8091)     │ tei-embedding-deployment.yaml /            │
  │     │ Embedding   │               │                                     │                                                                                │ tei-embedding-service.yaml                 │
  └─────┴─────────────┴───────────────┴─────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────┘

  周边资源(K8s 原生对象)

  ┌────────────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────┬────────────────────────────────────────┐
  │      资源      │                                                     作用                                                      │                  模板                  │
  ├────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────┤
  │ Ingress        │ 把 / 路由到 Control Plane、/api 路由到 API                                                                    │ ingress.yaml(默认 nginx className)   │
  ├────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────┤
  │ Secret         │ 存 postgres-password、HINDSIGHT_API_LLM_API_KEY 等;支持 existingSecret 引用外部 Secret                       │ secret.yaml                            │
  ├────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────┤
  │ ServiceAccount │ 默认创建;所有 Pod 都绑定                                                                                     │ serviceaccount.yaml                    │
  ├────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────┤
  │ HPA            │ 基于 CPU/内存自动扩容 API,autoscaling.enabled 开关                                                           │ hpa.yaml                               │
  ├────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────┤
  │ PDB            │ PodDisruptionBudget,按组件单独启用                                                                           │ pdb.yaml                               │
  ├────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────┤
  │ PVC            │ API 的 model cache PVC(避免 reranker/embedding 模型每次重拉);Worker 用 volumeClaimTemplates;PG 用独立 PVC │ api-model-cache-pvc.yaml + StatefulSet │
  └────────────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────┘

  拓扑关系(数据流)

                   ┌──────────────┐
                   │   Ingress    │  (nginx, /api → api, / → CP)
                   └──────┬───────┘
             ┌────────────┼─────────────┐
             ▼            ▼
     ┌──────────────┐  ┌──────────────┐
     │ Control Plane│  │  API Server  │──────┐
     │  (Next.js)   │──▶  (FastAPI)   │      │
     │  Deploy×N    │  │   Deploy×N   │      │ enqueue 任务
     │  :3000       │  │   :8888      │      │
     └──────────────┘  └──┬────┬──────┘      │
                          │    │             │
               tei.*启用时│    │             │
           ┌──────────────┘    └───────────┐ │
           ▼                               ▼ │
    ┌────────────┐                 ┌────────────┐
    │ TEI Rerank │                 │ TEI Embed  │
    │ Deploy :8090│                │ Deploy :8091│
    └────────────┘                 └────────────┘

                          ┌──────────────────────┘
                          ▼
                   ┌──────────────┐          ┌─────────────────────┐
                   │   Worker     │─────────▶│  PostgreSQL +       │
                   │ StatefulSet  │◀─────────│  pgvector           │
                   │ :8889(metrics│  SELECT  │  StatefulSet + PVC  │
                   │  + health)   │  FOR     │  (或外部托管 PG)    │
                   │ worker-0,1,2 │  UPDATE  │                     │
                   │              │  SKIP    │                     │
                   │              │  LOCKED  │                     │
                   └──────────────┘          └─────────────────────┘

  几个关键设计细节(有代码依据)

  1. Worker 为什么是 StatefulSet 而不是 Deployment
  worker-statefulset.yaml:58-62 里 HINDSIGHT_API_WORKER_ID 取自 metadata.name------需要 worker-0、worker-1 这样的稳定 Pod 名。队列里记录 worker 身份、做心跳/回收时依赖稳定 ID。
  2. API 与 Worker 的互斥
  api-deployment.yaml:59-62:当 worker.enabled=true,API Pod 被注入 HINDSIGHT_API_WORKER_ENABLED=false。意思是单体模式下 API 自己跑后台任务;分布式模式下由独立 worker Pod 消费,API 只做请求路径。
  3. Worker 继承 API 的环境变量
  worker-statefulset.yaml:63-67 明确 range $key, $value := .Values.api.env------LLM Provider/Model/API Key 这些配置写在 api.env / api.secrets 里,Worker 会自动继承,避免双份配置。
  4. 模型缓存持久化(生产必开)
  values.yaml:73-80、170-179:API 和 Worker 都有 persistence.modelCache(默认 5 Gi)。不开的话 embedding/reranker 模型每次 Pod 重建都要重新下载。Worker 走 volumeClaimTemplates,API 走普通 PVC。
  5. 数据库三种形态(values.yaml:254-293)
    - postgresql.enabled=true:chart 自带 ankane/pgvector:latest StatefulSet(非生产推荐,镜像是 community fork)
    - postgresql.enabled=false + postgresql.external.*:指向外部托管 PG
    - existingSecret:把密码交给外部 Secret 管理
  6. TEI 为什么要独立部署
  默认 Full 镜像里 embedding/reranker 跑在 API 进程内(占 ~9 GB 镜像体积)。开启 tei.reranker.enabled=true / tei.embedding.enabled=true 后,API 自动注入 HINDSIGHT_API_RERANKER_PROVIDER=tei + 指向 TEI Service
   的 URL(api-deployment.yaml:70-81)。这样就能横向扩 GPU 推理、用 Slim API 镜像(~500 MB)。

  所以"API + Control Plane 两个组件"不对

  生产级部署最少要盘算 6 个工作负载:

  - 必选:API Server、Control Plane、PostgreSQL(或外部托管 PG)
  - 生产建议:独立 Worker(StatefulSet)------文档 installation.md:126-135 明确建议高吞吐场景开
  - Slim 镜像路径必选:TEI Reranker + TEI Embedding(否则 API 没法算向量)

  官方文档 services.md 里把这些统一叫做 "Services",helm/hindsight/README.md 里列了所有可开关项------都是有代码依据的。

附录

配置文件~/.hermes/config.yaml

复制代码
model:
  default: qwen2.5:3b
  provider: custom
  base_url: http://127.0.0.1:11434/v1
providers: {}
fallback_providers: []
credential_pool_strategies: {}
toolsets:
- hermes-cli
agent:
  max_turns: 90
  gateway_timeout: 1800
  restart_drain_timeout: 60
  service_tier: ''
  tool_use_enforcement: auto
  gateway_timeout_warning: 900
  gateway_notify_interval: 600
  verbose: false
  reasoning_effort: low
  personalities:
    helpful: You are a helpful, friendly AI assistant.
    concise: You are a concise assistant. Keep responses brief and to the point.
    technical: You are a technical expert. Provide detailed, accurate technical information.
    creative: You are a creative assistant. Think outside the box and offer innovative
      solutions.
    teacher: You are a patient teacher. Explain concepts clearly with examples.
    kawaii: "You are a kawaii assistant! Use cute expressions like (\u25D5\u203F\u25D5\
      ), \u2605, \u266A, and ~! Add sparkles and be super enthusiastic about everything!\
      \ Every response should feel warm and adorable desu~! \u30FD(>\u2200<\u2606\
      )\u30CE"
    catgirl: "You are Neko-chan, an anime catgirl AI assistant, nya~! Add 'nya' and\
      \ cat-like expressions to your speech. Use kaomoji like (=^\uFF65\u03C9\uFF65\
      ^=) and \u0E05^\u2022\uFECC\u2022^\u0E05. Be playful and curious like a cat,\
      \ nya~!"
    pirate: 'Arrr! Ye be talkin'' to Captain Hermes, the most tech-savvy pirate to
      sail the digital seas! Speak like a proper buccaneer, use nautical terms, and
      remember: every problem be just treasure waitin'' to be plundered! Yo ho ho!'
    shakespeare: Hark! Thou speakest with an assistant most versed in the bardic arts.
      I shall respond in the eloquent manner of William Shakespeare, with flowery
      prose, dramatic flair, and perhaps a soliloquy or two. What light through yonder
      terminal breaks?
    surfer: "Duuude! You're chatting with the chillest AI on the web, bro! Everything's\
      \ gonna be totally rad. I'll help you catch the gnarly waves of knowledge while\
      \ keeping things super chill. Cowabunga! \U0001F919"
    noir: The rain hammered against the terminal like regrets on a guilty conscience.
      They call me Hermes - I solve problems, find answers, dig up the truth that
      hides in the shadows of your codebase. In this city of silicon and secrets,
      everyone's got something to hide. What's your story, pal?
    uwu: hewwo! i'm your fwiendwy assistant uwu~ i wiww twy my best to hewp you! *nuzzles
      your code* OwO what's this? wet me take a wook! i pwomise to be vewy hewpful
      >w<
    philosopher: Greetings, seeker of wisdom. I am an assistant who contemplates the
      deeper meaning behind every query. Let us examine not just the 'how' but the
      'why' of your questions. Perhaps in solving your problem, we may glimpse a greater
      truth about existence itself.
    hype: "YOOO LET'S GOOOO!!! \U0001F525\U0001F525\U0001F525 I am SO PUMPED to help\
      \ you today! Every question is AMAZING and we're gonna CRUSH IT together! This\
      \ is gonna be LEGENDARY! ARE YOU READY?! LET'S DO THIS! \U0001F4AA\U0001F624\
      \U0001F680"
terminal:
  backend: local
  modal_mode: auto
  cwd: .
  timeout: 180
  env_passthrough: []
  docker_image: nikolaik/python-nodejs:python3.11-nodejs20
  docker_forward_env: []
  docker_env: {}
  singularity_image: docker://nikolaik/python-nodejs:python3.11-nodejs20
  modal_image: nikolaik/python-nodejs:python3.11-nodejs20
  daytona_image: nikolaik/python-nodejs:python3.11-nodejs20
  container_cpu: 1
  container_memory: 5120
  container_disk: 51200
  container_persistent: true
  docker_volumes: []
  docker_mount_cwd_to_workspace: false
  persistent_shell: true
  lifetime_seconds: 300
browser:
  inactivity_timeout: 120
  command_timeout: 30
  record_sessions: false
  allow_private_urls: false
  camofox:
    managed_persistence: false
checkpoints:
  enabled: true
  max_snapshots: 50
file_read_max_chars: 100000
compression:
  enabled: true
  threshold: 0.5
  target_ratio: 0.2
  protect_last_n: 20
smart_model_routing:
  enabled: false
  max_simple_chars: 160
  max_simple_words: 28
  cheap_model: {}
auxiliary:
  vision:
    provider: custom
    model: qwen2.5:3b
    base_url: http://127.0.0.1:11434/v1
    api_key: ''
    timeout: 120
    download_timeout: 30
  web_extract:
    provider: custom
    model: qwen2.5:3b
    base_url: http://127.0.0.1:11434/v1
    api_key: ''
    timeout: 360
  compression:
    provider: custom
    model: qwen2.5:3b
    base_url: http://127.0.0.1:11434/v1
    api_key: ''
    timeout: 120
  session_search:
    provider: custom
    model: qwen2.5:3b
    base_url: http://127.0.0.1:11434/v1
    api_key: ''
    timeout: 30
  skills_hub:
    provider: custom
    model: qwen2.5:3b
    base_url: http://127.0.0.1:11434/v1
    api_key: ''
    timeout: 30
  approval:
    provider: custom
    model: qwen2.5:3b
    base_url: http://127.0.0.1:11434/v1
    api_key: ''
    timeout: 30
  mcp:
    provider: custom
    model: qwen2.5:3b
    base_url: http://127.0.0.1:11434/v1
    api_key: ''
    timeout: 30
  flush_memories:
    provider: custom
    model: qwen2.5:3b
    base_url: http://127.0.0.1:11434/v1
    api_key: ''
    timeout: 30
display:
  compact: false
  personality: kawaii
  resume_display: full
  busy_input_mode: interrupt
  bell_on_complete: false
  show_reasoning: false
  streaming: true
  inline_diffs: true
  show_cost: false
  skin: default
  interim_assistant_messages: true
  tool_progress_command: false
  tool_progress_overrides: {}
  tool_preview_length: 0
  platforms: {}
  tool_progress: all
  background_process_notifications: all
privacy:
  redact_pii: false
tts:
  provider: edge
  edge:
    voice: en-US-AriaNeural
  elevenlabs:
    voice_id: pNInz6obpgDQGcFmaJgB
    model_id: eleven_multilingual_v2
  openai:
    model: gpt-4o-mini-tts
    voice: alloy
  mistral:
    model: voxtral-mini-tts-2603
    voice_id: c69964a6-ab8b-4f8a-9465-ec0925096ec8
  neutts:
    ref_audio: ''
    ref_text: ''
    model: neuphonic/neutts-air-q4-gguf
    device: cpu
stt:
  enabled: true
  provider: local
  local:
    model: base
    language: ''
  openai:
    model: whisper-1
  mistral:
    model: voxtral-mini-latest
voice:
  record_key: ctrl+b
  max_recording_seconds: 120
  auto_tts: false
  silence_threshold: 200
  silence_duration: 3.0
human_delay:
  mode: 'off'
  min_ms: 800
  max_ms: 2500
context:
  engine: compressor
memory:
  memory_enabled: true
  user_profile_enabled: true
  memory_char_limit: 2200
  user_char_limit: 1375
  provider: hindsight
  nudge_interval: 10
  flush_min_turns: 6
delegation:
  model: ''
  provider: ''
  base_url: ''
  api_key: ''
  max_iterations: 50
  reasoning_effort: ''
  default_toolsets:
  - terminal
  - file
  - web
prefill_messages_file: ''
skills:
  external_dirs: []
  creation_nudge_interval: 15
honcho: {}
timezone: ''
discord:
  require_mention: true
  free_response_channels: ''
  allowed_channels: ''
  auto_thread: true
  reactions: true
whatsapp: {}
approvals:
  mode: manual
  timeout: 60
command_allowlist: []
quick_commands: {}
personalities: {}
security:
  redact_secrets: true
  tirith_enabled: true
  tirith_path: tirith
  tirith_timeout: 5
  tirith_fail_open: true
  website_blocklist:
    enabled: false
    domains: []
    shared_files: []
cron:
  wrap_response: true
logging:
  level: INFO
  max_size_mb: 5
  backup_count: 3
network:
  force_ipv4: false
_config_version: 17
session_reset:
  mode: both
  idle_minutes: 1440
  at_hour: 4
group_sessions_per_user: true
streaming:
  enabled: false
platform_toolsets:
  cli:
  - hermes-cli
  telegram:
  - hermes-telegram
  discord:
  - hermes-discord
  whatsapp:
  - hermes-whatsapp
  slack:
  - hermes-slack
  signal:
  - hermes-signal
  homeassistant:
  - hermes-homeassistant
  qqbot:
  - hermes-qqbot
code_execution:
  timeout: 300
  max_tool_calls: 50
custom_providers:
- name: Local (127.0.0.1:11434)
  base_url: http://127.0.0.1:11434/v1
  model: qwen2.5:3b
  models:
    qwen2.5:3b:
      context_length: 65536
相关推荐
FreeBuf_2 小时前
Codex 利用全局可写驱动接口破解三星电视获取 Root 权限
ai·codex·三星
cddchina3 小时前
解决 Ubuntu 上 Claude 登录验证问题
ai
俊哥V3 小时前
每日 AI 研究简报 · 2026-04-15
人工智能·ai
weixin_699602443 小时前
身份信息与有效性验证 API 集成指导
ai
一个天蝎座 白勺 程序猿3 小时前
人工智能vs机器学习vs深度学习:概念辨析
人工智能·深度学习·机器学习·ai
墨言ink4 小时前
Burp 联动AI 一句话漏洞挖掘(Claude+BurpMCP)部署+实战教程
web安全·ai
Aaron_Chou3135 小时前
保姆级codex配置教程
gpt·ai·agent·ai编程·codex
helpme流水12 小时前
LLaMA Factory 从入门到精通,一篇讲完
人工智能·ai·语言模型·llama
哥布林学者14 小时前
深度学习进阶(八)Swin Transformer
机器学习·ai