@53able/conflux
v0.4.6
Published
Multi-agent thinking methodology MCP tools for strategic analysis and decision-making
Maintainers
Readme
🧠 Conflux - Thinking Agents MCP
Type-safe multi-agent thinking methodology tools for strategic analysis and decision-making
9つの構造化された思考法を組み合わせたマルチエージェントシステムで、開発の各局面に最適な意思決定と分析を支援します。
🧠 思考法開始時のコンテキスト
プロジェクト概要 Confluxは9つの構造化された思考法(アブダクション、ロジカル、クリティカル、MECE、演繹、帰納、PAC、メタ、ディベート)を組み合わせたマルチエージェントシステムです。
主要機能
- 局面特化: 15の開発局面に最適化された思考法の組み合わせ
- 型安全: Zodスキーマベースの完全な型安全性(any型完全禁止)
- MCP準拠: Model Context Protocolで他のAIツールと統合可能
- マルチエージェント: 9つの専門思考法エージェントが連携して動作
- 関数型スタイル: 純粋関数ベースのエージェント実装(TaskEither型でエラーハンドリング)
- 自己修復機能: 入力データの自動修復とスキーマ適合
- フォールバック機能: 複数LLMプロバイダー間の自動切り替え
使用方法
- 局面別処理:
import { processPhaseTaskEither, processGoldenPatternTaskEither } from '@53able/conflux' - 単一思考法:
import { processSingleMethodTaskEither } from '@53able/conflux' - CLI:
npx @53able/conflux [command] - MCPサーバー:
npx @53able/conflux server
詳細情報
- 完全なドキュメント: README.md
- アーキテクチャ: docs/architecture.md
- 思考法理論: docs/思考法の使い方.md
- Docker使用法: docs/docker-usage.md
- MCPサーバー設定: docs/mcp-server-setup.md
✨ 特徴
- ⚡ 高性能: TypeScript + tsx による高速実行
- 🎨 美しいCLI: Commander.jsベースの直感的なコマンドライン
- 🔗 LLM統合: AI SDK v5で複数のLLMプロバイダーをサポート
- 🛠 自動復旧: スキーマ不一致やエラー時の自動復旧機能搭載
- 🔧 自己修復: 入力データの自動修復とスキーマ適合機能
- 🔄 フォールバック: 複数LLMプロバイダー間の自動切り替え
- 📊 型安全: Zodスキーマベースの完全な型安全性(any型完全禁止)
- 🐳 Docker対応: 本番環境向けのDockerコンテナ化とマルチステージビルド
- 🏢 エンタープライズ対応: Cursor、Claude Codeなどの開発環境で使用可能
🧠 思考法エージェント
| 思考法 | 機能 | 適用場面 | |--------|------|----------| | アブダクション | 驚きの事実から説明仮説を形成 | 事業探索、デバッグ | | ロジカルシンキング | 論点から結論への論理的道筋を構築 | 要件定義、計画 | | クリティカルシンキング | 前提・論点・根拠を体系的に疑う | リファクタリング、レビュー | | MECE | 漏れなく重複なく分類・整理 | 優先順位付け、設計 | | 演繹的思考 | 一般原則から具体的結論を導出 | アーキ設計、実装 | | 帰納的思考 | 個別事例から共通パターンを発見 | 価値検証、実験 | | PAC思考 | 前提・仮定・結論に分解して検証 | 仮説分解 | | メタ思考 | 思考プロセス自体を評価・改善 | ふりかえり | | ディベート思考 | 賛成・反対論点で意思決定支援 | 重要な意思決定 |
🚀 クイックスタート
インストール
# ライブラリとしてインストール
pnpm install @53able/conflux
# or
npm install @53able/conflux
# MCPサーバーとして使用
npx @53able/conflux server
# CLIツールとして使用
npx @53able/conflux list
# バージョン確認
npx @53able/conflux version初回セットアップ
# 1. 思考法一覧を確認(API KEY不要)
npx @53able/conflux list
# 2. API KEYを設定して思考分析を試す
OPENAI_API_KEY=sk-proj-your-key-here npx @53able/conflux method critical '{"claim": "この実装で十分"}'推奨: このプロジェクトは
pnpmでの使用を推奨しています。
🔧 環境設定
API キーの設定
実際の思考分析を行うには、LLMプロバイダーのAPIキーが必要です。
環境変数での設定(推奨)
# 一時的に環境変数を設定して実行
OPENAI_API_KEY=sk-proj-your-key-here npx @53able/conflux method critical '{"claim": "この実装で十分"}'
# または Anthropic
ANTHROPIC_API_KEY=sk-ant-your-key-here npx @53able/conflux method critical '{"claim": "この実装で十分"}'
# または Google Gemini
GOOGLE_GENERATIVE_AI_API_KEY=your-google-key npx @53able/conflux method critical '{"claim": "この実装で十分"}'永続的な設定
方法1: シェル設定ファイル
# .bashrc または .zshrc に追加
export OPENAI_API_KEY=sk-proj-your-key-here
export ANTHROPIC_API_KEY=sk-ant-your-key-here
export GOOGLE_GENERATIVE_AI_API_KEY=your-google-key-here
export DEFAULT_LLM_PROVIDER=openai # or anthropic or google
# 設定を反映
source ~/.bashrc # または source ~/.zshrc方法2: .envファイル
# プロジェクトルートに.envファイルを作成
cat > .env << EOF
# LLM Provider API Keys
OPENAI_API_KEY=sk-proj-your-key-here
ANTHROPIC_API_KEY=sk-ant-your-key-here
GOOGLE_GENERATIVE_AI_API_KEY=your-google-api-key-here
# Model Configuration
OPENAI_MODEL=gpt-5-nano
ANTHROPIC_MODEL=claude-3-5-haiku-latest
GOOGLE_MODEL=gemini-2.5-flash
# Default Provider
DEFAULT_LLM_PROVIDER=openai
# AI SDK v5 Settings
AI_SDK_DISABLE_TELEMETRY=true
AI_SDK_VERCEL_AI_GATEWAY_DISABLED=true
EOFAPIキーの取得方法
OpenAI API Key(デフォルト:gpt-5-nano)
- OpenAI PlatformでAPIキーを取得
Anthropic API Key(デフォルト:claude-3-5-haiku-latest)
- Anthropic ConsoleでAPIキーを取得
Google Generative AI API Key(デフォルト:gemini-2.5-flash)
- Google AI StudioでAPIキーを取得
CLIでの動作確認
# 1. 思考法一覧の確認(API KEYなしでも動作)
npx @53able/conflux list
# 2. 局面別推奨思考法(API KEYなしでも動作)
npx @53able/conflux recommend debugging
# 3. 実際の思考分析(API KEYが必要)
# 環境変数を設定して実行
OPENAI_API_KEY=sk-proj-your-key-here npx @53able/conflux method abduction '{"surprisingFact": "APIが遅い"}'
# Google Geminiを使用する場合
GOOGLE_GENERATIVE_AI_API_KEY=your-google-key npx @53able/conflux method abduction '{"surprisingFact": "APIが遅い"}'
# または永続的に設定済みの場合
npx @53able/conflux method abduction '{"surprisingFact": "APIが遅い"}'💡 ヒント: 初回使用時は、まず
listコマンドで思考法一覧を確認し、recommendコマンドで局面別推奨を確認してから、実際の思考分析を試してみてください。
📋 基本的な使用方法
1. ライブラリとして使用
局面別思考プロセス
import { processPhaseTaskEither, globalLLMManager, toLanguageModel } from '@53able/conflux';
import * as E from 'fp-ts/lib/Either.js';
// デバッグ場面での思考プロセス
const result = await processPhaseTaskEither(
'debugging',
{
issue: 'APIが500エラーを返す',
context: 'DB接続エラーが発生している様子',
observations: ['他のAPIは正常', 'ログにタイムアウト']
},
{
llmProvider: toLanguageModel(globalLLMManager.getProvider()),
llmIntegration: globalLLMManager.getIntegration(),
userId: 'user123',
sessionId: 'debug-session-123'
}
)();
if (E.isRight(result)) {
console.log(result.right.synthesis); // 統合分析結果
console.log(result.right.actionItems); // 具体的なアクションアイテム
} else {
console.error('Error:', result.left);
}黄金パターン(探索→実装)
import { processGoldenPatternTaskEither, globalLLMManager, toLanguageModel } from '@53able/conflux';
import * as E from 'fp-ts/lib/Either.js';
// アブダクション→演繹→帰納→クリティカル→ロジカル→メタ→ディベートの統合フロー
const result = await processGoldenPatternTaskEither(
{
problem: '新機能の設計方針',
context: 'パフォーマンスとメンテナンス性のバランス',
},
{
llmProvider: toLanguageModel(globalLLMManager.getProvider()),
llmIntegration: globalLLMManager.getIntegration(),
userId: 'user123',
sessionId: 'golden-pattern-session-123'
}
)();
if (E.isRight(result)) {
console.log(result.right.synthesis); // 統合分析結果
console.log(result.right.actionItems); // 具体的なアクションアイテム
} else {
console.error('Error:', result.left);
}単一思考法の使用
import { processSingleMethodTaskEither, globalLLMManager, toLanguageModel } from '@53able/conflux';
import * as E from 'fp-ts/lib/Either.js';
// クリティカルシンキングで前提を疑う
const result = await processSingleMethodTaskEither(
'critical',
{
claim: 'マイクロサービス化で開発速度向上',
evidence: ['独立デプロイ可能', '技術選択の自由']
},
{
llmProvider: toLanguageModel(globalLLMManager.getProvider()),
llmIntegration: globalLLMManager.getIntegration(),
userId: 'user123',
sessionId: 'session-123'
}
)();
if (E.isRight(result)) {
console.log(result.right.analysis); // 分析結果
console.log(result.right.reasoning); // 推論プロセス
} else {
console.error('Error:', result.left);
}2. コマンドライン使用
# 局面別思考プロセス
npx @53able/conflux phase debugging '{"issue": "APIエラー", "context": "DB問題"}'
# 黄金パターン実行
npx @53able/conflux golden '{"problem": "アーキテクチャ設計"}'
# 単一思考法
npx @53able/conflux method critical '{"claim": "この実装で十分"}'
# カスタム戦略
npx @53able/conflux strategy '{"primary": "critical", "secondary": ["logical"], "sequence": ["critical", "logical"]}' '{"problem": "設計方針の検討"}'
# 思考法一覧
npx @53able/conflux list
# 局面別推奨思考法
npx @53able/conflux recommend debugging
# バージョン確認
npx @53able/conflux --version
# ヘルプ表示
npx @53able/conflux --help🛠 MCPサーバーとして使用
Model Context Protocol準拠のサーバーとして他のAIツールと統合できます。自己修復機能とフォールバック機能を搭載し、高い信頼性を提供します。
サーバー起動
方法1: npx経由(推奨)
# npx経由で起動(推奨)
# API KEYは環境変数で設定
OPENAI_API_KEY=sk-proj-your-key-here npx @53able/conflux server
# 開発時:npm scriptsで起動
npm run mcp-server
# 開発時:tsxで直接実行
npx tsx src/mcp/server.ts方法2: Docker経由
# Dockerイメージをビルド
docker build -t conflux-mcp .
# 環境変数を指定して実行
docker run -it --rm \
-e OPENAI_API_KEY=your_api_key \
-e DEFAULT_LLM_PROVIDER=openai \
conflux-mcp
# Docker Composeで起動(推奨)
docker compose --env-file .env.docker up --build💡 注意: MCPサーバーを起動する前に、環境変数でAPI KEYを設定してください。
🐳 Docker: 本番環境での使用にはDockerコンテナでの実行を推奨します。詳細はDocker Deployment Guideを参照してください。
MCP設定例
Claude Desktop / Cursor設定
{
"mcpServers": {
"conflux-thinking-agents": {
"command": "npx",
"args": ["@53able/conflux", "server"],
"env": {
"OPENAI_API_KEY": "sk-proj-your-openai-api-key-here",
"OPENAI_MODEL": "gpt-5-nano",
"ANTHROPIC_API_KEY": "sk-ant-your-anthropic-api-key-here",
"ANTHROPIC_MODEL": "claude-3-5-haiku-latest",
"GOOGLE_GENERATIVE_AI_API_KEY": "your-google-api-key-here",
"GOOGLE_MODEL": "gemini-2.5-flash",
"DEFAULT_LLM_PROVIDER": "openai",
"AI_SDK_DISABLE_TELEMETRY": "true",
"AI_SDK_VERCEL_AI_GATEWAY_DISABLED": "true"
}
}
}
}環境変数の説明
| 環境変数 | 説明 | 必須 | デフォルト |
|---------|------|------|-----------|
| OPENAI_API_KEY | OpenAI APIキー | 推奨 | - |
| OPENAI_MODEL | 使用するOpenAIモデル | 任意 | gpt-5-nano |
| ANTHROPIC_API_KEY | Anthropic APIキー | 推奨 | - |
| ANTHROPIC_MODEL | 使用するAnthropicモデル | 任意 | claude-3-5-haiku-latest |
| GOOGLE_GENERATIVE_AI_API_KEY | Google Generative AI APIキー | 任意 | - |
| GOOGLE_MODEL | 使用するGoogleモデル | 任意 | gemini-2.5-flash |
| DEFAULT_LLM_PROVIDER | デフォルトのLLMプロバイダー | 任意 | openai |
| AI_SDK_DISABLE_TELEMETRY | テレメトリを無効化 | 推奨 | true |
| AI_SDK_VERCEL_AI_GATEWAY_DISABLED | Vercel AI Gatewayを無効化 | 推奨 | true |
💡 ヒント: 最低限、
OPENAI_API_KEY、ANTHROPIC_API_KEY、またはGOOGLE_GENERATIVE_AI_API_KEYのいずれかを設定すれば動作します。複数設定すると、DEFAULT_LLM_PROVIDERで選択できます。
利用可能なモデル
AI SDK v5でサポートされている最新のモデル一覧は、AI SDK v5公式ドキュメントで確認できます。
利用可能なプロバイダーとモデル:
- OpenAI:
gpt-4o-mini,gpt-4o,gpt-5-nano,gpt-5,gpt-5-mini,gpt-5-chat-latest - Anthropic:
claude-3-5-haiku-latest,claude-sonnet-4-latest,claude-3-5-sonnet-20241022,claude-3-5-sonnet-latest - Google:
gemini-2.5-flash,gemini-2.0-flash-exp,gemini-1.5-flash,gemini-1.5-pro - OpenAI互換: カスタムエンドポイント(
openai-compatibleタイプ) - Mock: 開発・テスト用(
mockタイプ)
📚 注意: モデル名は実際の利用可能性に依存します。最新の利用可能なモデル一覧はAI SDK v5公式ドキュメントで確認してください。
📚 詳細: 各プロバイダーの最新モデル一覧と機能比較はAI SDK v5公式ドキュメントを参照してください。
Cursor / Claude Codeでの使用
プロジェクトセットアップ(開発者向け)
# リポジトリのクローン
git clone https://github.com/53able/conflux.git
cd conflux
# 依存関係のインストール(pnpm推奨)
pnpm install
# ビルド
pnpm run build
# 型チェック(any型完全禁止)
pnpm run type-check
# Lintチェック(ESLint v9)
pnpm run lint
# MCPサーバーとして起動
pnpm run mcp-server
# または
npx @53able/conflux server
# CLIツールとして使用
npx @53able/conflux listDocker環境でのセットアップ
# Dockerイメージをビルド
docker build -t conflux-mcp .
# 環境変数ファイルを作成
cat > .env.docker << 'EOF'
OPENAI_API_KEY=your-key-here
ANTHROPIC_API_KEY=your-anthropic-key-here
GOOGLE_GENERATIVE_AI_API_KEY=your-google-key-here
DEFAULT_LLM_PROVIDER=openai
NODE_ENV=production
AI_SDK_DISABLE_TELEMETRY=true
AI_SDK_VERCEL_AI_GATEWAY_DISABLED=true
EOF
# Docker Composeで起動
docker compose --env-file .env.docker up --build
# 開発用(ホットリロード)
docker compose -f docker-compose.yml -f docker-compose.dev.yml up📚 詳細: Docker環境での詳細な設定方法はDocker Deployment Guideを参照してください。
コード品質と型安全性
このプロジェクトは最高レベルの型安全性とコード品質を実現しています:
型安全性
- TypeScript厳密モード:
strict: trueで完全な型チェック - any型完全禁止: ESLintで
@typescript-eslint/no-explicit-any: error - Zodスキーマ: 実行時型検証とコンパイル時型安全性の両立
- AI SDK v5統合: 複雑な型定義に対応した適切な型アサーション
コード品質
- ESLint v9: 最新のESLint設定でコード品質を保証
- 未使用変数検出:
@typescript-eslint/no-unused-varsで未使用コードを排除 - 一貫した命名: 未使用パラメータは
_プレフィックスで統一 - 自動フォーマット: 一貫したコードスタイルを維持
信頼性機能
- 自己修復機能: 入力データの自動修復とスキーマ適合
- フォールバック機能: 複数LLMプロバイダー間の自動切り替え
- 自動復旧機能: スキーマ不一致やエラー時の自動再試行
- エラーハンドリング: 包括的なエラー処理とログ記録
開発コマンド
# 型チェック(エラー0個を保証)
pnpm run type-check
# Lintチェック(エラー0個、警告0個を保証)
pnpm run lint
# ビルド(型チェック + コンパイル)
pnpm run build
# 開発モード(ファイル監視)
pnpm run dev📋 開発局面と推奨思考法
| 局面 | 主要思考法 | 併用思考法 | 目的 | |------|------------|------------|------| | 事業/課題探索 | アブダクション | 帰納→演繹→メタ | 驚きから仮説形成 | | 要件定義 | ロジカルシンキング | MECE→クリティカル | 論点→結論の道筋 | | 価値仮説検証 | 帰納的思考 | クリティカル | データから一般化 | | アーキ設計 | 演繹的思考 | ディベート | 原則→設計結論 | | 優先順位付け | MECE | ロジカル | 粒度揃え・重複排除 | | 見積もり/計画 | ロジカルシンキング | メタ | 前提→分解→見積 | | 実装 | 演繹的思考 | クリティカル | 原則→具体コード | | デバッグ | アブダクション | 演繹→帰納 | 兆候→原因仮説 | | リファクタリング | クリティカルシンキング | MECE→ロジカル | 前提・依存を疑う | | コードレビュー | クリティカルシンキング | 演繹→MECE | 結論↔根拠の検証 | | テスト設計 | 演繹的思考 | MECE→帰納 | 仕様→条件導出 | | 実験/ABテスト | 帰納的思考 | クリティカル | データ→効果一般化 | | 意思決定 | ディベート思考 | メタ | 賛否論点の顕在化 | | ふりかえり | メタ思考 | ロジカル→PAC | 思考プロセス見直し | | 仮説分解 | PAC思考 | クリティカル | 前提・仮定・結論分解 |
⚙️ 設定
プログラムでの設定
import { globalLLMManager } from '@53able/conflux';
// カスタムプロバイダーの登録例
globalLLMManager.registerProvider('custom', {
type: 'openai-compatible',
baseURL: 'https://api.your-provider.com/v1',
model: 'your-model',
apiKey: 'your-key',
});📚 詳細: 利用可能なモデル一覧と詳細な設定方法はAI SDK v5公式ドキュメントを参照してください。
📚 高度な使用方法
カスタム思考法戦略
import { processCustomStrategy, globalLLMManager, toLanguageModel } from '@53able/conflux';
import * as E from 'fp-ts/lib/Either.js';
// カスタム戦略の実行
const result = await processCustomStrategy(
{
primary: 'critical',
secondary: ['logical', 'mece'],
sequence: ['critical', 'logical', 'mece']
},
{
problem: '複雑な問題',
context: '技術的制約あり'
},
{
llmProvider: toLanguageModel(globalLLMManager.getProvider()),
llmIntegration: globalLLMManager.getIntegration(),
userId: 'user123',
sessionId: 'custom-strategy-session-123'
}
);
if (E.isRight(result)) {
console.log(result.right.synthesis); // 統合分析結果
console.log(result.right.actionItems); // 具体的なアクションアイテム
} else {
console.error('Error:', result.left);
}思考プロセスの連鎖
import { processPhaseTaskEither, globalLLMManager, toLanguageModel } from '@53able/conflux';
import * as E from 'fp-ts/lib/Either.js';
// 要件定義 → 設計 → 実装の連鎖
const requirements = await processPhaseTaskEither('requirement_definition', input, context)();
if (E.isRight(requirements)) {
const architecture = await processPhaseTaskEither('architecture_design', {
...input,
requirements: requirements.right.results,
}, context)();
if (E.isRight(architecture)) {
const implementation = await processPhaseTaskEither('implementation', {
...input,
architecture: architecture.right.results,
}, context)();
if (E.isRight(implementation)) {
console.log('連鎖完了:', implementation.right.synthesis);
}
}
}MCPツールの活用
MCPサーバーとして起動することで、他のAIツールと統合して高度な思考分析が可能です。
利用可能なMCPツール
| ツール名 | 説明 | 入力パラメータ |
|---------|------|---------------|
| process-phase | 局面に応じた統合思考プロセスを実行します | phase (開発局面), input (入力データ) |
| process-golden-pattern | 黄金パターン(探索→実装)の統合思考プロセスを実行します | input (入力データ) |
| process-single-method | 単一の思考法を実行します | method (思考法), input (入力データ) |
| process-custom-strategy | PHASE_THINKING_MAP形式で思考法戦略を指定して実行します | primary (主要思考法), secondary (併用思考法), sequence (実行順序), input (入力データ) |
| list-thinking-methods | 利用可能な思考法の一覧と詳細を取得します | なし |
| get-phase-recommendations | 指定した局面に推奨される思考法を取得します | phase (開発局面) |
思考プロセスの連鎖
MCPツールを組み合わせることで、複数の思考法を連鎖させた高度な分析が可能です。
🤝 貢献
このプロジェクトへの貢献を歓迎します!
- このリポジトリをフォーク
- フィーチャーブランチを作成 (
git checkout -b feature/amazing-feature) - 変更をコミット (
git commit -m 'Add amazing feature') - ブランチにプッシュ (
git push origin feature/amazing-feature) - プルリクエストを作成
📄 ライセンス
MIT License - 詳細は LICENSE ファイルを参照してください。
🙏 謝辞
構造化された思考で、より良い意思決定を。
