アーキテクチャ概要
X Knowledge Agent は5つのモジュールで構成される自律型ナレッジ収集・分析システムです。
システム全体図
mermaid
flowchart TB
subgraph External["外部サービス"]
X["X (Twitter)"]
GitHub["GitHub API"]
Claude["Claude API"]
end
subgraph Collector["Collector モジュール"]
CC["Chrome Cookie\nExtractor"]
XF["X GraphQL\nFetcher"]
DD["重複排除\nDeduplicator"]
end
subgraph Analyzer["Analyzer モジュール"]
EE["エンティティ抽出"]
VA["Vision 分析"]
ST["セマンティック\nタグ付け"]
CT["カテゴリ分類"]
end
subgraph OSSVerifier["OSS Verifier モジュール"]
GM["GitHub メタデータ\n収集"]
SA["セキュリティ\n監査"]
SB["Docker サンドボックス\nビルド & テスト"]
AR["AI レポート\n生成"]
end
subgraph KnowledgeStore["Knowledge Store"]
SQLite["SQLite\n(検索・分析)"]
Obsidian["Obsidian Vault\n(ナレッジ管理)"]
end
subgraph AgentAPI["Agent API"]
REST["REST API"]
MCP["MCP Server"]
WebUI["Web UI"]
end
X -->|GraphQL| XF
CC -->|auth_token + ct0| XF
XF -->|raw bookmarks| DD
DD -->|new bookmarks| SQLite
SQLite -->|bookmark data| EE
EE --> VA
VA --> ST
ST --> CT
CT -->|enriched data| SQLite
Claude -.->|AI処理| VA
Claude -.->|AI処理| ST
Claude -.->|AI処理| CT
SQLite -->|OSS URL検出| GM
GitHub -->|metadata| GM
GM --> SA
SA --> SB
SB --> AR
Claude -.->|AI処理| AR
AR -->|OSS report| SQLite
SQLite --> Obsidian
SQLite --> REST
SQLite --> MCP
SQLite --> WebUIデータフロー
ブックマークが X から Obsidian ノートになるまでの全体フロー:
mermaid
flowchart LR
A["X ブックマーク"] --> B["Cookie 認証"]
B --> C["GraphQL 取得"]
C --> D["SQLite 保存"]
D --> E["AI 4段階分類"]
E --> F["OSS 検証\n(該当時)"]
F --> G["Obsidian\nエクスポート"]
G --> H["MCP/REST\n公開"]モジュール間の依存関係
mermaid
graph TD
Collector --> KnowledgeStore
Analyzer --> KnowledgeStore
Analyzer --> Claude["Claude API"]
OSSVerifier --> KnowledgeStore
OSSVerifier --> GitHub["GitHub API"]
OSSVerifier --> Docker["Docker Engine"]
OSSVerifier --> Claude
AgentAPI --> KnowledgeStore各モジュールの詳細
| モジュール | 役割 | 詳細ページ |
|---|---|---|
| Collector | X ブックマークの自動収集 | Cookie 抽出、GraphQL API、重複排除 |
| Analyzer | AI による4段階分析パイプライン | エンティティ抽出、Vision、タグ付け、分類 |
| OSS Verifier | OSSリポジトリの安全性検証 | メタデータ、監査、サンドボックス、レポート |
| Knowledge Store | デュアルストレージ管理 | SQLite + Obsidian Vault |
| Agent API | 外部インターフェース | REST API + MCP Server |
技術スタック
mermaid
graph LR
subgraph Frontend
Next["Next.js 16"]
Tailwind["Tailwind CSS v4"]
XYFlow["@xyflow/react"]
end
subgraph Backend
Prisma["Prisma 7"]
SQLiteDB["SQLite + FTS5"]
Anthropic["Anthropic SDK"]
end
subgraph Infrastructure
Tauri["Tauri v2"]
CF["Cloudflare Tunnel"]
Docker["Docker"]
Keychain["OS Keychain"]
end
Next --> Prisma
Prisma --> SQLiteDB
Next --> Anthropic