README_JA.md
<a href="https://www.openviking.ai">Webサイト</a> · <a href="https://github.com/volcengine/OpenViking">GitHub</a> · <a href="https://github.com/volcengine/OpenViking/issues">Issues</a> · <a href="https://www.openviking.ai/docs">ドキュメント</a>
👋 コミュニティに参加しよう
📱 <a href="./docs/en/about/01-about-us.md#lark-group">Larkグループ</a> · <a href="./docs/en/about/01-about-us.md#wechat-group">WeChat</a> · <a href="https://discord.com/invite/eHvx8E9XF3">Discord</a> · <a href="https://x.com/openvikingai">X</a>
<a href="https://trendshift.io/repositories/19668" target="_blank"></a>
</div>✨ 2026年5月アップデート:OpenViking の User Memory、Agent Memory、ナレッジベースQA 3シナリオにおけるベンチマーク結果を更新しました。→ 評価ハイライト をご確認ください。
AI時代において、データは豊富ですが、高品質なコンテキストは得がたいものです。AIエージェントを構築する際、開発者はしばしば以下の課題に直面します:
OpenVikingは、AIエージェント専用に設計されたオープンソースのコンテキストデータベースです。
私たちは、エージェントのためのミニマリストなコンテキストインタラクションパラダイムを定義し、開発者がコンテキスト管理の煩雑さから完全に解放されることを目指しています。OpenVikingは従来のRAGの断片化されたベクトルストレージモデルを捨て、革新的に**「ファイルシステムパラダイム」**を採用して、エージェントに必要なメモリ、リソース、スキルの構造化された組織を統一します。
OpenVikingを使えば、開発者はローカルファイルを管理するようにエージェントの頭脳を構築できます:
OpenVikingを始める前に、環境が以下の要件を満たしていることを確認してください:
pip install openviking --upgrade --force-reinstall
npm i -g @openviking/cli
またはソースからビルド:
cargo install --git https://github.com/volcengine/OpenViking ov_cli
OpenVikingには以下のモデル機能が必要です:
OpenVikingは3つのVLMプロバイダーをサポートしています:
| プロバイダー | 説明 | APIキーの取得 |
|---|---|---|
volcengine | Volcengine Doubaoモデル | Volcengineコンソール |
openai | OpenAI公式API | OpenAIプラットフォーム |
Volcengineはモデル名とエンドポイントIDの両方をサポートしています。簡便さのためモデル名の使用を推奨します:
{
"vlm": {
"provider": "volcengine",
"model": "doubao-seed-2-0-pro-260215",
"api_key": "your-api-key",
"api_base": "https://ark.cn-beijing.volces.com/api/v3"
}
}
エンドポイントIDも使用できます(Volcengine ARKコンソールで確認):
{
"vlm": {
"provider": "volcengine",
"model": "ep-20241220174930-xxxxx",
"api_key": "your-api-key",
"api_base": "https://ark.cn-beijing.volces.com/api/v3"
}
}
OpenAIの公式APIを使用:
{
"vlm": {
"provider": "openai",
"model": "gpt-4o",
"api_key": "your-api-key",
"api_base": "https://api.openai.com/v1"
}
}
カスタムのOpenAI互換エンドポイントも使用できます:
{
"vlm": {
"provider": "openai",
"model": "gpt-4o",
"api_key": "your-api-key",
"api_base": "https://your-custom-endpoint.com/v1"
}
}
設定ファイル ~/.openviking/ov.conf を作成します。コピー前にコメントを削除してください:
{
"storage": {
"workspace": "/home/your-name/openviking_workspace"
},
"log": {
"level": "INFO",
"output": "stdout" // ログ出力: "stdout" または "file"
},
"embedding": {
"dense": {
"api_base" : "<api-endpoint>", // APIエンドポイントアドレス
"api_key" : "<your-api-key>", // モデルサービスAPIキー
"provider" : "<provider-type>", // プロバイダータイプ: "volcengine" または "openai"(現在サポート済み)
"dimension": 1024, // ベクトル次元
"model" : "<model-name>" // Embeddingモデル名(例:doubao-embedding-vision-251215 または text-embedding-3-large)
},
"max_concurrent": 10 // 最大同時Embeddingリクエスト数(デフォルト: 10)
},
"vlm": {
"api_base" : "<api-endpoint>", // APIエンドポイントアドレス
"api_key" : "<your-api-key>", // モデルサービスAPIキー
"provider" : "<provider-type>", // プロバイダータイプ(volcengine、openai、deepseek、anthropicなど)
"model" : "<model-name>", // VLMモデル名(例:doubao-seed-2-0-pro-260215 または gpt-4-vision-preview)
"max_concurrent": 100 // セマンティック処理の最大同時LLM呼び出し数(デフォルト: 100)
}
}
注意: Embeddingモデルについては、
volcengine(Doubao)、openai、azure、jina、ollama、voyage、dashscope、minimax、cohere、vikingdb、gemini(pip install "google-genai>=1.0.0"が必要)、litellm、localプロバイダーがサポートされています。VLMモデルについては、volcengine、openai、openai-codex、kimi、glmをサポートしています。
👇 お使いのモデルサービスの設定例を展開して確認:
<details> <summary><b>例1: Volcengine(Doubaoモデル)を使用</b></summary>{
"storage": {
"workspace": "/home/your-name/openviking_workspace"
},
"log": {
"level": "INFO",
"output": "stdout" // ログ出力: "stdout" または "file"
},
"embedding": {
"dense": {
"api_base" : "https://ark.cn-beijing.volces.com/api/v3",
"api_key" : "your-volcengine-api-key",
"provider" : "volcengine",
"dimension": 1024,
"model" : "doubao-embedding-vision-251215"
},
"max_concurrent": 10
},
"vlm": {
"api_base" : "https://ark.cn-beijing.volces.com/api/v3",
"api_key" : "your-volcengine-api-key",
"provider" : "volcengine",
"model" : "doubao-seed-2-0-pro-260215",
"max_concurrent": 100
}
}
{
"storage": {
"workspace": "/home/your-name/openviking_workspace"
},
"log": {
"level": "INFO",
"output": "stdout" // ログ出力: "stdout" または "file"
},
"embedding": {
"dense": {
"api_base" : "https://api.openai.com/v1",
"api_key" : "your-openai-api-key",
"provider" : "openai",
"dimension": 3072,
"model" : "text-embedding-3-large"
},
"max_concurrent": 10
},
"vlm": {
"api_base" : "https://api.openai.com/v1",
"api_key" : "your-openai-api-key",
"provider" : "openai",
"model" : "gpt-4-vision-preview",
"max_concurrent": 100
}
}
設定ファイルを作成後、環境変数を設定してファイルを指定します(Linux/macOS):
export OPENVIKING_CONFIG_FILE=~/.openviking/ov.conf # デフォルト
Windowsの場合、以下のいずれかを使用:
PowerShell:
$env:OPENVIKING_CONFIG_FILE = "$HOME/.openviking/ov.conf"
コマンドプロンプト(cmd.exe):
set "OPENVIKING_CONFIG_FILE=%USERPROFILE%\.openviking\ov.conf"
💡 ヒント: 設定ファイルは他の場所に配置することもできます。環境変数で正しいパスを指定するだけです。
👇 CLI/クライアントの設定例を展開して確認:
例:localhostサーバー接続用のovcli.conf
{
"url": "http://localhost:1933",
"timeout": 60.0
}
設定ファイルを作成後、環境変数を設定してファイルを指定します(Linux/macOS):
export OPENVIKING_CLI_CONFIG_FILE=~/.openviking/ovcli.conf # デフォルト
Windowsの場合、以下のいずれかを使用:
PowerShell:
$env:OPENVIKING_CLI_CONFIG_FILE = "$HOME/.openviking/ovcli.conf"
コマンドプロンプト(cmd.exe):
set "OPENVIKING_CLI_CONFIG_FILE=%USERPROFILE%\.openviking\ovcli.conf"
📝 前提条件: 前のステップで設定(ov.confとovcli.conf)が完了していることを確認してください。
それでは、完全な例を実行してOpenVikingのコア機能を体験しましょう。
openviking-server
またはバックグラウンドで実行:
nohup openviking-server > /data/log/openviking.log 2>&1 &
ov status
ov add-resource https://github.com/volcengine/OpenViking # --wait
ov ls viking://resources/
ov tree viking://resources/volcengine -L 2
# --waitを指定しない場合、セマンティック処理の完了を待つ
ov find "what is openviking"
ov grep "openviking" --uri viking://resources/volcengine/OpenViking/docs/zh
おめでとうございます!OpenVikingの実行に成功しました 🎉
VikingBotは、OpenViking上に構築されたAIエージェントフレームワークです。始め方は以下の通りです:
# オプション1: PyPIからVikingBotをインストール(ほとんどのユーザーに推奨)
pip install "openviking[bot]"
# オプション2: ソースからVikingBotをインストール(開発用)
uv pip install -e ".[bot]"
# Bot有効でOpenVikingサーバーを起動
openviking-server --with-bot
# 別のターミナルでインタラクティブチャットを開始
ov chat
本番環境では、AIエージェントに永続的で高性能なコンテキストサポートを提供するため、OpenVikingをスタンドアロンHTTPサービスとして実行することを推奨します。
🚀 クラウドにOpenVikingをデプロイ: 最適なストレージパフォーマンスとデータセキュリティを確保するため、veLinuxオペレーティングシステムを使用した**Volcengine Elastic Compute Service(ECS)**へのデプロイを推奨します。迅速に開始するための詳細なステップバイステップガイドを用意しています。
OpenViking の中核的な価値は、より高い回答精度を実現しながら、より少ないトークン消費とより低いレイテンシを両立することです。以下では、3 つの評価シナリオをまとめます。
目的: OpenViking を各種 Agent の外部メモリとして接続したとき、長対話メモリ QA(LOCOMO)における精度・Token 効率・レイテンシを検証します。
| 構成 | 平均 Query 時間 | 回答精度 | 総入力 Token |
|---|---|---|---|
| OpenClaw + native memory-core | 95.14s | 24.20% | 392,559,404 |
| OpenClaw + OpenViking | 38.8s | 82.08% | 37,423,456 |
| Hermes Native Memory | 82.4s | 33.38% | 79,228,398 |
| Hermes + OpenViking | 27.9s | 82.86% | 52,026,755 |
| Claude Code Auto-Memory | 49.1s | 57.21% | 353,306,422 |
| Claude Code + OpenViking | 20.4s | 80.32% | 129,968,899 |
| Agent | 精度向上 | レイテンシ低減 | Token 削減 |
|---|---|---|---|
| OpenClaw | 24.20% → 82.08% (+3.39×) | -59.22% | -91.0% |
| Hermes | 33.38% → 82.86% (+2.48×) | -66.10% | -34.3% |
| Claude Code | 57.21% → 80.32% (+1.40×) | -58.45% | -63.2% |
| 構成 | Retail 正答率 | Airline 正答率 |
|---|---|---|
| LLMのみ | 70.94% | 54.38% |
| LLM + OpenViking 経験メモリ | 77.81% (+6.87pp) | 66.25% (+11.87pp) |
| 手法 | 検索方式 | Accuracy | Token / QA | レイテンシ / QA |
|---|---|---|---|---|
| Naive RAG | ベクトル検索 | 62.50% | 1,290 | 0.11s |
| HippoRAG 2 | ベクトル + 知識グラフ | 61.00% | 726 | 20s |
| LightRAG | ベクトル + 知識グラフ | 89.00% | 28,443 | 75s |
| LangChain SQL (Agent) | SQL + Agent | 78.00% | 4,776 | 132s |
| OpenViking (top5) | ベクトル検索 | 72.75% | 3,154 | 0.22s |
| OpenViking (top20) | ベクトル検索 | 91.00% | 12,533 | 0.23s |
この比較では、OpenViking は HotpotQA の top20 設定で最高精度(91%)を達成し、同時にレイテンシを 0.23s に抑えています。
| 手法 | 検索方式 | 平均 Accuracy | インデックス構築 Token | Token / QA | 検索レイテンシ |
|---|---|---|---|---|---|
| Naive RAG | ベクトル検索 | 53.93% | 2,755,356 | 1,435 | 0.13s |
| PageIndex | ベクトル + 木構造 | 36.75% | 5,609,206 | 710,480 | 84.60s |
| HippoRAG 2 | ベクトル + 知識グラフ | 44.50% | 124,963,618 | 637 | 18.83s |
| LightRAG | ベクトル + 知識グラフ | 76.00% | 62,705,469 | 27,035 | 9.19s |
| OpenViking | ベクトル検索 | 66.87% | 8,671,538 | 3,060 | 0.19s |
対象データセット: FinanceBench、NaturalQuestions、ClapNQ、Qasper、SyllabusQA。OpenViking は非常に低い検索レイテンシ(0.19s)を維持しながら平均 66.87% の精度を達成し、インデックス構築コストは LightRAG の 13.8% にとどまります。
OpenViking は、論文 VikingMem で述べられている中核能力の一部をオープンソース化したものであり、AI エージェント開発者がそのコンテキストデータベースとメモリ管理の考え方を直接利用できるようにしています。
VikingMem: A Memory Base Management System for Stateful LLM-based Applications Jiajie Fu, Junwen Chen, Mengzhao Wang, Aoxiang He, Maojia Sheng, Xiangyu Ke, Yifan Zhu, and Yunjun Gao. arXiv:2605.29640, 2026. VLDB 2026 に採択。
最初の例を実行した後、OpenVikingの設計思想を掘り下げましょう。これら5つのコアコンセプトは、先に述べたソリューションと1対1で対応し、完全なコンテキスト管理システムを構築します:
コンテキストをフラットなテキストスライスとして見るのではなく、抽象的な仮想ファイルシステムに統一します。メモリ、リソース、機能のいずれも、viking://プロトコル下の仮想ディレクトリにマッピングされ、それぞれにユニークなURIが付与されます。
このパラダイムにより、エージェントはこれまでにないコンテキスト操作能力を獲得し、開発者のようにlsやfindなどの標準コマンドを通じて、情報を正確かつ決定論的に位置特定、閲覧、操作できます。これにより、コンテキスト管理は曖昧なセマンティックマッチングから、直感的でトレース可能な「ファイル操作」に変わります。詳細: Viking URI | コンテキストタイプ
viking://
├── resources/ # リソース: プロジェクトドキュメント、リポジトリ、Webページなど
│ ├── my_project/
│ │ ├── docs/
│ │ │ ├── api/
│ │ │ └── tutorials/
│ │ └── src/
│ └── ...
├── user/ # ユーザー: 個人の好み、習慣など
│ └── memories/
│ ├── preferences/
│ │ ├── writing_style
│ │ └── coding_habits
│ └── ...
└── agent/ # エージェント: スキル、インストラクション、タスクメモリなど
├── skills/
│ ├── search_code
│ ├── analyze_data
│ └── ...
├── memories/
└── instructions/
大量のコンテキストをプロンプトに一度に詰め込むことは、コストが高いだけでなく、モデルウィンドウの超過やノイズの混入を招きやすいです。OpenVikingは書き込み時にコンテキストを自動的に3つのレベルに処理します:
詳細: コンテキストレイヤー
viking://resources/my_project/
├── .abstract # L0レイヤー: 要約(〜100トークン)- 迅速な関連性チェック
├── .overview # L1レイヤー: 概要(〜2kトークン)- 構造とキーポイントの理解
├── docs/
│ ├── .abstract # 各ディレクトリに対応するL0/L1レイヤーあり
│ ├── .overview
│ ├── api/
│ │ ├── .abstract
│ │ ├── .overview
│ │ ├── auth.md # L2レイヤー: 完全なコンテンツ - オンデマンドでロード
│ │ └── endpoints.md
│ └── ...
└── src/
└── ...
単一のベクトル検索では、複雑なクエリインテントへの対応が困難です。OpenVikingは、複数の検索手法を深く統合する革新的なディレクトリ再帰検索戦略を設計しました:
この「まず高スコアディレクトリを特定し、次にコンテンツ探索を精緻化する」戦略は、セマンティック的に最もマッチするフラグメントを見つけるだけでなく、情報が存在するコンテキスト全体を理解し、検索のグローバル性と精度を向上させます。詳細: 検索メカニズム
OpenVikingの組織は階層的な仮想ファイルシステム構造を使用しています。すべてのコンテキストは統一されたフォーマットで統合され、各エントリはユニークなURI(viking://パスのようなもの)に対応し、従来のフラットなブラックボックス管理モードを、理解しやすい明確な階層で打ち破ります。
検索プロセスはディレクトリ再帰戦略を採用しています。各検索のディレクトリブラウジングとファイル位置特定の軌跡が完全に保存され、ユーザーが問題の根本原因を明確に観察し、検索ロジックの最適化を導くことを可能にします。詳細: 検索メカニズム
OpenVikingにはメモリ自己反復ループが組み込まれています。各セッションの終了時に、開発者はメモリ抽出メカニズムを能動的にトリガーできます。システムはタスク実行結果とユーザーフィードバックを非同期的に分析し、ユーザーとエージェントのメモリディレクトリに自動的に更新します。
これにより、エージェントは世界とのインタラクションを通じて「使うほど賢く」なり、自己進化を実現します。詳細: セッション管理
詳細については、完全なドキュメントをご覧ください。
詳細については、**私たちについて**をご覧ください。
OpenVikingはまだ初期段階にあり、改善と探索の余地が多くあります。AIエージェント技術に情熱を持つすべての開発者を心から招待します:
AIエージェントのコンテキスト管理の未来を共に定義し、構築しましょう。旅は始まりました。あなたの参加をお待ちしています!
このプロジェクトはセキュリティを重視しています。 脆弱性の報告方法とサポート対象バージョンについては、SECURITY.md を参照してください。
OpenVikingプロジェクトは、コンポーネントごとに異なるライセンスを使用しています:
<!-- リンク定義 -->