Skip to content

ローカル LLM 環境への 5 層モデルの写像 — Open WebUI Workspace と Claude Code の対比

「専門家 AI を再利用可能な単位として束ねる」という同じ課題に、Open WebUI と Claude Code は驚くほど似た構造で答えている。

このドキュメントについて

ローカル LLM 環境(Ollama などで pull したベースモデル)をそのまま使うだけでは、「特定の業務に特化したエージェント」は実現できない。System Prompt・参照ドキュメント・ツール・ガイドラインを毎回手動で組み立てる必要があるからだ。

Open WebUI はこの問題に対し Workspace という単位で回答している。Models・Prompts・Knowledge・Skills・Tools・MCP を一元管理し、それらを束ねた「専門家 AI」を Web UI 上で構築・共有できる。

本ドキュメントは、この Workspace を本サイトの 5 層モデル(Doctrine / Agent / Skills / Memory / MCP)に写像し、Claude Code の .claude/agents/ + CLAUDE.md + Skills + MCP の構成と機能単位で対比する。「2026 年現在、エージェントを束ねる単位として何が事実上のデファクトになりつつあるか」 を理解するための地図として読んでほしい。

このページの位置づけ

本ページは 03-architecture で定義した三層モデルと、08-memory-and-knowledge07-doctrine-and-intent で拡張した Memory 層・Doctrine 層を実装プラットフォームに写像する戦略レイヤーのドキュメントである。composition-patterns が「どう組み合わせるか」を扱うのに対し、本ページは「どこに置くか」を扱う。

メタ情報
このページで固定するもの5 層モデルと Open WebUI Workspace / Claude Code 構成要素の対応関係
扱わないことOpen WebUI のインストール手順、各機能のチュートリアル(→ 一次情報の docs.openwebui.com を参照)
依存03-architecture07-doctrine-and-intent08-memory-and-knowledge
誤用ポイントOpen WebUI Tools と MCP を同一視すること。両者は配置場所・実行モデル・配信形態が異なる(後述)

なぜ Workspace 単位が登場したのか

ベースモデルは汎用であり、「コードレビュー担当」「翻訳担当」「法令調査担当」のような役割を持たない。役割を持たせるには、System Prompt・参照知識・許可ツール・判断基準を1 つの単位で束ねる必要がある。

開発者向けアナロジー

Workspace は Web 開発における package.json + ESLint config + tsconfig + README の束に近い。それぞれ単体でも機能するが、束ねて初めて「このプロジェクトの開発環境」になる。AI エージェントにとっての「プロジェクトの開発環境」が Workspace である。

5 層モデルへの写像

Open WebUI Workspace の各機能を、本サイトの 5 層モデルに写像すると以下のようになる。

IMPORTANT

Models は「Agent 層」だけではなく、他の 4 層を統合する「束ね役」でもある。Open WebUI 公式は Models を "a thin wrapper: pick a base model, configure it, and share it with your team" と表現している(Models docs)。これは Claude Code における .claude/agents/<name>.md がフロントマターで MCP・Skills・モデル設定を宣言する構造と同型である。

対応一覧

5 層モデルOpen WebUI WorkspaceClaude Code役割
DoctrinePrompts(/command テンプレート)、Models の System Promptスラッシュコマンド(.claude/commands/*.md)、CLAUDE.md制約・目的・判断基準
AgentModels(プリセット束)、Base Model 選択.claude/agents/<name>.md、メインの Claudeタスク理解・オーケストレーション
SkillsSkills(Markdown + view_skill.claude/skills/<name>/SKILL.md静的知識・ガイドライン
MemoryKnowledge(RAG / Full Context)、NotesMemory ファイル、ユーザー編集の CLAUDE.md 永続部分永続化された記憶・参照ドキュメント
MCPMCP(Streamable HTTP, v0.6.31+)、Tools(Python)MCP サーバ(stdio / HTTP)外部システム接続
対象外Functions(プラットフォーム拡張)、Pipelinesプラグイン(マーケットプレース、.claude/pluginsプラットフォーム機能の拡張

各機能の詳細写像

Doctrine 層 — Prompts と System Prompt

Open WebUI の Prompts/summarize のようなスラッシュコマンドとして発火し、入力変数を持つフォームを生成する。System Prompt は Models プリセットに紐づき、{{ USER_NAME }} {{ CURRENT_DATE }} {{ USER_GROUPS }} などの動的変数を持つ(Prompts docs, Models docs)。

これは Claude Code における 2 つの構造に対応する。

Open WebUIClaude Code共通する役割
Prompts/commandスラッシュコマンド(.claude/commands/*.md「いつ・どう振る舞うか」をユーザーが起動する単位
Models の System PromptCLAUDE.md.claude/agents/<name>.md のフロントマター下「常に守るべき制約・目的」を宣言的に固定

TIP

Open WebUI Prompts は {{title | select:options=["High","Medium","Low"]:required}} のような型付き入力変数を持つ点で、Claude Code のスラッシュコマンドより構造化されている。これは Web UI 上の非エンジニアユーザーを対象としているからで、CLI 前提の Claude Code との設計思想の違いが端的に表れている。

Agent 層 — Models プリセットの束ね方

Open WebUI Models の構成要素を見ると、「Agent 層が他の 4 層を束ねる」構造が明確に現れる。

これは Claude Code の .claude/agents/<name>.md のフロントマターに直接対応する。

markdown
name: translation-specialist
description: 技術文書の翻訳と品質評価を行う専門エージェント
tools: deepl:translate-text, xcomet:xcomet_evaluate
model: sonnet

---

あなたは技術翻訳の専門家です。
translation-workflow スキルを参照してください。
構成要素Open WebUI ModelsClaude Code Sub-agent
ベースモデル選択Base Model フィールドmodel: フロントマター
System PromptSystem prompt フィールドフロントマター直下の本文
ツール束縛Tools / MCP バインディングtools: フロントマター
Skills 束縛Skills バインディング本文中の <skill> を参照 指示
Knowledge 束縛Knowledge バインディングCLAUDE.md から参照、または MCP 経由
アクセス制御RBAC(users / groups)Git のブランチ・PR 権限で代替

IMPORTANT

「Agent 層が他の層を宣言的に束ねる」というパターンは両者で完全に一致している。これは偶然ではなく、03-architecture で示した「Agent 層がオーケストレーションを担う」という分離原則が、UI 設計の出発点に押し戻された結果である。

Skills 層 — 同名・同モデルの収束

Open WebUI は v0.6.x 系で Skills を正式機能として導入した(Skills docs)。注目すべきは実装モデルが Claude Code Skills とほぼ一致している点である。

観点Open WebUI SkillsClaude Code Skills
形式Markdown + YAML frontmatter(name, descriptionMarkdown + YAML frontmatter(同じ)
インポート.md ファイルから直接SKILL.md 配置
発動方式(ユーザー)$ mention でフルコンテンツ注入スキル名の明示参照
発動方式(自動)Model にバインド → manifest のみ注入、view_skill(name) で本体ロードmanifest が常駐、Read で本体ロード
コンテキスト効率Lazy loading(必要時のみ本体読み込み)同じ(Lazy loading)
依存条件Native function calling が必須ツール使用が必須

二者の収束は「正しい設計」の合図

別々のチームが独立に同じ「manifest 注入 + on-demand 本体ロード」モデルに到達したという事実は、これが LLM のコンテキスト制約に対する 正しい解 であることを強く示唆する。詳細は Skills の構造 と姉妹サイトの Part 5: オンデマンドコンテキスト を参照。

WARNING

Open WebUI Skills の Lazy loading は Native function calling が有効 な場合にのみ動作する。無効化されている場合は manifest のみが注入され、本体は読まれない(Skills docs / Limitations)。同様の依存は Claude Code でも Read ツールが無効化されると Skills が機能しないことに対応する。

Memory 層 — Knowledge の二モード

Open WebUI Knowledge は RAG ベクトル検索を中心とした永続化記憶機能で、9 種類のベクトル DB(ChromaDB、PGVector、Qdrant、Milvus 等)と 5 種類の抽出エンジン(Tika、Docling、Azure、Mistral OCR、custom)をサポートする(Knowledge docs)。

検索モードは 2 種類ある。

モード注入方式適した用途コンテキスト消費
Focused RetrievalHybrid Search(BM25 + ベクトル)→ Rerank → 関連チャンク注入大規模文書セット、特定セクションのみ必要な場合低(チャンク数依存)
Full Context文書全体をそのまま注入短いリファレンス、スタイルガイドなど常に全体が必要なもの高(文書サイズ依存)

Native function calling 時の挙動変化

Native function calling が有効な場合、Knowledge は 自動注入されない。モデルが list_knowledge / query_knowledge_files / view_file 等のツールを能動的に呼び出して取得する Agentic Retrieval モードになる。攻撃的に文書を探索できる反面、System Prompt で「Knowledge を必ず参照せよ」と指示しないとモデルが Knowledge の存在を無視することがある(Knowledge docs / Agentic Knowledge Tools)。

Claude Code との対応

Open WebUI KnowledgeClaude Code共通点
Focused RetrievalMCP 経由の RAG(外部ベクトル DB)関連チャンクのみ動的注入
Full ContextCLAUDE.md の常駐部分、@<path> 参照全文常駐
Agentic Knowledge ToolsRead ツールでの能動的探索モデル主導の文書探索

TIP

Open WebUI が Knowledge を「Memory 層」に置く設計は、姉妹サイト understanding-llm / Part 8: Memory Layer で論じる「scatter-gather 問題」への自然な回答である。ベース LLM の知識制約を、外部の永続化されたベクトル DB で補完する設計だ。

MCP 層 — Tools・Functions・MCP の三段階

ここが Open WebUI で最も誤解されやすい部分である。Tools / Functions / MCP は全て別物 であり、配置場所・実行モデル・配信形態がそれぞれ異なる。

種別配置実行モデル配信本サイト 5 層モデル
ToolsWorkspaceOpen WebUI サーバー内で Python 実行コミュニティ Hub または手動 importMCP 層(独自実装版)
MCPWorkspace(v0.6.31+)リモート MCP サーバへ Streamable HTTPサーバ URL + OAuth 2.1 / BearerMCP 層(標準準拠)
FunctionsAdmin Panelサーバー内で Python 実行管理者のみ5 層対象外(プラットフォーム拡張)
Pipelines別プロセスOpenAI API 互換のワークフローエキスパート向け5 層対象外(インフラ層)

CAUTION

Open WebUI Tools は「Python コードをサーバー内で直接実行する」モデルである。これは MCP のプロトコル分離とは根本的に異なる設計で、コミュニティ製 Tool を import する場合は公式ドキュメントの警告が示すように 任意コード実行のリスク がある。標準準拠の Streamable HTTP MCP を優先すべき。

MCP ネイティブサポートの意義

Open WebUI が v0.6.31 で MCP(Streamable HTTP)をネイティブサポートしたことは、本サイトの構造論にとって決定的な意味を持つ。

  • transport は Streamable HTTP のみ(stdio / SSE は mcpo プロキシ経由)
  • 認証: None / Bearer / OAuth 2.1 (DCR) / OAuth 2.1 (Static)
  • Resource Indicators (RFC 8707) 自動対応
  • RBAC で MCP ツール単位の認可

IMPORTANT

「Web UI なローカル LLM 環境でも MCP がデファクトの外部接続規約になりつつある」という事実は、02-reference-sources で述べた「MCP 化されたソースの蓄積こそが資産」という主張を補強する。Claude Code 専用に開発した MCP サーバが、設定変更だけで Open WebUI からも使えるようになる時代に入った。

全体対応マトリクス

Projects とエージェント設計

Open WebUI における Projects(フォルダベースのワークスペース束ね)は、Models プリセット・Prompts・Knowledge・Skills を1 つのプロジェクト単位にまとめる仕組みである。これは Claude Code におけるプロジェクトルートの .claude/ ディレクトリと意味論的に同じである。

要素Open WebUI ProjectClaude Code プロジェクト
単位の境界フォルダGit リポジトリのルート
エージェント定義Models プリセット群.claude/agents/*.md
共通指示Project レベルの System Prompt 共有CLAUDE.md
共通知識Knowledge collection の共有CLAUDE.md 内の参照 + MCP
共通コマンドPrompts の共有.claude/commands/*.md
配布export → import(JSON)git clone

TIP

Project 単位での持ち運びを設計するとき、本サイトの composition-patterns で示した「複数 MCP + 複数 Skill の協調」パターンがそのまま適用できる。Open WebUI でも Claude Code でも、「専門家 AI = 1 Agent + N Skills + M MCPs + Doctrine」 という構造は変わらない。

設計上の示唆

ここまでの写像から、3 つの示唆が得られる。

1. 5 層モデルはプラットフォーム独立

別個に進化した Open WebUI と Claude Code がほぼ同じ層分離に到達した事実は、5 層モデルが特定プラットフォームに依存しない 構造的な必然 であることを示す。これは 03-architecture で「層は責務の分離であり、デプロイ構成ではない」と述べたことの裏付けでもある。

2. Skills の Lazy Loading が事実上の標準に

Claude が先行して導入した「manifest + on-demand 本体ロード」モデルが、Open WebUI でもネイティブの view_skill ツール として実装された。これにより、Markdown ベースの Skills を別プラットフォーム間で持ち運ぶ ことが現実的になる(frontmatter の namedescription フィールドが共通仕様)。

3. MCP がローカル LLM 環境にも届いた

Streamable HTTP MCP のネイティブサポートは、「shuji-bonji 製の各種 MCP サーバ(rfcxml-mcp, xcomet-mcp, pdf-reader-mcp 等)」を Web UI 上のローカル LLM からも利用できることを意味する。MCP の投資は Claude Code 専用ではなく、エコシステム全体への投資 だと位置付けてよい。

関連ドキュメント

🔗 さらに深く: なぜこの構造に収束するのか

本ページは Open WebUI と Claude Code の 構造的写像(What/How) を扱った。「なぜ プラットフォームが独立に同じ層分離に収束するのか」を LLM の構造的制約から理解したい場合は、姉妹サイトを参照。

参考文献

  • Open WebUI (2026). "Models — Wrap any model with custom instructions, tools, and knowledge to build specialized agents." docs.openwebui.com — Models プリセットの公式仕様
  • Open WebUI (2026). "Skills — Teach your AI how to approach a task with plain-text instructions." docs.openwebui.comview_skill Lazy Loading の仕様
  • Open WebUI (2026). "Knowledge — Give your AI access to your documents and let it find what matters." docs.openwebui.com — RAG の二モードと Agentic Retrieval
  • Open WebUI (2026). "Prompts — Reusable slash commands that turn complex instructions into one-click forms." docs.openwebui.com — Doctrine 相当の宣言的指示
  • Open WebUI (2026). "Tools & Functions (Plugins)." docs.openwebui.com — Python サーバ実行モデル
  • Open WebUI (2026). "Model Context Protocol (MCP)." docs.openwebui.com — v0.6.31+ の MCP ネイティブサポート

前へ: 構成パターン次へ: 開発フェーズ

最終更新: 2026 年 6 月

Released under the MIT License.