---
title: "Brain"
description: "会話、ファイル、Web ページから出所を追跡できる組織知識を蓄積し、明確な開示境界の中で Agent が想起、修正、忘却できるようにします。"
url: "https://ankole.agentbull.com/ja-JP/docs/brain/"
lang: "ja-JP"
---

> AI Agent 向けドキュメント索引: https://ankole.agentbull.com/ja-JP/llms.txt

# Brain

Brain は GBrain に着想を得た長期記憶システムであり、Palantir に類似したオントロジーに基づいて構築された最新のエンタープライズ世界モデルを維持します。会話、ファイル、Web ページに含まれる長期的な価値のある情報を、出所を追跡できる組織知識として整理します。Agent は明確な開示境界の中で、その知識を想起、修正、忘却できます。

Brain は増え続けるチャット履歴を、そのまま記憶として扱いません。人物、組織、出来事、判断、それらの関係について、現在の見取り図を維持します。新しい証拠は以前の Claim を支持、修正、または置換できます。矛盾が見つかった場合も、証拠と以前の状態は人が確認できる形で残ります。

1 つの Ankole インスタンスに属するすべての Agent が、同じ知識空間を使います。Agent ごとに個別のデータベースを複製する仕組みではありません。各記憶は独自の開示範囲を持つため、保存場所の共有が無制限の開示を意味することはありません。

## Brain が学習できる情報

現在の学習経路は 3 つです。

| 経路 | 結果 | 条件 |
| --- | --- | --- |
| Agent が `remember` を呼び出す | 1 つの事実または判断が直ちに永続記憶になる | Agent は 1 つの原子的な Claim、出所、有効な開示範囲を指定する |
| Signals 学習が会話を処理する | 明示的な `remember` がなくても、長期的な価値のある事実、判断、未完了の約束を学習できる | Channel はダイレクトメッセージまたは IM グループであり、Brain メンテナンス Agent に利用可能な `light` profile があること。グループ学習には、同期済みのメンバー権限グループも必要 |
| オペレーターが Source を登録する | ファイルまたは Web ページが検索対象になり、抽出された Claim を生成できる | Claim の抽出にはメンテナンス Agent の `light` profile が必要。ファイルはデプロイから読み取れること。ファイルと取得したページ本文は、有効な UTF-8 テキストで 10 MiB 以下であること。URL は Agent の `web_fetch` profile またはローカルの `ankole-browser` fallback を使う |

Signals 学習は、対象 Channel が一定時間アイドルになるか、関連する会話が終了した後にメッセージのまとまりを処理します。Agent の非公開なモデル会話履歴ではなく、Channel に保存されたメッセージを読みます。ダイレクトメッセージから得た知識の既定範囲は相手本人です。グループから得た知識の既定範囲は、その Channel のメンバー権限グループです。

`remember` が成功すると、その書き込みは確定します。その後に現在のターンが失敗、キャンセル、または再試行されても、記憶は取り消されません。確認済みの記憶は、最終応答の成功に依存しない永続的な結果です。

登録した各 Source には、既定の開示範囲があります。対象読者に必要な情報を届けられる、最も狭い範囲を指定してください。Source をアーカイブすると以後の学習は停止しますが、すでに学習した知識は削除されません。

## Brain が知識を表す方法

Brain は、異なる問いに答えるために複数の形式で知識を保持します。

- **ページ**は、人物、会社、出来事、プロジェクト、文書、概念など、1 つの安定した対象の現在の説明です。
- **Fact**は、確認または更新できる 1 つの観察です。確信度、時刻、出所、保持者、開示範囲を持ちます。
- **Take**は、人、Agent、または Brain が持つ判断、予測、賭け、仮説です。重みを持ち、後から採点または確定できます。
- **Timeline**は、ある対象にいつ何が起きたかを記録します。
- **Link**は、2 つのページ間の関係を記録します。

`holder` は Claim を保持する人または Agent であり、文の主題ではありません。例えば、Alex がある仕入先を信頼できないと述べた場合、その Take の holder は Alex です。仕入先が保持する Fact ではありません。

1 つの Claim には、単独で変化できる 1 つの断言だけを含めます。Brain は各 Claim の出所を保存し、以前のページ版と置換済みの Claim も保持します。修正は現在の見取り図を変えますが、その形成過程を消しません。

## Agent が記憶を使う方法

Brain は 2 つの方法で関連する記憶を提供します。会話の開始時とコンテキスト圧縮の後に、参加者、最近言及された対象、重要な現在の Fact、未完了の約束を含む、上限付きのコンテキストパックを用意します。各テキストターンでは、新しいメッセージ内の名称に一致するページも Agent に示せます。

これらの注入処理自体はモデルを呼び出しません。組み立てがタイムアウトまたは失敗した場合は空の結果を返し、ターンを続行します。想起された内容は背景データであり、命令ではありません。古い場合や不完全な場合もあります。

タスクで明示的な記憶操作が必要な場合、Agent は次のツールを使用できます。

| ツール | 結果 |
| --- | --- |
| `learn_source` | 1 つの Web URL を Source として登録し、バックグラウンドで学習を開始する |
| `recall` | Token 上限の中で、現在の Fact と Take を先に返し、その後に関連するページ断片を返す |
| `get_page` | slug または自然言語名から、開示範囲で裁断した完全なページを読む。名前が曖昧な場合は推測せず候補を返す |
| `entity` | 選択された Fact、関係、バックリンク数を含む対象カードを返す |
| `whoknows` | 現在見える知識から、ある主題を知る人、Agent、会社を順位付けする |
| `delta` | 指定期間に追加または失効した Claim と Timeline イベントを報告する |
| `synthesize` | 想起した証拠を使い、1 つの問いに答える永続的な分析ページを書く |
| `forget` | 理由を記録して、Fact を失効、Take を非アクティブ化、またはページをソフト削除する |

### Brain からだけ想起する Skill を発見する

同梱 Skill の一部は、現在の作業に関連するときだけ必要になる SOP や方法論を含みます。Skill に `brain-recall-only: true` を宣言すると、各 Prompt の Skill カタログには表示されず、Brain から発見できる状態を保ちます。

Brain は Skill の `name`、`description`、`tags` だけを、`lazyload-agent-skills/<skill-name>` という `world` scope の発見レコードとしてインデックスします。Skill の本文、その他すべての Skill file、Agent 固有の教訓は既存の owner に残り、`skill_view` を通じて読み取られます。`recall` がこのレコードを返した場合、Agent は `skill_view` を呼び出します。loader は `ankole-runtime` に従い、互換性のある実行 surface では手順を読み込み、メイン Agent が background-only Skill を選んだ場合は Job への routing guidance を返し、それ以外の互換性のない読み取りは拒否します。このレコードに対する `get_page` も `skill_view` に委譲し、同じ結果を返します。

Brain は候補を選ぶ前に、現在の Agent に対する Agent Plugin と Skill の実効有効化状態を適用します。無効な Skill は発見も読み込みもできません。共有の発見 projection は無効化しても削除されないため、再び有効にすると再構築なしで利用できます。

Embedding モデルがある場合、検索は全文候補とベクトル候補を組み合わせます。Rerank モデルがある場合は、統合した結果を再順位付けできます。Embedding モデルがなくても全文検索は動作します。Rerank モデルがない場合は、統合後の順序を維持します。

## 知識境界と開示境界

保護された各本文セクション、Fact、Take、Timeline イベントは、次のいずれかの開示範囲を使います。

| 範囲 | 取得できる Principal |
| --- | --- |
| `world` | インスタンス内のすべての Principal |
| `group:<name>` | 対応する権限グループの現在のメンバー |
| `principal:<uid>` | 対応する Principal だけ |

Brain は読み書きの時点で、現在の権限グループ所属を確認します。後から所属チームが変わった場合、その変更は各記憶を書き直さなくても、以後の想起に反映されます。

作成者は、自分が書いた Claim と Timeline イベントを取得できます。Agent のオーナーは、その Agent の非公開範囲と、Agent が書いた、または保持する知識を監査できます。オーナーであることだけでは、Agent が所属するグループの共有知識を読めません。オーナー自身もそのグループに所属する必要があります。

グループ会話では 2 段目の開示確認も行います。

- **Strict** は既定値です。確認対象となるすべての参加者が元から取得できる場合に限り、グループ範囲の記憶を開示します。
- **Relaxed** は質問者だけを確認し、他の参加者によって結果を狭めません。

ダイレクトメッセージでは、両方のモードが同じように動作します。

Source または Channel は証拠の出所を記録しますが、学習した知識へのアクセスを付与しません。開示範囲は知識自体に設定します。ページの slug、タイトル、タイプ、存在はインスタンス内で見えます。保護された本文と構造化 Claim は開示範囲に従って裁断されます。

Agent が `remember` を能動的に呼び出すとき、機密保持の指針に従って開示範囲を選びます。この分類はモデルによる最善努力の判断であり、誤る可能性があります。アプリケーションは選択済みの範囲を決定論的に適用しますが、分類の正しさを証明するものではありません。コンプライアンス水準の分離が必要な場合は、記憶分類だけに頼らず、[Principal と権限グループ](https://ankole.agentbull.com/ja-JP/docs/principal-and-groups/index.md)で Agent にアクセスできる主体を制限してください。

## 知識を現在に保つ方法

Dreaming は、判断を必要とする知識の定期メンテナンスです。次の処理を行えます。

- 関連する Fact から、Brain が保持する慎重な Take をまとめる。
- ページをまたぐパターンを見つけ、証拠への Link を持つ分析を書く。
- 関係と Timeline イベントを抽出する。
- 期限を迎えた Take を採点し、校正概要を更新する。
- 矛盾の可能性を検出する。
- 繰り返し現れる証拠に明確なタイプが必要な場合、Schema 用語を提案する。

Dreaming は矛盾を密かに解消せず、関連する Claim を書き換えません。発見を記録し、Console で人が解決または却下できるようにします。Schema の提案も、承認されるまでインスタンスの語彙を変えません。

Fact は種類と経過時間に応じて検索順位の重みを失います。この減衰は、保存された確信度や履歴を変えません。明示的な忘却だけが現在の状態を変えます。Fact は失効し、Take は非アクティブになり、ページはソフト削除されます。ソフト削除したページは、設定された完全削除期限まで復元できます。失効および置換済みの Claim は、監査と校正の履歴として残ります。

Self-healing は検索用投影を維持します。古いチャンクと Embedding を修復し、検索インデックスを確認し、未学習の対象 Channel を見つけます。この処理は推論モデルを呼び出しません。

## Console で Brain を管理する

Console の **Brain** 領域は、知識空間を結果別に表示します。

- **Objects** では、ページ、表示本文、Fact、Timeline、Link、Tag、版、ロールバック、削除、復元を確認できます。
- **Claims** では、Fact と Take の出所と現在状態を確認し、修正、忘却、確定を実行できます。
- **Contradictions** には、人が確認する矛盾候補が入ります。
- **Suggestions** には、承認または却下する語彙提案が入ります。
- **Sources** では、ファイルと URL の登録、学習開始、アーカイブを行えます。
- **Search preview** は、指定した Principal と開示モードで想起を実行します。
- **Principal audit** は、ある Principal が holder、作成者、または対象者である知識を一覧表示します。
- **Health** は、モデルの準備状態、学習の滞留、Embedding の失敗、Channel の前提条件、投影の状態を表示します。

Brain の設定では、Brain のメンテナンスを担当する Agent を選択し、インスタンスの知識空間に属する 2 つのモデル設定を保持します。Brain のすべてのモデル呼び出しは、選択した Agent の ID で実行され、使用量もこの Agent に帰属します。この Agent は有効な状態を保つ必要があります。無効にすると Brain は異常を報告し、Agent を再度有効にするか変更するまで、すべてのモデル呼び出しとローカル URL 取得を停止します。保存済みの知識とテキスト検索は引き続き利用できます。

| 所有者と設定 | 有効になる結果 |
| --- | --- |
| メンテナンス Agent の `light` profile | Signals 学習と Source からの Claim 抽出 |
| メンテナンス Agent の `heavy` profile | モデルを必要とする Dreaming 処理と `synthesize` |
| メンテナンス Agent の `web_fetch` profile | URL Source から読みやすい本文を抽出。ローカルの `ankole-browser` が fallback |
| Brain の Embedding モデル | ベクトル検索と Fact の意味重複判定 |
| Brain の Rerank モデル | 検索結果を統合した後の再順位付け |

任意モデルがない場合、該当する能力だけが制限されます。状態が隠れることはなく、Health ページが利用できない能力を示します。Brain を無効にすると、記憶ツールとコンテキスト注入がなくなり、バックグラウンド処理が停止します。保存済みの知識は変わりません。

すべてのインスタンスに、共通語彙を提供する `general` Schema Pack が入ります。初期設定では、プライベートエクイティとベンチャーキャピタル、公開市場、消費者ビジネス、法務、ソフトウェア、コンサルティングの Pack も選択できます。すべての Agent が導入済みの語彙を共有します。繰り返し現れる概念は、無秩序な新タイプではなく、承認待ちの Schema 提案になります。

## 現在の対応範囲

Brain が会話のまとまりを自動学習できる Channel は、現在ダイレクトメッセージと IM グループだけです。登録できる Source はファイルと URL です。Connector、Webhook、Alert の Source から直接学習することはできません。

Brain は証拠を保存するシステムであり、保存内容がすべて正しい、または完全であることを保証しません。重要な判断では、出所、時刻、確信度、holder、矛盾状態を合わせて確認してください。

システム内での Brain の境界は[アーキテクチャ](https://ankole.agentbull.com/ja-JP/docs/architecture/index.md)を参照してください。実行時設定は [AppConfigure](https://ankole.agentbull.com/ja-JP/docs/app-configuration/index.md) を参照してください。実際の作業履歴から手順上のガードレールを学ぶ仕組みは [Skill Lessons](https://ankole.agentbull.com/ja-JP/docs/skill-lessons/index.md) を参照してください。
