INITE Brain について
INITE Brainは、出典情報を持つ双時相ナレッジグラフを基盤とした、AIエージェント向けのオープンソース長期記憶システムです。MCPとRESTを通じて、検索、引用付き回答、文書取り込み、意思決定の再確認を行えます。
主な機能
- 01双時相ナレッジグラフ
- 02出典情報付きの事実
- 03引用付き回答の生成
- 04文書の取り込みと索引化
- 05タイムラインと決定の再確認
活用シーン
- 01関連するエージェント記憶の検索
- 02引用付き回答の作成
- 03間を空けた作業の再開
- 04決定の記録と確認
MCP 対応
MCPクライアントに、検索、記録、回答生成、タイムライン操作などの記憶ツールとリソースを公開します。クライアントが対応していれば、コネクターはMCP samplingも中継します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://brain.inite.ai/mcpclaude mcp add --transport http inite-ai-inite-brain-service https://brain.inite.ai/mcp{"mcpServers":{"inite-ai-inite-brain-service":{"type":"http","url":"https://brain.inite.ai/mcp"}}}Cursor で開く{"servers":{"inite-ai-inite-brain-service":{"type":"http","url":"https://brain.inite.ai/mcp"}}}VS Code で開く{"mcpServers":{"inite-ai-inite-brain-service":{"type":"http","url":"https://brain.inite.ai/mcp"}}}{"mcpServers":{"inite-ai-inite-brain-service":{"serverUrl":"https://brain.inite.ai/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://brain.inite.ai/mcphttps://brain.inite.ai/mcp/{companyId}認証が必要ツール
30このツールにパラメーターはありません。
詳細
INITE Brain
MCP と REST を通じて利用できる、出典情報を備えた双時間ナレッジグラフによる、AI エージェント向けオープンソースメモリです。
ウェブサイト · クイックスタート · アーキテクチャ · ドメインパック · はじめに · ドキュメント · エージェントガイド
クイックスタート
Docker Compose v2、openssl、および OpenAI API キー(デフォルトのモデル設定)が必要です。SurrealDB とともにリリース済みイメージ(linux/amd64 および
linux/arm64)を実行します。クローンもビルドも不要です。
: "${OPENAI_API_KEY:?export OPENAI_API_KEY first}"
mkdir inite-brain && cd inite-brain
curl -fsSLO https://raw.githubusercontent.com/inite-ai/inite-brain-service/main/docker-compose.quickstart.yml
BRAIN_KEY="brain_$(openssl rand -hex 24)"
KEY_HASH="$(printf %s "$BRAIN_KEY" | openssl dgst -sha256 -r | cut -d' ' -f1)"
cat > .env <<EOF
BRAIN_VERSION=2.4
OPENAI_API_KEY=$OPENAI_API_KEY
BRAIN_API_KEYS='[{"keyHash":"sha256:$KEY_HASH","companyId":"co_demo","scopes":["brain:read","brain:write"]}]'
SURREALDB_PASSWORD=$(openssl rand -hex 24)
SURREALDB_SCOPED_PASS=$(openssl rand -hex 24)
FORGET_HMAC_KEY=$(openssl rand -hex 32)
EOF
docker compose -f docker-compose.quickstart.yml up -d --wait
export BRAIN_URL=http://localhost:3030 BRAIN_KEY
curl "$BRAIN_URL/health"
echo "API key (shown once, only its hash is stored): $BRAIN_KEY"
続いて、何かを記憶させて質問してみましょう。または、Authorization: Bearer $BRAIN_KEY を指定して、MCP クライアントを http://localhost:3030/mcp に接続してください。BRAIN_VERSION には X.Y(そのリリースの最新パッチ)または vX.Y.Z を指定します。:latest はメインブランチのデプロイによって上書きされます。初回起動時はローカルの ONNX モデルがボリュームにダウンロードされるため、初回の書き込みには数分かかることがありますが、以降はかかりません。ホスト型サービス、ソースからの実行、および本番環境については、はじめにをご覧ください。
Mem0、Zep、LettaではなくBrainを選ぶ理由
- Mem0 はより手軽に導入できます。追加・検索API、マネージドプラットフォーム、多数のフレームワーク連携を備えています。Brainは最初により多くの設定を求めます(テナント、スコープ付きキー、個人メモリでの
userId)。その代わり、各ファクトの有効時刻と知識時刻の両方を保持します。競合する書き込みがあった場合、先行するファクトを置き換えるか、COMPETINGとして保留します。暗黙のうちに上書きされることはありません。 - Zep(Graphiti) は設計が最も近いものです。Graphitiも時間を扱うナレッジグラフであり、グラフデータベース上のPythonライブラリとして組み込めます。メモリを独自のプロセス内に置きたい場合は、こちらを選んでください。Brainはサービスです。テナントごとに個別のデータベースを持ち、読み取り・書き込み・管理の各スコープに対応したAPIキー、PII制御、トゥームストーンを残すGDPR対応の
forget_entityを備えています。 - Letta は、エージェントが自らのメモリを編集するエージェントランタイムです。エージェントのループとメモリを1つのサーバーにまとめたい場合に使ってください。Brainはメモリのみを担います。エージェントはClaude Code、Cursor、Codex、または独自のコード内にとどまり、MCP(Streamable HTTP、またはstdio shimの
@inite/brain-mcp)経由でBrainに接続します。 - 回答を保留できます。
synthesizeは各主張の末尾に、その根拠となるファクトのIDを付けます。検証器が根拠をチェックし、厳格モードでは裏付けのない回答を返さず、回答を保留します。各ファクトには、元となった会話または文書へのポインターが保持されます。 - 他システムのベンチマーク数値は借用しません。 主に寛容な評価者を使っている他システムの自己申告スコアと、Brainのメモリ精度の結果を比較することはありません。測定方法についてはdocs/eval-protocol.mdをご覧ください。
INITE Triadの一部: Brainは、INITE Billingと同様に、INITE Authが発行するトークンを検証します。両者間の契約はTriad契約です。1つのcomposeファイルで3つすべてを実行できます: inite-ai/inite-triad。
Brainとは
Brainは、会話をまたいでエージェントが記憶できるようにします。何が話されたか、何が変わったか、どのエンティティが関係しているか、そして回答を何が裏付けているかを記憶します。バイテンポラルグラフに構造化ファクトと関係性を保存し、ソースエピソードでコンテキストを保持します。シーンと信念は、イベントや変化する状態を捉えます。Domain Packsを使うと、エンジンをフォークせずに、製品の語彙やライフサイクルに合わせてメモリを調整できます。
Brainはお客様のインフラ上で実行するか、ホステッドサービスbrain.inite.aiに接続できます。Webアプリではメモリを検索・探索でき、RESTとMCPが統合インターフェースを提供します。
Brainを選ぶ理由
- コンテキストを伴うメモリ。 構造化ファクト、ソースの文章、さらに有効化されている場合はシーンと信念も取得できます。来歴をたどって、裏付けとなる会話、文書、またはエビデンスの断片を確認できます。
- 変更を確認できます。 ファクトには有効時刻と知識時刻が付与されます。更新によって以前のファクトを置き換えられ、未解決の不一致は
COMPETINGのまま保持されます。撤回しても履歴は保持されます。管理者による忘却では、関連レコードを削除してトゥームストーンを残します。 - ドメインをモデル化。 Packsでは、型付き述語、抽出ガイダンス、シーンスキーマ、状態遷移、検証、保持に関するヒントに加え、オプションのメディア機能とMCPツールを定義できます。
- スコープが明確。 テナントごとに個別のデータベースを持ちます。個人メモリには
userIdを使用し、省略するとテナント全体のメモリが選択されます。キーのスコープ、ABACポリシー、PII制御によって、アクセスをさらに制限できます。 - 回答を検証できます。 ハイブリッド検索、グラフ検索、マルチホップ検索でエビデンスを収集します。統合時にエビデンスを引用し、検証を実行します。裏付けが不十分な場合は、厳格なガードレールによって回答を保留できます。
アーキテクチャ
Brain は、ソース素材、派生メモリ、読み取り経路を分離しています。これは概念図であり、個々の取り込み経路や検索プロファイルによって、利用される部分は異なります。
flowchart LR
input["REST / MCP<br/>conversations · documents · facts"]
raw[("Source records<br/>documents · episodes · evidence")]
derive["Indexers and scene builders<br/>candidates · entity resolution · conflicts"]
memory[("Connected memory on SurrealDB<br/>facts + graph · scenes · beliefs")]
retrieve["Retrieval<br/>semantic + lexical · graph · multi-hop"]
answer["Synthesis + verification<br/>answer with citations or abstention"]
packs["Domain Packs<br/>vocabulary · memoryModel · tools"]
media["Evidence registration / upload<br/>scan hook · trusted processors"]
input --> raw
input --> derive
media --> raw
raw --> derive
derive --> memory
memory --> retrieve
raw --> retrieve
retrieve --> answer
packs -. "domain configuration" .-> derive
packs -. "capabilities and consent" .-> media
| メモリレイヤー | 保持する内容 |
|---|---|
| 事実とエンティティ | 型付きの主張、正規化されたエンティティ、関係、確信度、ソースの帰属情報、時間的な履歴。 |
| エピソード | 派生メモリが参照したり、そこから再構築したりできるソースのやり取りと会話のコンテキスト。 |
| シーン | 要約、エンティティ、状態の変化、ソースリンクを含む、範囲が定められたイベント。任意の要約埋め込みとシーン検索レーンを使うことで、ほかの証拠と併せて検索できます。 |
| 信念 | 改訂履歴と裏付けとなるシーンを含む派生状態。パックから投影された状態差分を、信念の昇格に利用できます。 |
| 証拠 | アセット、位置が特定された断片、処理実行、派生表現、およびそれらが裏付けるメモリへのリンク。 |
再構築可能なメモリ。 派生ワールドは、保持されたエピソードからステージング版に再構築できます。昇格するまで、読み取り側は以前のワールドを参照し続けます。シーンのメンテナンスでは、予算、リース、メトリクスを設定して、スケジュールに従って変更のある会話を処理できます。また、シーンを構成し、裏付けのある信念を昇格できます。
設定可能な検索。 検索プロファイルでは、コーパスと質問に応じてメカニズムを選択します。セマンティック検索と語彙検索、グラフの展開、再ランキング、生のパッセージ、シーン検索、信念検索は、それぞれ独立した機能です。既知のエンティティは graph_retrieve から検索できます。関係をまたぐ質問には search_multi_hop を使用できます。
サービス提供とバックグラウンド処理の分離。 NestJS サービスは、SurrealDB を基盤とするジョブキュー、リース、ワーカースレッドへのオフロードを使用します。イメージを単一のプロセスとして実行することも、PROCESS_ROLE=api|worker を使って分割することもできます。詳しくは運用ガイドを参照してください。
コードには、すべてのインストール環境で全レイヤーが実行されることを保証するものではなく、オプトインで利用できる機能が含まれています。シーンの構築、シーンのサービス提供、信念の昇格、証拠のアップロード/処理、パックの投影には、それぞれ個別のゲートがあります。有効にする際は、アーキテクチャ、運用ガイド、およびシーン、証拠、パックの投影のフラグ定義を確認してください。
ドメインパック
パックは、テナントごとにインストールされるバージョン管理された JSON マニフェストです。エンジンにドメインの情報をどのように解釈するかを伝えます。パックから得られた観察結果は、コアパイプラインが検証して解決する候補のままです。
| パックで宣言できる項目 | 目的 |
|---|---|
predicates | 型付き語彙、値の制約、競合の意味論、減衰、PII クラス。 |
extractionProfile, evalFixtures | ドメインの指示、例、抽出チェック。 |
memoryModel | シーンのスキーマ、状態モデルと遷移、注意のヒント、検証ルール、保持期間に関する助言的なヒント。また、対応するモダリティ、要求するプロセッサーの機能、生の証拠に関するポリシーも宣言します。 |
indexer, seedDocuments | ドキュメントのインデックス作成への参加、およびパックに付属するナレッジ。 |
mcpTools | エージェント向けの追加ツール。オペレーターの明示的な同意が必要です。 |
業界別パックライブラリには、次のものが含まれています。
| パック | メモリモデルの例 |
|---|---|
real_estate | 物件情報、賃貸借契約、許可証。 |
fintech | ライセンスと認定資格。 |
medical | 医薬品オントロジー、処方、承認のライフサイクル。 |
legal | 契約、義務、法的案件。 |
insurance | 保険契約と保険金請求のライフサイクル。 |
hr | 役職と従業員のライフサイクル。 |
たとえば、real_estate は、物件情報の状態遷移として
listed → under_offer → sold を宣言するほか、取り下げと再販売開始の遷移も宣言します。内見と契約締結のシーンを区別し、内見には一時的な保持期間のヒントを、契約締結には長期的な保持期間のヒントを設定します。
組み込みの code_memory パックは、エンジニアリング上の判断、根拠、不変条件、注意点、変更のライフサイクルをカバーします。record_decision、why、recall_decisions を使って、コードの背後にある理由を保持してください。6つの業界別パックは配布可能ですが、組み込みのコードメモリはコアシードの一部です。
作成と配布。 pnpm pack:init my_pack でひな形を作成し、検証し、必要に応じて署名して、レジストリに公開した後、テナントごとにインストールします。レジストリのバージョンは不変で、インストールはチェックサムで固定されます。署名要件はサーバーの信頼ポリシーに従います。レジストリとマーケットプレイスでは、パックの検索、発行者プロフィール、ミラーリング、任意の課金に対応しています。
同意はインストールの一部です。 現在、ファーストパーティの業界別パックはメディア機能を宣言しているため、インストールには該当セクションの確認と --accept-modalities の指定が必要です。これにより宣言された機能が許可されますが、不足しているプロセッサーが補われるわけでも、サーバーのすべての機能が有効になるわけでもありません。パックの MCP ツールには別途同意手続きがあります。組み込みの code_memory のメディア宣言も、それだけでメディア処理を有効にするものではありません。
作成、署名、インストールのコマンドの詳細: Domain Packs standard · MCP pack tools · pack evaluation。
はじめに
ホステッドサービスを使う
ホステッド版の brain は会社ごとにプロビジョニングされます。テナント(companyId)と、スコープを限定した API キーが提供されます。キー画面にサインインしてキーを発行してください。キーは一度だけ表示され、Claude Code、Claude Desktop、Cursor、VS Code、Codex CLI、Goose 用のすぐに貼り付けられる設定も併せて表示されます。ワークスペースがまだプロビジョニングされていない場合は、[email protected] にお問い合わせください。
export BRAIN_URL="https://brain.inite.ai"
export BRAIN_KEY="brain_YOUR_API_KEY"
すでに保有している認証情報を使って、API 経由でキーを発行することもできます。POST /v1/keys は呼び出し元自身のスコープを超えないキーを発行し、POST /v1/keys/{id}/revoke はキーを取り消します。同じエンドポイントはセルフホスト型のデプロイでも使えるため、以下の環境変数キーはブートストラップにのみ使用します。
ソースから実行する
前提条件:Node.js 24.9+、pnpm 10、Docker Compose。デフォルトのモデル設定では OpenAI API キーが必要です。ローカルの埋め込みと代替モデルプロバイダーは設定で選択できます。運用を参照してください。
git clone https://github.com/inite-ai/inite-brain-service.git
cd inite-brain-service
pnpm install --frozen-lockfile
cp .env.example .env
# Set OPENAI_API_KEY in .env for the default model configuration.
ローカルの読み書きキーを作成します。生成されたキーとその登録情報が、開発用 .env に追記されます。Brain は SHA-256 ハッシュを使って認証します。
node <<'JS'
const { randomBytes, createHash } = require('node:crypto');
const { appendFileSync } = require('node:fs');
const key = 'brain_' + randomBytes(24).toString('hex');
const keys = [{
keyHash: 'sha256:' + createHash('sha256').update(key).digest('hex'),
companyId: 'co_demo',
scopes: ['brain:read', 'brain:write'],
}];
appendFileSync('.env', '\nBRAIN_KEY=' + key + '\nBRAIN_API_KEYS=' + JSON.stringify(keys) + '\n');
JS
docker compose up -d surrealdb
pnpm start:dev
2 つ目のターミナルを開き、同じディレクトリから次を実行します。
export BRAIN_URL="http://localhost:3000"
export BRAIN_KEY="$(node --env-file=.env -p 'process.env.BRAIN_KEY')"
curl --fail-with-body "$BRAIN_URL/health"
コンテナーをすべてセットアップするには、pnpm start:dev の代わりに docker compose --env-file .env up -d --build を使用します。--scale brain=N で複数のレプリカを実行できるよう、アプリサービスはホストポートを公開しません。そのため、まず docker-compose.override.yml.example を docker-compose.override.yml にコピーしてください。このファイルはホストの 3030 を割り当てるため、BRAIN_URL=http://localhost:3030 を使って以下のリクエストを実行できます。Compose のデフォルト設定はローカル開発用です。本番環境の認証情報とトポロジーについては、デプロイを参照してください。
何かを記憶させてから、それについて質問する
テキストを入力すると、事実が返されます。Brain は会話ターンを取り込み、エンティティと主張を抽出し、それぞれを二時点競合解決にかけます。
curl --fail-with-body -X POST "$BRAIN_URL/v1/ingest/mention" \
-H "Authorization: Bearer $BRAIN_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "Maria moved to Berlin in June and prefers morning appointments.",
"userId": "user_42"
}'
curl --fail-with-body -X POST "$BRAIN_URL/v1/search" \
-H "Authorization: Bearer $BRAIN_KEY" \
-H "Content-Type: application/json" \
-d '{ "query": "where does Maria live", "userId": "user_42", "limit": 5 }'
書き込みと読み取りの両方で、アプリケーションの安定したユーザー ID を使用してください。テナント全体で共有するメモリーにする場合に限り、両方で userId を省略してください。userId は発話者も示します。一人称の発話(「私はベルリンに引っ越しました」)はユーザー自身のエンティティに記録され、/v1/synthesize での「私はどこに住んでいますか?」という質問には、そのユーザーに向けて回答されます。メモリーは、ユーザー自身から「私は Maria です」のように名前を学習し、ユーザー自身のエンティティに name の事実として記録します。または、オンボーディング時の書き込みから学習させることもできます。entityRef: { "vertical": "user", "id": "user_42" }、predicate: "name"、同じ userId を指定して /v1/ingest/fact に書き込みます。(メンションに話者アンカー { "vertical": "user", "id": "user_42", "role": "speaker", "name": "Maria" } を指定しても、そのユーザーの名前が記録されます。)ユーザーのスコープで他の人の発言を伝えるには、代わりにその人を話者としてアンカーしてください。名前がまだ学習されていない場合は、workspace_status と /v1/users/:userId/profile にその旨が表示されます。一度だけ尋ねて、記録してください。
すでに知っている事実を記録する
主張がすでに構造化されている場合(CRM のフィールドが変更された、イベントが発生したなど)は、抽出器を使わずにそのまま指定します。レスポンスには、書き込みが行われたことだけでなく、リゾルバーが下した判断(INSERTED、SUPERSEDED、COMPETING…)が示されます。
curl --fail-with-body -X POST "$BRAIN_URL/v1/ingest/fact" \
-H "Authorization: Bearer $BRAIN_KEY" \
-H "Content-Type: application/json" \
-d '{
"entityRef": { "vertical": "rent", "id": "cust_42" },
"predicate": "complained_about",
"object": "late maintenance",
"validFrom": "2026-09-01T10:00:00Z",
"userId": "user_42",
"source": { "vertical": "rent", "messageId": "msg_1" }
}'
上記のローカルキーには管理スコープがありません。パックのインストールと忘却には、適切なスコープを持つオペレーターキーが必要です。詳細ははじめにを参照してください。
エージェントを接続する
Claude Code — 1 つのコマンドで設定
/plugin marketplace add inite-ai/inite-brain-service
/plugin install inite-brain@inite
これにより、MCP サーバー、6 つのスキル、ライフサイクルフックがまとめてインストールされます。SessionStart は現在のリポジトリについて Brain がすでに知っている情報を注入し、PreCompact と SessionEnd はセッションの内容を書き戻します。Claude Code は有効化時に API キーの入力を求め、OS のキーチェーンに保存します。詳細とオプションについては、プラグインの READMEを参照してください。
手動で設定しますか?
claude mcp add --transport http brain https://brain.inite.ai/mcp \
--header "Authorization: Bearer $BRAIN_KEY"
Gemini CLI — 1 つのコマンドで設定
export BRAIN_API_KEY="brain_..."
gemini extensions install https://github.com/inite-ai/inite-brain-service
MCP サーバー、6 つのスキル、エージェント向けメモリーガイドがコンテキストとして読み込まれます。キーは環境変数に保持されます。マニフェストは ${BRAIN_API_KEY} を参照し、Gemini は接続時にこれを展開します。
Cursor と VS Code — ワンクリックで設定
この 2 つはインストール URL スキームを公開しているため、このファイルの先頭にあるバッジからインストールできます。その後、クライアント独自の MCP 設定でプレースホルダーキーを置き換えてください。それ以外のすべてのクライアントでは、URL https://brain.inite.ai/mcp(または ChatGPT 用の ?tools=chatgpt。このコネクターの契約は search + fetch のみです)を使用します。
その他のすべてのハーネス
curl -fsSL https://brain.inite.ai/install.sh | sh
マシン上で見つかったすべてのエージェントにスキルをインストールします。Claude
Code、Codex CLI、Gemini CLI、openclaw、opencode が対象です。プロジェクトローカルのものには
--target cursor,agents --scope project を指定します。
SKILL.md はエージェント間で共通の形式なので、同じ6つのスキルをどこでも
そのまま利用できます。
stdio MCP サーバーを起動するクライアントでは、ファーストパーティの
@inite/brain-mcp コネクターを使用してください。この設定は、
Claude Desktop を含む mcpServers マップを備えたクライアントに適しています。
{
"mcpServers": {
"brain": {
"command": "npx",
"args": ["-y", "@inite/brain-mcp"],
"env": {
"BRAIN_API_KEY": "brain_YOUR_API_KEY",
"BRAIN_COMPANY_ID": "YOUR_COMPANY_ID"
}
}
}
}
ローカルでセットアップする場合は、会社 ID に co_demo、.env のキーを使用し、
env に "BRAIN_BASE_URL": "http://localhost:3000" を追加してください(Compose の場合はポート
3030)。クライアントから Node.js と npx を利用できる必要があります。
ネイティブのリモート MCP に対応したクライアントは、 Streamable HTTP 経由で直接接続できます。
URL: https://brain.inite.ai/mcp (tenant taken from the credential)
https://brain.inite.ai/mcp/<companyId> (explicit, must match the key)
Authorization: Bearer brain_<api-key>
どちらの表記でも同じエンドポイントを利用できます。クライアントが URL しか扱えない場合は、テナントなしの表記を使用してください。OAuth で検出されるすべてのコネクターが該当します。この場合、テナントは設定を貼り付けるユーザーからではなく、トークンの org クレームから取得されます。認証なしで /mcp/health(および
/mcp/<companyId>/health)にプローブを送信して応答を確認できるため、認証情報がなくてもセットアップスクリプトで到達可能性を確認できます。
キーのスコープによって利用可能なツールが決まります。サーバーフラグとインストール済みパックで、利用できる機能を拡張できます。 コネクターはツールとリソースを転送し、クライアントが対応している場合は MCP サンプリングも仲介します。クライアント別のセットアップガイドをご覧ください。
| エージェントのタスク | まず使うもの |
|---|---|
| 関連する記憶を見つける | search_knowledge、graph_retrieve、search_multi_hop |
| 引用付きで回答する | synthesize |
| 間が空いた後に再開する | memory_diff、get_entity_timeline |
| 情報を記録する | 1つの主張には record_fact、長めの資料には ingest_document |
| 意見の相違を調べる | detect_contradiction、get_competing_facts |
| エンジニアリング上の判断理由を記憶する | record_decision、why、recall_decisions |
| 接続したばかりの対象を確認する | workspace_status |
記憶の仕組みについてはエージェントの記憶ガイドを、
再利用可能なエージェントのワークフローについては
スキルガイドをお読みください。
統合結果では事実への参照は citations に、その他の証拠への参照
(エピソード、断片、シーン、信念)は evidenceCitations に保持されます。
回答を提示する際は、両方を維持してください。
SDK で構築する
npm install @inite/brain
import { createBrain, brainTools } from '@inite/brain'
const brain = createBrain({ apiKey: process.env.BRAIN_KEY!, userId: 'user_42' })
await brain.remember('Maria moved to Berlin in June.')
const { answer, citations } = await brain.answer('where does Maria live')
brainTools(brain) は Vercel AI SDK がそのまま受け取れるツール定義を返し、
createBrainStore(brain) は同じ記憶を扱う LangGraph 形式のストアを返します。依存関係は1つ
(zod)のみで、フレームワークは不要です。
@inite/brain。
Anthropic のメモリーツール(memory_20250818)を使用していますか?
エージェントのループを変更せずに、ファイルシステムのバックエンドをテナント分離されたサービスに置き換えられます。
@inite/brain-memory-tool。
ドキュメントを取り込む
サーバーで DOCUMENT_INGEST_ENABLED=1 を有効にします。正規化したテキストを
Source → Indexer → Candidates → Brain に送信します。
curl --fail-with-body -X POST "$BRAIN_URL/v1/ingest/document" \
-H "Authorization: Bearer $BRAIN_KEY" \
-H "Content-Type: application/json" \
-d '{
"kind": "markdown",
"title": "Acme maintenance review",
"text": "Customer cust_42 reported late maintenance. The team agreed to review response times next week.",
"occurredAt": "2026-09-01T10:00:00Z",
"userId": "user_42",
"contextRef": { "vertical": "rent" }
}'
インデクサーは、コアが事実を解決してコミットする前に候補をステージングします。新しいパックをインストールした後、保存済みのコンテンツを再インデックスできます。外部インデクサーはプル型のワーク API 経由で参加できます。storeContent: false にすると、そのドキュメントのコンテンツ保持が無効になるため、後で再インデックスするときにテキストを再利用できません。
ドキュメントパイプライン ·
外部インデクサー。
または、すでに存在するもの(フォルダー、バケット、サイト、MCP サーバー)を脳に読み込ませることもできます。ソースパック(file_memory、web_memory)をインストールし、Admin → Connections でソースを接続して同期します。すべての事実にファイルのリビジョンが付与されます。ノート PC、CI ランナー、LAN 上のマシンにあるものは、
@inite/brain-agent がその場所を巡回します。フォルダー、リポジトリにコミットされたドキュメント、ローカル MCP サーバーなどが対象です。記録の管理は脳が行います。ソースプレーン。
ファイルとエビデンス
エビデンスプレーンは、POST /v1/ingest/evidence-asset によるメタデータ/参照情報の登録と、POST /v1/ingest/evidence-blob によるマルチパートのバイナリデータのアップロードに対応しています。アップロードされたアセットはスキャンフックを通過し、信頼済みのプロセッサーに振り分けられます。出力は派生表現であり、プロセッサーが提供する場合はフラグメントロケーターも含まれます。
現在のアダプターには、ローカルでの画像メタデータのデコード、PDF テキストレイヤーの抽出、プレーンテキストの抽出が含まれます。**画像メタデータの処理は、視覚的なシーンの理解ではありません。PDF テキストの抽出は、OCR ではありません。**パックが宣言するモダリティは機能の要求であり、対応する音声、動画、またはビジョンのプロセッサーがインストールされていることを示すものではありません。
これらのパスには、それぞれのエビデンスゲート、ストレージ設定、該当するパックの同意が必要です。生データの提供では、スコープと PII ポリシーも確認されます。 エビデンスの仕様 · エビデンスの設定 · プロセッサーアダプター。
Brain を基盤に構築する
- ドメインを拡張する:パックを作成し、レジストリに公開して、レビュー済みのバージョンをテナントごとにインストールします。
- インデクサーを接続する:プルプロトコルとリファレンスクライアントを使用します。
- エージェントを拡張する:パックの MCP ツールを宣言します。追加されるツールの範囲については、別途同意が必要です。
- API を確認する:OpenAPI 3.1 は、プラットフォームの仕様から
pnpm openapi:buildで生成されます。
品質と評価
検索、回答の正確さ、状態遷移の正しさは、それぞれ異なるものを測定します。公開されたスコアは、特定のデータセット、リーダーモデル、検索プロファイル、トークン予算、コードリビジョンに対するものです。稼働中のサービス全般について、正確性を保証するものではありません。
| 評価 | 検証内容 |
|---|---|
| LoCoMo | 元の会話がコンテキストに収まる場合の表現品質。 |
| LongMemEval | より長い会話履歴に対する想起と推論。 |
| BEAM | 履歴の拡大に伴う品質の変化。 |
| メモリの適合性と状態遷移 | メモリの動作とライフサイクルの変更を、機械的かつ判定器なしで検証します。 |
| ドメインパックとコードメモリの評価セット | ドメイン情報の抽出、エンティティの同一性、状態、エンジニアリングメモリのシナリオ。 |
会話メモリの評価では、厳格な二値判定器、独自のフルコンテキストベースライン、対応のある統計分析、ホールドアウト分割を使用しています。報告された数値とあわせて、評価プロトコルと評価手法をお読みください。異なるプロトコルで公開されたスコアは、直接比較できません。
**CI:**PR では、リント、フォーマット、型チェック、ビルド、カバレッジ付きユニットテスト、ソケットテストと統合テストに加えて、フロントエンドチェックとサプライチェーンチェックが実行されます。実際の LLM を使った品質評価は、すべての PR ではなく、夜間または手動実行で行われます。ワークフローが正しい情報源です:
.github/workflows/ci.yml。
評価セットのガイド:メモリの適合性 · 状態遷移 · ドメインパック · コードメモリ。
技術スタック
Node.js 24 · NestJS · TypeScript · SurrealDB 3.x · 設定可能な埋め込みモデルと LLM プロバイダー · ローカル BGE-M3 オプション · 設定可能な再ランキング · SurrealDB を利用した ジョブとリース · ワーカースレッド · OpenTelemetry。ウェブアプリとドキュメントには、 Next.js、React、Tailwind CSS を使用しています。
ドキュメント
| タスク | 参照先 |
|---|---|
| 統合する | はじめに、API、MCP エージェントガイド |
| メモリを理解する | アーキテクチャ、データモデル、二時点セマンティクス、検索プロファイル |
| 出所とアクセスを確認する | 事実の出所、ユーザープロファイル、ソースの信頼性、ABAC |
| 拡張する | ドメインパック、ドキュメントパイプライン、MCP パックツール |
| 運用する | 運用、運用担当者向けプレイブック、デプロイ |
| 評価する | プロトコル、方法論、ハーネス |
コントリビューション
AI エージェントを使ってコントリビューションする
エンジニアである必要はありません。リポジトリを開き(上の Codespaces には SurrealDB が実行中の環境が用意されています)、コーディングエージェントを起動して、アイデアを自然な言葉で説明してください。
- Claude Code:
/contribute— アイデアを言い換え、短い仕様を書き、テストを含めて実装し、ゲートを実行して PR を作成します。/spec-ideaはアイデアを課題として登録するだけです。 - その他のエージェント(Cursor、Codex、Copilot、Gemini CLI、Windsurf…):「AGENTS.md を読んで、…の追加を手伝ってください」。
AGENTS.md はエージェント向けの信頼できる情報源です。コマンド、変更可能な領域(安全に変更できる箇所と、先にメンテナーの確認が必要な箇所)、アイデアから PR までの流れが記載されています。提案だけしたい場合は、製品アイデアフォームをお使いください。
ワークフロー
ワークフローについてはCONTRIBUTING.mdを、コミュニティガイドラインについてはCODE_OF_CONDUCT.mdを参照してください。
pnpm lint:ci
pnpm format:check
pnpm typecheck
pnpm build
pnpm test
pnpm test:socket
# Integration suites require Docker:
pnpm test:e2e
pnpm test:e2e:jobs
変更する動作に応じて追加の評価を選択してください。実際のモデルを使った実行にはプロバイダーの認証情報が必要です。データベースの変更は、新しい番号付きマイグレーションとしてsrc/db/migrations/に追加してください。脆弱性の報告については、SECURITY.mdに従ってください。
ロードマップ
現在の作業については、課題とリリースを確認してください。設計メモと以前の試みはdocs/roadmapに残っています。項目がリリース済みか保留中かを判断する前に、日付とステータスを確認してください。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。