Hermes Agent: 設定ファイル

最終更新:2026-08-31

設定ファイルはHermes Agentの頭脳コントロールセンターです。正しい設定なら、エージェントはあなたを理解する古い友人のように感じます。間違った設定なら、要領を得ない新入社員のようです。

💡 ヒント: HermesはYAMLを主要な設定フォーマットとして使用し、環境変数のオーバーライドとマルチ環境切り替えをサポートしています。すべての設定には適切なデフォルト値があり、ゼロ設定でそのまま起動できます。

📋 前提知識: 第2課 インストール

1. 学ぶ内容

# 内容
config.yamlの完全な構造
コア設定オプションの解説
環境変数オーバーライドの仕組み
マルチ環境設定管理
設定の検証とデバッグ

2. ストーリー

(1) 課題:環境切り替えのたびに設定変更

Bobは開発中はローカルモデルを使い、デプロイ時はクラウドAPIに切り替え、テスト用に別のKeyが必要。毎回設定ファイルを手動で編集し、間違いや切り替え忘れがよく発生。

(2) 解決策:環境設定の分離

Aliceは環境変数と複数設定ファイルで解決しました:

BASH
# 開発環境
hermes chat --env dev

# 本番環境
hermes chat --env prod

# テスト環境
hermes chat --env test

Bobはもう手動で設定を編集する必要がなくなりました。


3. config.yamlの完全な構造

YAML
# ~/.hermes/config.yaml

# ===== エージェント基本設定 =====
agent:
  name: "MyHermes"
  version: "1.0.0"
  description: "My personal AI assistant"
  
  personality:
    tone: "friendly"
    verbosity: "balanced"
    language: "en"

  memory:
    enabled: true
    working_memory_limit: 50
    long_term_auto_save: true
    user_model_update: true
    honcho_endpoint: null

# ===== モデル設定 =====
model:
  default: "gpt-4o"
  fallback: "gpt-4o-mini"
  temperature: 0.7
  max_tokens: 4096
  timeout: 60

# ===== スキル設定 =====
skills:
  auto_learn: true
  learn_threshold: 3
  custom_skills_dir: null

# ===== ツール設定 =====
tools:
  enabled_categories:
    - filesystem
    - web
    - code_execution
    - vision
    - voice
    - data
  disabled_tools: []
  sandbox: true
  max_execution_time: 30

# ===== プラットフォーム設定 =====
platforms:
  telegram:
    enabled: false
    token: null
  discord:
    enabled: false
    token: null
  slack:
    enabled: false
    token: null
  web:
    enabled: true
    port: 8080
  terminal:
    enabled: true

# ===== セキュリティとプライバシー =====
security:
  redact_api_keys: true
  sandbox_code: true
  allowed_paths:
    - "~/projects"
    - "~/documents"
  denied_paths:
    - "~/.ssh"
    - "~/.gnupg"

# ===== ロギング =====
logging:
  level: "INFO"
  file: "~/.hermes/logs/hermes.log"
  max_size_mb: 100
  rotation: 7

# ===== 高度設定 =====
advanced:
  cron_enabled: true
  checkpoint_enabled: true
  delegate_enabled: true
  mcp_enabled: true
  research_mode: false

4. コア設定オプション

(1) エージェントのパーソナリティ

YAML
personality:
  tone: "friendly"
  verbosity: "balanced"
  language: "en"
  custom_prompt: |
    You are my technical assistant, skilled in:
    1. React + TypeScript development
    2. Code review and optimization
    3. Technical documentation
    Respond in concise English.

(2) メモリ設定

YAML
memory:
  working_memory_limit: 50
  long_term_auto_save: true
  user_model_update: true
  recall_on_start: true
  memory_decay: false

(3) ツールのセキュリティ境界

YAML
tools:
  sandbox: true
  max_execution_time: 30
  
  filesystem:
    allow_write: true
    allow_delete: false
    max_file_size: 10MB
    
  web:
    allow_requests: true
    blocked_domains:
      - "malware-site.com"
    rate_limit: 10

5. 環境変数オーバーライド

任意の設定オプションは環境変数でオーバーライドできます。ルール:HERMES_プレフィックス+アンダースコア区切りのパス。

BASH
# デフォルトモデルのオーバーライド
export HERMES_MODEL_DEFAULT="gpt-4o-mini"

# API Keyのオーバーライド
export OPENAI_API_KEY="sk-..."

# メモリ設定のオーバーライド
export HERMES_MEMORY_ENABLED="false"

# ログレベルのオーバーライド
export HERMES_LOGGING_LEVEL="DEBUG"

# .envファイルの使用(推奨)
cat > ~/.hermes/.env << EOF
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
HERMES_MODEL_DEFAULT=gpt-4o
HERMES_LOGGING_LEVEL=INFO
EOF

優先順位

CLI引数 > 環境変数 > .envファイル > config.yaml > デフォルト値

6. マルチ環境管理

BASH
# ディレクトリ構造
~/.hermes/
├── config.yaml           # デフォルト設定
├── config.dev.yaml       # 開発用
├── config.prod.yaml      # 本番用
├── config.test.yaml      # テスト用
└── .env                  # 環境変数
YAML
# config.dev.yaml - 開発用
model:
  default: "llama3.2"
  temperature: 0.9

logging:
  level: "DEBUG"

tools:
  sandbox: false
YAML
# config.prod.yaml - 本番用
model:
  default: "gpt-4o"
  temperature: 0.5

logging:
  level: "WARNING"

security:
  sandbox_code: true
  redact_api_keys: true

7. 設定の検証

BASH
# 設定ファイルの検証
hermes config validate

# 有効な設定の表示
hermes config show

# 特定の設定値の取得
hermes config get model.default

# 設定値の変更
hermes config set model.temperature 0.5

# 設定のエクスポート
hermes config export > backup.yaml

試してみよう:エージェントのカスタマイズ

BASH
hermes config set personality.tone "professional"
hermes config set personality.language "en"
hermes config set memory.working_memory_limit 100

hermes config show | head -20

hermes chat
> Hello! Your tone setting has been switched to professional mode.

❓ よくある質問

Q 設定ファイルはどこにありますか?
A デフォルトの場所は~/.hermes/config.yamlです。HERMES_CONFIG_PATH環境変数で変更できます。
Q 設定変更後に再起動が必要ですか?
A ほとんどの設定は再起動なしでホットリロードされます。モデル切り替えとプラットフォーム設定は再起動が必要です。
Q 設定が間違っているとどうなりますか?
A Hermesは起動時に設定を検証し、行番号付きでエラーを報告し、誤った設定を黙って使用することはありません。
Q 設定のバックアップ方法は?
A hermes config export > backup.yaml、または直接~/.hermes/config.yamlをコピーしてください。
Q マシン間で設定を共有するには?
A 設定ファイルをGitリポジトリに置き、各マシンでクローンし、HERMES_CONFIG_PATHでリポジトリ設定を指定してください。API Keyは絶対にコミットしないでください!
Q デフォルトにリセットするには?
A hermes config reset、またはconfig.yamlを削除してhermes initを再実行してください。

📖 まとめ


📝 練習問題

  1. 基本(⭐): config.yamlを変更してエージェント名と言語設定を変更し、反映されることを確認してください。
  2. 中級(⭐⭐): 開発と本番の設定セットを作成し、ワンクリックで環境切り替えを実装してください。
  3. 上級(⭐⭐⭐): 環境変数を使用した12-Factorに準拠した設定スキームを設計し、ハードコードされたシークレットをゼロにしてください。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%