Open3

「parlant」を試す

kun432kun432

DSPyで色々調べてたら、たまたま見つけた。

https://x.com/ymarcov/status/1973939724210598062

「ParlantはDSPyのようなものですか?違いは何ですか?」

最近、この質問をよく目にします。両方のフレームワークがLLMをより一貫性のあるものにすると主張しているため、混乱するのも理解できます。

しかし、実際にはまったく異なる問題を解決しています。

  • DSPyが解決する問題:「モデルの出力が正しくない。」
  • Parlantが解決する問題:「エージェントを顧客とのやり取りで信頼できない。」

ただし、実際にはこれらは補完的な関係にあります。DSPyを使って特定のコンポーネント(たとえばRAGリトリーバル)を最適化しつつ、Parlantを使って効果的でビジネスに沿った顧客とのやり取りを強制することができます。

違いについて詳細な解説(1番目のコメント)を書きました。内容は以下の通りです:

  • 各フレームワークがどのように機能するか(コード例付き)
  • どのタイミングでどちらを使うべきか
  • 両方を一緒に使う方法
  • 最適化と制御の違い

LLMアプリケーションを構築していて、どのアプローチが自分のニーズに合うか迷っている場合、この解説が明確に役立つはずです!

kun432kun432

https://www.parlant.io/blog/parlant-vs-dspy/

上記の記事を Dia にまとめてもらった。

DSPyはLLMの出力を最適化する“プロンプト用コンパイラ”、Parlantは会話エージェントの“行動を規則で制御する”整合エンジンだよ。

何の話?

両方ともPythonでLLMを扱うフレームワークだけど、狙ってる課題が全然違うんだよね。DSPy は「どうプロンプトすれば良い出力が出るか」を自動で最適化。Parlant は「顧客対応エージェントがビジネスルールをちゃんと守るようにする」ための制御と整合に全振り。ウケるくらい方向性が真逆だし。

DSPyってなに?

ざっくり言うと、プロンプトを手作業でチマチマ調整するのをやめて、宣言的に「やりたいこと」を書くと、DSPyがサンプルと評価指標を使って最適なプロンプト・構成を学習してくれるやつ。ちょー実験しやすいし、モデル乗り換えにも強い。

  • 例イメージ: 感情分類で入出力例とメトリクスを用意→最適化→できた分類器を使う、みたいなフローだし。
  • 得意分野: 最適化、複数LLM呼びの推論パイプライン、RAG全体のチューニング、プロンプト自動設計。
  • 逆に苦手: 規制順守の保証、多数の厳格な会話ルールの強制、マルチターンの行動制御など“振る舞いの統制”。

Parlantってなに?

Parlant は「顧客-facingの会話エージェントが、毎回ちゃんとルール守る」ことを目的にした整合エンジン。ポイントは、指示を一括で詰め込まず、会話の状況に合わせて関連する指示だけを絞って出すこと。マジでここがキモだし。

  • ガイドライン: 条件付きの小さな規則。「返金の話題なら、まず共感→30日返金ポリシー説明」みたいなやつを、該当ターンだけロードして強制力高める。
  • ジャーニー: 会話の意図した流れ(状態遷移)。ステップを柔軟にスキップ/再訪できるけど、全体の目的は外さない設計だし。

得意分野は、ビジネスルールの大規模運用、コンプラ必須な場面、現場からの学びで振る舞いを改善、マルチターン管理。不得意なのは、モデル性能の横断最適化や非会話タスクの一般用途。

コアの違い

方面 DSPy Parlant
目的 LLM出力の最適化(プロンプトを学習) 会話エージェントの行動を規則で整合
仕組み 宣言的モジュール + 最適化器 ガイドライン + ジャーニー + 強制エンジン
指示変更への対応 再最適化が必要 ルール更新が即時反映(再学習なし)
得意領域 RAG/推論パイプライン/プロンプト自動化 コンプラ/ビジネスルール遵守/マルチターン制御
モデル関係 どのプロバイダでも最適化 どのプロバイダでも規則を強制

使い分けの感覚

  • 出力の質を上げたい(RAG含む)→ DSPy だし。
  • 絶対に言ってはいけない/必ず言うべきがある、プロトコル遵守が命→ Parlant だもん。
  • 両方欲しいなら、会話の構造とルールはParlant、情報検索の精度や生成最適化はDSPyに任せる“合わせ技”もアリ。ParlantのツールからDSPy最適化済みコンポーネントを呼ぶ想定もできるし。

いちばん深い哲学の差

  • DSPy: うまく最適化すればモデルは欲しい出力を安定して返すでしょ、って思想。
  • Parlant: モデルの出力は不確実だから、アーキテクチャで“行動空間”を管理・フィルタ・制御しないとね、って思想。

だから、QAシステムの精度改善なら DSPy が気持ちいい。だけど、顧客対応で「不正な高額返金」とかが絶対ダメな現場なら、Parlant の“ルール強制”が安心感ちょー高いんだよね✨

kun432kun432

公式サイト

https://www.parlant.io/

GitHubレポジトリ

https://github.com/emcie-co/parlant/

GPT-5による翻訳(抜粋)


referred from https://github.com/emcie-co/parlant/

ついに、実際に指示に従うLLMエージェント

🎯 すべてのAI開発者が直面する問題

あなたはAIエージェントを構築する。テストではうまく動く。しかし実際のユーザーが話し始めると……

  • ❌ 丁寧に作り込んだシステムプロンプトを無視する
  • ❌ 重要な場面で幻覚的な応答をする
  • ❌ イレギュラーなケースを一貫して扱えない
  • ❌ 各会話がサイコロを振るような結果になる

心当たりはありますか? あなただけではありません。これは本番用AIエージェントを構築する開発者にとっての最大の悩みです。

⚡ 解決策: プロンプトとの格闘をやめ、原則を教える

ParlantはAIエージェント開発の常識を覆します。LLMが指示に従ってくれることを「願う」のではなく、Parlantが従わせます

# 従来の方法: ただ祈る 🤞
system_prompt = "You are a helpful assistant. Please follow these 47 rules..."

# Parlantの方法: 準拠を保証 ✅
await agent.create_guideline(
    condition="Customer asks about refunds",
    action="Check order status first to see if eligible",
    tools=[check_order_status],
)

Parlantは顧客対応エージェントをビジネス要件通りに動作させるためのすべての仕組みを提供します:

  • ジャーニー: 顧客のジャーニーを定義し、各段階でエージェントがどう応答すべきかを指定。
  • 行動ガイドライン: エージェントの行動を簡単に設計。Parlantが文脈に応じて関連要素を適用。
  • ツール利用: 外部API、データ取得、バックエンドサービスを特定のやりとりに接続。
  • ドメイン適応: エージェントに業界特有の用語を教え、個別化された応答を作成。
  • 定型応答: 応答テンプレートで幻覚を排除し、スタイルの一貫性を保証。
  • 説明可能性: 各ガイドラインがなぜ・いつ適用されたかを理解可能。

🔥 開発者がParlantに乗り換える理由

🏗️ 従来のAIフレームワーク Parlant
複雑なシステムプロンプトを書く 自然言語でルールを定義
LLMが従うことを祈る 遵守を保証
予測不能な動作をデバッグ 予測可能で一貫した動作
プロンプトエンジニアリングでスケール ガイドライン追加でスケール
信頼性を神頼み 初日から本番対応可能

🎯 あなたのユースケースに最適

金融サービス ヘルスケア Eコマース リーガルテック
コンプライアンス重視設計 HIPAA準拠エージェント 大規模な顧客対応 精密な法的助言
リスク管理を内蔵 患者データ保護 注文処理の自動化 文書レビュー支援

🛠️ エンタープライズ対応機能

  • 🧭 会話ジャーニー - 顧客をステップごとにゴールへ導く
  • 🎯 動的ガイドラインマッチング - 文脈認識でルール適用
  • 🔧 信頼できるツール統合 - API、データベース、外部サービス
  • 📊 会話分析 - エージェント行動の深い洞察
  • 🔄 継続的改善 - 応答を反復的に改良
  • 🛡️ 組込みガードレール - 幻覚や脱線を防止
  • 📱 Reactウィジェット - あらゆるWebアプリにドロップイン
  • 🔍 完全な説明可能性 - 各判断の理由を理解可能

📄 ライセンス

Apache 2.0 - 商用プロジェクトを含め、どこでも利用可能。


プロンプトエンジニアリングだと「ルール」とかって書いちゃうようなことを、「ガイドライン」「アラインメント」としてコードで定義する、というようなものみたい。

DSPyとは確かに異なる印象、というかなんでDSPyと比較されたんだろう?まあプロンプトエンジニアリングをがんばる、というようなものではないのは共通してる気はするけど。