langgraph
LangGraph で AI エージェントを構築
LangGraph は、ステートフルなマルチアクター AI アプリケーションを構築するためのプロダクション対応グレードのフレームワークです。このスキルでは、可視的なグラフ構造によるエージェントアーキテクチャの設計、複雑な状態管理、サイクルと分岐の実装、再開可能な会話のための永続化の追加を支援します。
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
テストする
「langgraph」を使用しています。 ツール付きのシンプルなエージェントを作成する
期待される結果:
基本的な LangGraph エージェントのセットアップです:
1. TypedDict で AgentState を定義
2. @tool デコレーターでツール関数を作成
3. ツールを呼び出す LLM を使用するエージェントノードを構築
4. ツール実行用の条件付きエッジを追加
5. グラフをコンパイルして実行
エージェントは、ツールが呼び出されなくなるまで LLM とツールの間をループし、その後ユーザーにレスポンスを返します。
「langgraph」を使用しています。 無限ループを防ぐにはどうすればよいですか?
期待される結果:
状態に最大イテレーションカウンターを使用してください:
1. 状態に 'iterations' フィールドを追加
2. イテレーションをチェックする should_continue 関数を作成
3. エージェントノードでカウンターをインクリメント
4. イテレーションが制限を超えた場合に END を返す
これにより、エージェントに明確な終了条件が設定され、無限に実行されることを防ぎます。
セキュリティ監査
中リスクThe skill is a legitimate LangGraph documentation and assistance skill. One true positive was found: an eval() call in example code (line 67) that accepts user input without sanitization. This is documented example code showing tool implementation, but poses a risk if users copy this pattern. Multiple false positives were dismissed: Ruby/shell backtick execution (markdown code fences misinterpreted) and weak cryptographic algorithms (keyword matches on 'hash' in framework terminology).
高リスクの問題 (1)
低リスクの問題 (2)
リスク要因
⚡ スクリプトを含む (1)
検出されたパターン
品質スコア
作れるもの
マルチステップエージェントワークフローの構築
推論、ツール使用、複数インタラクションにわたる会話コンテキストの維持が可能なエージェントを作成します。
リサーチエージェントシステムの実装
複数のソースから情報を収集し、知見を統合して総合的なレポートを作成するエージェントを設計します。
ステートフルなチャットアプリケーションの作成
会話履歴を記憶し、以前の状態から再開可能なチャットアプリケーションを構築します。
これらのプロンプトを試す
ツールを呼び出せるシンプルな ReAct スタイルのエージェントを LangGraph で作成してください。状態の定義、ノードの作成、エッジの設定、グラフのコンパイル方法を示してください。
TypedDict とカスタムリデューサーを使用して LangGraph で複雑な状態を管理する方法を示してください。メッセージの蓄積、複数ノードからの知見の統合、会話履歴の追跡を行いたいです。
LangGraph で条件付き分岐を実装するのを手伝ってください。クエリのタイプ(コーディング、検索、チャット)に基づいて異なるエージェントにルーティングし、レスポンスを適切に処理する必要があります。
会話を再開できるように LangGraph エージェントにチェックポイント機能を追加してください。チェッカーの構成方法とセッション間での状態の永続化方法を示してください。
ベストプラクティス
- 無限ループを防ぐために、ルーティング関数で常に明確な終了条件を定義する
- リデューサーを適切に使用する - 蓄積には add_messages、複雑な統合にはカスタム関数
- 入力/出力スキーマを設計して、状態を必要最小限に保ち、必要なことに集中させる
回避
- ツール内でユーザー入力に eval() を使用する - ユーザー提供の式は常に検証とサニタイズを行う
- 状態の更新を返さないステートレスノードを作成する - LangGraph の目的に反する
- 不要なフィールドを含む巨大な単一状態を使用する - シリアライゼーションのオーバーヘッドとコンテキストの肥大化を引き起こす