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を再実行してください。📖 まとめ
- config.yamlはメイン設定ファイルで、エージェント、モデル、メモリ、ツール、プラットフォームなどをカバー
- 優先順位:CLI引数 > 環境変数 > .env > config.yaml > デフォルト
- マルチ環境:
config.dev.yaml/config.prod.yamlで開発/本番の切り替え hermes config validateで設定チェック、hermes config showで有効な値を確認- セキュリティ:サンドボックス、パス制限、APIキーのマスキング
📝 練習問題
- 基本(⭐): config.yamlを変更してエージェント名と言語設定を変更し、反映されることを確認してください。
- 中級(⭐⭐): 開発と本番の設定セットを作成し、ワンクリックで環境切り替えを実装してください。
- 上級(⭐⭐⭐): 環境変数を使用した12-Factorに準拠した設定スキームを設計し、ハードコードされたシークレットをゼロにしてください。