Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 0品質スコア 50/100

langchain-development

PythonでのLangChainおよびLangGraph開発を専門的にサポートするスキルで、チェーンの構成、エージェント、メモリ、RAGの実装まで幅広くカバーします。

description の原文を見る

Expert guidance for LangChain and LangGraph development with Python, covering chain composition, agents, memory, and RAG implementations.

SKILL.md 本文

LangChain Development

LangChain、LangGraph、および Python を使用した LLM パワード アプリケーション開発のエキスパートです。

主要原則

  • 正確な Python の例を含む簡潔で技術的な回答を書く
  • 関数型・宣言型プログラミングを使用し、可能な限りクラスを避ける
  • コードの重複を避け、イテレーションと モジュール化を優先
  • 補助動詞を含む説明的な変数名を使用(例:is_active、has_context)
  • PEP 8 スタイルガイドを厳密に遵守

コード整理

ディレクトリ構造

機能に基づいて論理的なモジュールにコードを整理:

project/
├── chains/           # LangChain chain definitions
├── agents/           # Agent configurations and tools
├── tools/            # Custom tool implementations
├── memory/           # Memory and state management
├── prompts/          # Prompt templates and management
├── retrievers/       # RAG and retrieval components
├── callbacks/        # Custom callback handlers
├── utils/            # Utility functions
├── tests/            # Test files
└── config/           # Configuration files

命名規則

  • ファイル名、関数名、変数名には snake_case を使用
  • クラス名には PascalCase を使用
  • プライベート関数の先頭にアンダースコアを付与
  • 目的を示す説明的な名前を使用(例:create_retrieval_chainbuild_agent_executor

LangChain Expression Language (LCEL)

チェーン構成

  • LCEL を使用してパイプオペレータ(|)でチェーンを構成
  • 複雑なワークフローに RunnableSequenceRunnableParallel を優先
  • RunnableLambda で適切なエラーハンドリングを実装
from langchain_core.runnables import RunnableParallel, RunnablePassthrough

chain = (
    RunnableParallel(
        context=retriever,
        question=RunnablePassthrough()
    )
    | prompt
    | llm
    | output_parser
)

ベストプラクティス

  • 単一入力には常に invoke() を、複数入力には batch() を使用
  • リアルタイム トークン ストリーミングには stream() を使用
  • ランタイム構成に with_config() を実装
  • bind() を使用してツールまたは関数をランナブルに添付

エージェントとツール

ツール開発

  • @tool デコレータを使用し、明確なドキストリングでツールを定義
  • すべてのツールパラメータに型ヒントを含める
  • 適切な入力検証を実装
  • 可能な限り構造化された出力を返す
from langchain_core.tools import tool
from pydantic import BaseModel, Field

class SearchInput(BaseModel):
    query: str = Field(description="Search query string")

@tool(args_schema=SearchInput)
def search_database(query: str) -> str:
    """Search the database for relevant information."""
    # Implementation
    return results

エージェント構成

  • モデルの機能に基づいて create_react_agent または create_tool_calling_agent を使用
  • 最大イテレーション数を持つ適切なエージェント実行機能を実装
  • 監視とデバッグ用コールバックを追加
  • 複雑なツール対話には構造化チャットエージェントを使用

メモリと状態管理

会話メモリ

  • 短い会話には ConversationBufferMemory を使用
  • 長い会話には ConversationSummaryMemory を実装
  • 固定長の履歴には ConversationBufferWindowMemory を検討
  • 本番環境ではpersistent storage バックエンド(Redis、PostgreSQL)を使用

LangGraph State

  • TypedDict を使用して明示的な状態スキーマを定義
  • 複雑な状態更新に対して適切な状態レデューサーを実装
  • 再開可能なワークフローのためにチェックポイント処理を使用
  • セッション間での状態永続性を処理
from typing import TypedDict, Annotated
from langgraph.graph import StateGraph
from operator import add

class AgentState(TypedDict):
    messages: Annotated[list, add]
    context: str
    next_step: str

graph = StateGraph(AgentState)

RAG (Retrieval-Augmented Generation)

ドキュメント処理

  • 適切なテキストスプリッターを使用(RecursiveCharacterTextSplitter、MarkdownTextSplitter)
  • オーバーラップを含む適切なチャンク サイズを実装
  • スプリット中にメタデータを保持
  • ファイル タイプに適したドキュメント ローダーを使用

ベクトル ストア

  • スケール要件に基づいてベクトル ストアを選択
  • 適切な埋め込みキャッシング を実装
  • 利用可能な場合はハイブリッド検索(密集+疎)を使用
  • 適切な類似度メトリックスを構成

検索戦略

  • 複雑な質問にはマルチクエリー検索を実装
  • コンテクスチュアル圧縮を使用してノイズを削減
  • より良いコンテキスト用に親ドキュメント検索を検討
  • 関連性向上のため再ランキング を実装

LangSmith 統合

監視

  • LANGCHAIN_TRACING_V2=true でトレーシング を有効化
  • 簡単に特定するため実行名を追加
  • フィルタリング用のカスタムメタデータを実装
  • カテゴリー化にタグを使用

デバッグ

  • パフォーマンス ボトルネックのトレースを確認
  • トークン使用パターンを分析
  • チェーン コンポーネント全体のレイテンシを監視
  • エラー率のアラートを設定

エラーハンドリング

  • 指数バックオフで再試行ロジック を実装
  • LLM プロバイダーからのレート制限を適切に処理
  • 重要なパスに対してフォールバック チェーンを使用
  • 十分なコンテキストでエラーをログに記録
from langchain_core.runnables import RunnableWithFallbacks

chain_with_fallback = primary_chain.with_fallbacks(
    [fallback_chain],
    exceptions_to_handle=(RateLimitError, TimeoutError)
)

パフォーマンス最適化

  • I/O バウンド操作に非同期メソッド(ainvokeabatch)を使用
  • 高コストな操作にキャッシング を実装
  • 可能な限りリクエストをバッチ処理
  • より良いユーザー体験のためストリーミング を使用

テスト

  • 個別のチェーン コンポーネント用にユニットテストを作成
  • 完全なチェーン用に統合テストを実装
  • ユニットテストで LLM 呼び出しをモッキング
  • エッジケースとエラー状態をテスト

依存関係

  • langchain
  • langchain-core
  • langchain-community
  • langgraph
  • langsmith
  • python-dotenv
  • pydantic

ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
mindrally
リポジトリ
mindrally/skills
ライセンス
Apache-2.0
最終更新
不明

Source: https://github.com/mindrally/skills / ライセンス: Apache-2.0

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: mindrally · mindrally/skills · ライセンス: Apache-2.0