ochakai

数字の読み方を持ち寄る。

revenue = SUM(price)」。セマンティックレイヤーが教えてくれるのは、ここまで。その 100 が良い数字なのか、悪い数字なのかまでは教えてくれない。ochakai は、その判断に必要な文脈をデータエージェントに渡すコンテキストプロバイダー。指標の定義、検証済みクエリ、そして Slack に散らばりがちな「読み方」を、人とエージェントでひとつのナレッジベースに育て、MCP(Model Context Protocol)でどのエージェントにも届ける。

$ ochakai context "なぜ売上が落ちている?"

# metrics/revenue · verified · by human:ayako
revenue = SUM(orders.price)  # 返金と社内テスト注文は除外

# insights/revenue-reading · verified · 41回参照
週次ベースラインは ¥12〜14M。GW は毎年落ちるので、WoW ではなく YoY で比較。

# queries/sales/revenue-by-week · verified · canary passing
SELECT date_trunc('week', created_at) AS week, SUM(price) …
get_context を 1 回呼ぶだけ。定義も、読み方も、検証済みクエリも、ひとつの応答で。LLM は挟まない。

定義も「読み方」も、同じ検索で

推奨タイプの名前は OKF カタログの語彙そのまま。独自の文書種別があれば、任意の一行の値を自分のタイプとして使える — 綴りがそのまま意味なので、エクスポートして読み込み直しても型は変換されずに残る。エントリにはスクショや ER 図、PDF も添付でき、ファイル名も中身も検索にかかる。get_context を 1 回呼べば、関連エントリが本文まるごと、リンクも展開済みで返る。LLM は挟まない。

Metric

その数字が何を指すのかと、社内での呼ばれ方

Attested Computation

認められた計算と、その実行を後から検証する手立て。ゴールデンクエリもこれ

Insight

指標の読み方。ベースライン、季節性、注意点

Glossary Term

その言葉が社内で何を意味するか

BigQuery Table

データソースやカラムの注意点、既知の問題

Reference

外部の資料を、エージェントが見に来る場所に写しておく

セマンティックレイヤーにも、メモリレイヤーにもできないこと

「読み方」も、れっきとした知識

ベースライン、季節性、しきい値。セマンティックモデルの YAML には収まらない暗黙知を Insight として記録し、指標の定義と同じ検索で返す。

記憶を持つ、書き戻しループ

エージェントが学びをドラフトとして書き戻し、人がレビューして verified に上げる。却下した提案も理由ごと残るから、同じ提案を蒸し返さずにすむ。動かなくなったエントリは結果報告(worked / failed)ですぐ気づける。Claude Code のフックを入れれば、想起も書き戻しも自動で動く。しかも LLM なしで。

自動抽出ではなく、キュレーション

メモリレイヤーは、起きたことをそのまま覚えるだけ。ochakai が蓄えるのは、人のレビューを通った知識だけ。役割が違うので、併用できる。

どのクライアントからでも、ロックインなし

Claude Code も、ホスト型 MCP エージェントも、CI ジョブも、同じ知識を参照する。全体は markdown + YAML(OKF バンドル)で書き出せて、git に置ける。MIT ライセンスで、テナントごとにセルフホストできる。

どこにも何も送らない

テレメトリがないので、オプトアウトの設定もない。通信先は、あなたが自分で有効にした Google Cloud の API だけ。利用回数はあなたの DB の行として残る — どの知識が実際に使われているかを、レビューする人が見るためのもの。

決定は、すべて記録に残る

番号付きの設計ドキュメント 38 本が、何を決めて何を断ったかを書き残している。しかも書き換えない — 決定が覆るときは、古い文書を直すのではなく新しい文書が上書きする。なぜこの形なのかを、賭ける前に読める。

すでに動いている道具の、どこに並ぶのか

2026 年、MCP で指標の定義をエージェントに配ること自体はもう当たり前で、セマンティックレイヤーもウェアハウスもデータカタログもやっている。ここに挙げるのは、ochakai が何を違えているか、そして何をあえてやらないか。優劣表ではなく役割の違いとして読んでほしい — 併用できる。好みはメモリレイヤーに、モデルはセマンティックレイヤーに、検証済みのデータ知識はここに。 表は横にスクロールできる。

ochakai と、セマンティックレイヤー・メモリレイヤー・データカタログ・FDE 型オントロジーの比較
観点 ochakai セマンティックレイヤー / ウェアハウスネイティブdbt, Cortex Analyst, Databricks Genie メモリレイヤーmem0, Zep, Letta データカタログOpenMetadata, DataHub, Atlan FDE 型オントロジーPalantir 型
「読み方」の知識 一級の型。Insight がベースライン・季節性・注意点を持ち、定義と同じ検索で返る 定義は返るが、100 が良い数字かは教えない LLM が抽出したもの。ユーザー単位 定義、リネージ、オーナー オントロジーに、人手で埋め込む
人によるレビューと来歴 ドラフトを人が verified に上げる。誰が書き、誰がいつ検証したかが全エントリに残り、変更はすべてリビジョンとして保持される あり。データを届けるのと同じコードレビューに乗る レビューなし。監査されないまま注入され、間違った記憶も静かに残り続ける スチュワードシップと認証。ツールによる あり。現場のエンジニアが手で作る
却下した提案の記憶 却下したエントリは理由ごと残るので、エージェントは同じ提案を蒸し返さない 知識としては残らない 知識としては残らない 知識としては残らない 知識としては残らない
育てるのに要る手間 エージェントが学ぶたびに広さをドラフトし、判断の要る中核を人が検証する。このレビューは実際の作業で、同時に要点でもある モデリングの作業。データを届ける既存の開発フローに畳み込まれる 自動。LLM が抽出し、誰もキュレーションしない — 手間は圧倒的に少なく、その用途ではそれが正解 コネクタで収集し、そのあとキュレーション 現場に常駐するエンジニア(FDE)
使えるクライアント 構造的にどれでも。MCP・REST・CLI が、Claude Code もホスト型エージェントも CI ジョブも同じ知識で賄う Cortex Analyst も Genie も、それぞれ自分のチャットにだけ効く SDK や API 経由でどれでも API 経由でどれでも プラットフォームの中
書き出しと出口 全体が OKF v0.2 バンドルで往復する。markdown + YAML なので git に置ける。取り込みは他のプロデューサーのバンドルも受け付ける 強い。dbt のモデルはもともと自分のリポジトリのファイル ベンダー独自の形式 API 経由 オントロジーはプラットフォームのもの
製品の中の LLM 意図的になし。エントリはそのまま返り、解釈はエージェントの仕事 あり。自然言語から SQL を作る用途で あり。抽出の仕組みそのもの
SQL の実行、データの隣にいるか なし。これは実際の弱点。ウェアハウスの認証情報を持たず、ウェアハウスの外にいる。実行はエージェント あり。ウェアハウスの中、データとガバナンスの隣にいる なし なし。データを説明する側 あり。プラットフォームの中で
セルフホスト MIT。テナントごとに自前で運用でき、Go バイナリ 1 つと Postgres で月 $10 程度 dbt は可能。Cortex Analyst と Genie はウェアハウス側のもの mem0 と Letta にはオープンソース版がある OpenMetadata と DataHub はオープンソース 不可

行もカテゴリも、README の 「Why ochakai」 から取っている。このページのすべての主張の出典は README。ダッシュ(—)は、README がそのカテゴリについて何も言っていないところ。

エージェントが書いたものは、誰かが読まないといけない

誰もレビューしない知識ベースは、自信たっぷりに間違う墓場になる。同梱の Web UI は、人がそのキューを空にする場所。正しいものを verify し、違うものは reject する — 理由が残るので、エージェントは同じ提案を蒸し返さない。検証済みの知識がずれたときのキューも 3 つある: 長く検証されていないもの、使ったエージェントから「間違っていた」と報告が来たもの、書いた本人が宣言した期限を過ぎたもの。引用元の資料が変わったときは、そこから派生したエントリを 1 回の照会で引ける。デプロイは不要で、ochakai ui が localhost にあなたの権限で開く。

ochakai のドラフトレビューキュー。エージェントが書き戻した 2 件のエントリに、draft バッジ、タグ、検索でヒットした回数、Verify と Reject のボタンが並んでいる。
ドラフトレビューキュー。検索でよく当たるドラフトほど上に来るので、需要の大きい知識から順にレビューできる。

小さくあり続けるために、やらないこと

LLM なし
検証済みクエリと、その注意点をそのまま返すだけ。解釈はエージェントの仕事。
SQL 実行なし
ウェアハウスの認証情報は持たない。クエリを返すまでが ochakai で、実行はエージェント。
コネクタなし
知識はパイプラインで集めず、人とエージェントが選ぶ。量より、密度。
チャット UI・ダッシュボードなし
エージェントに知識を渡す側。同梱の Web UI はキュレーション用で、BI ツールではない。
シークレットなし
到達可否は Cloud Run IAM が決める。API キーの発行もローテーションもいらない。
認可なし
到達できることアクセス制御のすべて。到達できた者は読み書きでき、ochakai は誰が何をしたかを記録するだけ。エントリ単位の権限が要るなら、これは違う道具。
テレメトリなし
どこにも何も送らない。通信先は、あなたが設定した Google Cloud の API だけ。

Go バイナリ 1 つと Postgres だけ

最新リリースは v0.14.0(2026-07-27)。 ローカルで試すだけなら Docker があればよく、下のクライアントコマンドには Go ツールチェーンかリリース済みバイナリが要る。

1ローカルで起動

git clone https://github.com/na0fu3y/ochakai && cd ochakai
docker compose -f deploy/compose.yaml up

2デモの知識ベースを読み込んで検索

export OCHAKAI_URL=http://localhost:8080
go run ./cmd/ochakai import examples/demo
curl 'http://localhost:8080/api/v1/knowledge?q=revenue'

架空の小売ドメイン 1 つ分、互いにリンクした 10 エントリ。レビュー待ちのドラフトも、宣言した期限を過ぎたエントリも入っているので、作って 1 分の知識ベースでも各キューと get_context の挙動がそのまま見える。

3エージェントをつなぐ

# Claude Code など、シェルを持つエージェントは CLI
go install github.com/na0fu3y/ochakai/cmd/ochakai@latest
ochakai use http://localhost:8080
ochakai ui  # 同梱の Web UI(localhost・あなたの権限で動作)

# MCP は HTTP のみ(stdio 版はない)
claude mcp add --transport http ochakai http://localhost:8080/mcp

Go ツールチェーンがなくても、各リリースに linux・macOS・Windows の amd64 / arm64 バイナリ(チェックサムと build provenance つき)がある: リリース一覧。 Cloud Run 上の ochakai につなぐときは、サービス URL ではなく ochakai ui がローカルに開く /mcp を指す。 プロキシが Google の identity を載せるので、クライアント側に認証情報はいらない。

約 $10/月Cloud Run + Cloud SQL。完全なデプロイ手順書つき
API キー 0 個認可は Cloud Run IAM、DB 認証は IAM トークン
MITテナントごとにセルフホスト可。知識はいつでも持ち出せる