Agent-Lab アプリケーションは、agent_lab/domain/ で定義された 1 つのドメインモデルを共有しています。同じモデルが REST API のスキーマ、永続化レイヤー、エージェントのランタイムを支えています。一度理解すれば、すべてのエンドポイントが何を読み書きするのかがわかります。

エンティティ
| エンティティ | モデル化する対象 |
|---|---|
| Agent | LLM エージェントのインスタンスです。agent_name、agent_type(レジストリに対して検証されます)、有効フラグ、タイムスタンプを持ちます。1 つの実装から、設定の異なる多数のインスタンスを作成できます。 |
| AgentSettings | エージェントインスタンスのキーバリュー形式の設定です。プロンプト(Jinja2 テンプレート)、コレクション名、temperature、カスタム値などを含みます。値 1 つあたり最大 16,000 文字で、POST /agents/update_setting を使ってエージェントの振る舞いを調整する場所です。 |
| LanguageModel | エージェントが利用できる言語モデルと、そのサプライヤーへの接続です。 |
| LanguageModelSettings | モデルごとのパラメーター(temperature、最大トークン数など)で、/llms エンドポイントで管理します。 |
| Integration | 外部インテグレーション(AI サプライヤーなど)とその設定です。シークレットはデータベースではなく、必ず Vault に保存されます。 |
| Message | 会話の 1 ターンです。ロール(human / assistant / tool)、コンテンツ、response_data、スレッドのリンク(replies_to)を持ちます。LangGraph のチェックポイントを介して、エージェントのメモリとともに永続化されます。 |
| Attachment | メッセージに添付されたファイルです。生のコンテンツ、パース済みのコンテンツ、検索に使用する埋め込みコレクションへの参照を持ちます。 |
永続化されたエージェント設定の例として、 notebooks/08_test_agent_type-multiagent-voice-assistant.ipynb のボイスメモエージェントのプロンプトとカスタム値を示します。

データの保存場所
Agent-Lab は 3 つの PostgreSQL データベース(および Redis)を使用します。これらはデプロイガイドでプロビジョニングされ、db.url、db.vectors、
db.checkpoints で設定します(設定リファレンスを参照)。
| ストア | 内容 |
|---|---|
db.url |
リレーショナルデータ:エージェント、設定、モデル、インテグレーション、メッセージ、添付ファイル |
db.vectors |
pgvector の埋め込み:ベクトル検索と取得(/attachments/embeddings) |
db.checkpoints |
LangGraph のチェックポイントデータ:インタラクションをまたいだエージェントのメモリ |
Redis (broker.url) |
長時間実行される処理のステータス更新を配信する Pub/Sub ブローカー。MCP OAuth クライアントのストレージとしても使用 |
セキュリティとシークレット管理
シークレット(インテグレーションの認証情報、モデルの API キー、設定ペイロードそのもの)は Vault で管理されます。データベースには参照のみが保存され、機密性の高い値は起動時および必要に応じて Vault から取得されます。詳しくは Vault によるシークレット管理と設定リファレンスを参照してください。