Promptheus について
Promptheus は、適応型の質問と反復的な編集でプロンプトを改善します。コマンドライン、Web UI、Python ライブラリ、MCP サーバーを備え、複数の AI プロバイダーに対応し、プロンプト履歴を再利用できます。
主な機能
- 01適応型の確認質問
- 02対話によるプロンプト改善
- 03プロンプトの部分的な修正
- 04複数の AI プロバイダーに対応
- 05プロンプト履歴の保存と再利用
- 06コマンドライン、Web UI、Python ライブラリ
活用シーン
- 01コンテンツ生成プロンプトの要件を明確にする
- 02コードレビュー用プロンプトを改善する
- 03既存のプロンプトを短く修正する
- 04シェルパイプラインでプロンプトを改善する
MCP 対応
MCP サーバーはプロンプトの改善と部分修正に加え、モデルやプロバイダーの確認、設定と接続の検証を行うツールを公開します。改善時に確認質問を返し、クライアント側で処理できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx promptheusGOOGLE_API_KEYシークレットGoogle Gemini API key (optional, at least one provider required)ANTHROPIC_API_KEYシークレットAnthropic Claude API key (optional, at least one provider required)OPENAI_API_KEYシークレットOpenAI API key (optional, at least one provider required)GROQ_API_KEYシークレットGroq API key (optional, at least one provider required)QWEN_API_KEYシークレットAlibaba Qwen API key (optional, at least one provider required)GLM_API_KEYシークレットZhipu GLM API key (optional, at least one provider required)PROMPTHEUS_PROVIDEROverride provider selection (gemini, anthropic, openai, groq, qwen, glm)PROMPTHEUS_MODELOverride model selection for the chosen providerローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Promptheus
LLM 向けのプロンプトを洗練・最適化
クイックスタート
pip install promptheus
# Interactive session
promptheus
# Single prompt
promptheus "Write a technical blog post"
# Skip clarifying questions
promptheus -s "Explain Kubernetes"
# Use web UI
promptheus web
Python ライブラリの使用方法
from promptheus import refine_prompt
result = refine_prompt("Write a technical blog post", skip_questions=True)
print(result["refined_prompt"])
すでに非同期アプリケーション(例:FastAPI)を使用している場合は、同期ヘルパーの代わりに refine_prompt_async を呼び出してください。
Promptheus とは?
Promptheus はプロンプトを分析し、次の機能を使って洗練します。
- 適応型の質問:入力が必要な情報を賢く判断します
- マルチプロバイダー対応:Google、OpenAI、Anthropic、Groq、Qwen などで動作します
- 対話型の洗練:自然な会話を通じて、出力を段階的に改善します
- セッション履歴:過去のプロンプトを自動的に記録し、再利用します
- CLI とウェブ UI:ターミナルまたはブラウザーから利用できます
対応プロバイダー
| プロバイダー | モデル | 設定 |
|---|---|---|
| Google Gemini | gemini-2.0-flash, gemini-1.5-pro | API キー |
| Anthropic Claude | claude-3-5-sonnet, claude-3-opus | コンソール |
| OpenAI | gpt-4o, gpt-4-turbo | API キー |
| Groq | llama-3.3-70b, mixtral-8x7b | コンソール |
| Alibaba Qwen | qwen-max, qwen-plus | DashScope |
| Zhipu GLM | glm-4-plus, glm-4-air | コンソール |
| OpenRouter | openrouter/auto(自動ルーティング) | ダッシュボード |
Promptheus の OpenRouter 統合は、openrouter/auto ルーティングモデルを中心に最適化されています。
- モデル一覧は意図的に最小限にしています。Promptheus では、OpenRouter アカウントの全モデルカタログは表示されません。
- API キーでアクセスできる場合は、
OPENROUTER_MODELまたは--modelを使って、具体的なモデルを手動で指定することもできます。
主な機能
🧠 適応型タスク検出 タスクに洗練が必要か、直接最適化すべきかを自動的に検出します
⚡ 対話型の洗練 的を絞った質問で要件を引き出し、出力を改善します
📝 パイプライン統合 Unix パイプラインやシェルスクリプトでシームレスに動作します
🔄 セッション管理 過去のプロンプトを自動的に記録、読み込み、再利用します
📊 テレメトリーと分析 分析に役立てるため、利用状況とパフォーマンスの匿名メトリクスを追跡します(ローカルストレージのみ。無効化できます)
🌐 ウェブインターフェース 対話型のプロンプト洗練や履歴管理に使える、美しい UI を提供します
設定
少なくとも 1 つのプロバイダー API キーを含む .env ファイルを作成します。
GOOGLE_API_KEY=your_key_here
ANTHROPIC_API_KEY=your_key_here
OPENAI_API_KEY=your_key_here
または、対話型セットアップを実行します。
promptheus auth
例
コンテンツ生成
promptheus "Write a blog post about async programming"
# System asks: audience, tone, length, key topics
# Generates refined prompt with all specifications
コード分析
promptheus -s "Review this function for security issues"
# Skips questions, applies direct enhancement
対話型セッション
promptheus
/set provider anthropic
/set model claude-3-5-sonnet
# Process multiple prompts, switch providers/models with /commands
パイプライン統合
echo "Create a REST API schema" | promptheus | jq '.refined_prompt'
cat prompts.txt | while read line; do promptheus "$line"; done
テストと例:適応型タスク検出(分析と生成)を実演するテスト用プロンプトについては、sample_prompts.md を参照してください。
テレメトリーと分析
# View telemetry summary (anonymous metrics about usage and performance)
promptheus telemetry summary
# Disable telemetry if desired
export PROMPTHEUS_TELEMETRY_ENABLED=0
# Customize history storage location
export PROMPTHEUS_HISTORY_DIR=~/.custom_promptheus
MCP サーバー
Promptheus には、プロンプトの改善機能を MCP 対応クライアントと統合するための標準化されたツールとして公開する Model Context Protocol(MCP)サーバーが含まれています。
MCP サーバーの機能
Promptheus MCP サーバーは、次の機能を提供します。
- Q&A によるプロンプトの改善:適応的な質問を通じた、インテリジェントなプロンプトの最適化
- プロンプトの微調整:既存のプロンプトに対する的確な変更
- モデル/プロバイダーの調査:利用可能な AI プロバイダーの検出と検証
- 環境の検証:設定の確認と接続テスト
MCP サーバーの起動
# Start the MCP server
promptheus mcp
# Or run directly with Python
python -m promptheus.mcp_server
前提条件:
- MCP パッケージがインストールされていること:
pip install mcp(requirements.txt に含まれています) - 少なくとも 1 つのプロバイダー API キーが設定されていること(設定を参照)
利用可能な MCP ツール
refine_prompt
必要に応じて確認質問を行い、インテリジェントにプロンプトを改善します。
入力:
prompt(必須):改善する最初のプロンプトanswers(任意):質問 ID と回答を対応付ける辞書{q0: "answer", q1: "answer"}answer_mapping(任意):質問 ID と元の質問文を対応付けますprovider(任意):プロバイダーを上書きします(例:"google"、"openai")model(任意):モデル名を上書きします
レスポンスタイプ:
{"type": "refined", "prompt": "...", "next_action": "..."}:改善されたプロンプトを含む成功レスポンス{"type": "clarification_needed", "questions_for_ask_user_question": [...], "answer_mapping": {...}}:質問が必要です{"type": "error", "error_type": "...", "message": "..."}:エラーが発生しました
tweak_prompt
既存のプロンプトに的を絞った変更を適用します。
入力:
prompt(必須):変更する現在のプロンプトmodification(必須):変更内容の説明(例:"短くする")provider、model(任意):プロバイダー/モデルを上書きします
戻り値:
{"type": "refined", "prompt": "..."}:変更されたプロンプト
list_models
設定済みのプロバイダーから利用可能なモデルを検出します。
入力:
providers(任意):照会するプロバイダー名のリストlimit(任意):プロバイダーごとのモデル数の上限(デフォルト:20)include_nontext(任意):ビジョン/埋め込みモデルを含めます
戻り値:
{"type": "success", "providers": {"google": {"available": true, "models": [...]}}}
list_providers
プロバイダーの設定状況を確認します。
戻り値:
{"type": "success", "providers": {"google": {"configured": true, "model": "..."}}}
validate_environment
環境設定と API 接続をテストします。
入力:
providers(任意):検証する特定のプロバイダーtest_connection(任意):実際の API 接続をテストします
戻り値:
{"type": "success", "validation": {"google": {"configured": true, "connection_test": "passed"}}}
Q&A によるプロンプト改善ワークフロー
MCP サーバーは、最適なプロンプト改善のための構造化された確認ワークフローをサポートしています。
ステップ 1:最初の改善リクエスト
{
"tool": "refine_prompt",
"arguments": {
"prompt": "Write a blog post about machine learning"
}
}
ステップ 2:確認レスポンスの処理
{
"type": "clarification_needed",
"task_type": "generation",
"message": "To refine this prompt effectively, I need to ask...",
"questions_for_ask_user_question": [
{
"question": "Who is your target audience?",
"header": "Q1",
"multiSelect": false,
"options": [
{"label": "Technical professionals", "description": "Technical professionals"},
{"label": "Business executives", "description": "Business executives"}
]
}
],
"answer_mapping": {
"q0": "Who is your target audience?"
}
}
ステップ 3:ユーザーの回答を収集
MCP クライアントの AskUserQuestion ツールを使って提示された質問を行い、回答を質問 ID に対応付けます。
ステップ 4:回答を使った最終的な改善
{
"tool": "refine_prompt",
"arguments": {
"prompt": "Write a blog post about machine learning",
"answers": {"q0": "Technical professionals"},
"answer_mapping": {"q0": "Who is your target audience?"}
}
}
レスポンス:
{
"type": "refined",
"prompt": "Write a comprehensive technical blog post about machine learning fundamentals targeted at software engineers and technical professionals. Include practical code examples and architectural patterns...",
"next_action": "This refined prompt is now ready to use. If the user asked you to execute/run the prompt, use this refined prompt directly with your own capabilities..."
}
AskUser の統合契約
MCP サーバーは、次の 2 つのモードで動作します。
対話モード(AskUserQuestion を利用できる場合):
- 注入された AskUserQuestion 関数を介して、確認の質問を自動的に行います
- 回答の収集後、改善されたプロンプトをすぐに返します
- 対応クライアント内でシームレスなユーザー体験を実現します
構造化モード(すべてのクライアント向けのフォールバック):
- 整形された質問を含む
clarification_neededレスポンスを返します - AskUserQuestion ツールの呼び出しはクライアントが担当します
- 回答は
answer_mapping辞書を介して対応付けられます
質問の形式:
questions_for_ask_user_question 内の各質問には、次の項目が含まれます。
question:表示する質問文header:短い識別子(Q1、Q2 など)multiSelect:複数選択オプションの真偽値options:ラジオボタン/チェックボックス形式の質問に使う{label, description}の配列
回答の対応付け:
- 質問 ID は
q0、q1、q2などのパターンに従います - 回答辞書では、これらの ID をキーとして使用します:
{"q0": "answer", "q1": "answer"} answer_mappingは、プロバイダーのコンテキストに使う元の質問文を保持します
MCP のトラブルシューティング
MCP パッケージがインストールされていない
Error: The 'mcp' package is not installed. Please install it with 'pip install mcp'.
修正方法: pip install mcp を実行するか、開発用依存関係を含めて Promptheus をインストールします:pip install -e .[dev]
プロバイダーの API キーが不足している
{
"type": "error",
"error_type": "ConfigurationError",
"message": "No provider configured. Please set API keys in environment."
}
診断方法: list_providers または validate_environment ツールを使って、設定状況を確認します
プロバイダーの設定ミス
{
"type": "success",
"providers": {
"google": {"configured": false, "error": "GOOGLE_API_KEY not found"},
"openai": {"configured": true, "model": "gpt-4o"}
}
}
修正方法: .env ファイルまたは環境変数に不足している API キーを設定します
接続テストの失敗
{
"type": "success",
"validation": {
"google": {
"configured": true,
"connection_test": "failed: Authentication error"
}
}
}
修正方法: API キーが有効で、必要な権限を持っていることを確認します
ドキュメント全文
クイックリファレンス:promptheus --help
詳細ガイド:
- 📖 インストールとセットアップ
- 🚀 使用ガイド
- 🔧 設定
- ⌨️ CLI リファレンス
- 🌐 Web UI ガイド
- 🔌 プロバイダーのセットアップ
開発
git clone https://github.com/abhichandra21/Promptheus.git
cd Promptheus
pip install -e ".[dev]"
pytest -q
開発の詳細なガイダンスについては、CLAUDE.md を参照してください。
ライセンス
MIT ライセンスの詳細については、LICENSE を参照してください
コントリビューション
コントリビューションを歓迎します!コントリビューションのガイドラインについては、開発ガイド をご覧ください。
ご質問がありますか? イシューを作成 | ライブデモ:promptheus web
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。