LangChain で構築されたオブザーバーエージェント

LangChain は、大規模言語モデル(LLM)や外部ツールを活用したAI駆動型アプリケーションを構築するための Python フレームワークです。 LangChain, を使用すれば、タスク、ツール、LLM を連携させたインテリジェントなワークフローを構築し、ドキュメント生成、要約、データ分析などに対応したコンテキスト認識型システムを構築できます。

Instana LangChain アプリケーションの可観測性を提供し、ワークフロー、LLMとのやり取り、およびタスクの実行をリアルタイムで監視できるようにします。

前提条件

以下の前提条件が満たされていることを確認してください。

  • Python 3.8 以降がインストールされている。

  • LLM API key、Anthropic、 OpenAI,、または LangChain でサポートされているその他の LLM プロバイダー。

  • Instana アプリケーションに合わせて設定されているか確認するには、 「はじめに」 を参照してください。

LangChain アプリケーションへの計測機能の組み込み

LangChain アプリケーションに Instana を導入するには、以下の手順を実行してください:

  1. LangChain および OpenLLMetry に必要なパッケージをインストールしてください。

    pip install langchain langchain-anthropic traceloop-sdk
  2. LLMプロバイダーの認証情報を設定してください。

    export ANTHROPIC_API_KEY="<your-api-key>"
    注:

    別のプロバイダーを使用している場合は、 ANTHROPIC_API_KEY をLLMプロバイダーの環境変数に置き換えてください(例: OpenAIOPENAI_API_KEY の場合は)。

  3. LangChain アプリケーションを作成してください。

    以下の例は、 OpenLLMetry を使用した LangChain のワークフロー監視を示しています:

    from langchain_anthropic import ChatAnthropic
    from langchain_core.prompts import PromptTemplate
    from traceloop.sdk import Traceloop
    from traceloop.sdk.decorators import task, workflow
    
    # Initialize OpenLLMetry
    Traceloop.init(app_name="langchain_demo")
    
    @task(name="initialize_llm")
    def initialize_model():
        return ChatAnthropic(
            model="claude-3-5-sonnet-20241022",
            temperature=0.7,
            max_tokens=512
        )
    
    @task(name="create_prompt_template")
    def create_prompt():
        return PromptTemplate(
            input_variables=["input_text"],
            template="You are a helpful AI assistant. Respond to the following: {input_text}"
        )
    
    @task(name="process_llm_query")
    def process_query(prompt, llm, input_text):
        chain = prompt | llm
        return chain.invoke({"input_text": input_text})
    
    @workflow(name="langchain_conversation_workflow")
    def run_conversation():
        llm = initialize_model()
        prompt_template = create_prompt()
    
        input_text = "Explain the concept of quantum computing in simple terms."
        response = process_query(prompt_template, llm, input_text)
        print("Response:", response.content)
    
    if __name__ == "__main__":
        run_conversation()
  4. LangChain アプリケーションを実行してください。

    python langchain_app.py

    アプリケーションは応答を生成します:

    Response: Quantum computing is a type of computing that uses quantum-mechanical phenomena such as superposition and quantum entanglement to perform calculations. Unlike classical computers that use binary digits (0s and 1s), quantum computers use quantum bits or "qubits" that can exist in multiple states simultaneously. This allows quantum computers to perform certain types of calculations much faster than classical computers.
  5. Instana のデータを表示する。 アプリケーションを実行すると、データが Instana のGen AI可観測性ダッシュボードに表示されます:

    図 1. LangChain Instana 内の痕跡
    LangChain Instana 内の痕跡

    ダッシュボードには次のように表示されます:

    • ワークフローの実行フロー

    • 個々のタスクの実行(モデルの初期化、プロンプトの作成、クエリの処理)

    • LLMの応答における遅延とトークン使用量

    • チェーン展開

トラブルシューティング

トレースが表示されない、または接続エラーが発生するなどの一般的な問題については、 「トラブルシューティング」 を参照してください。

create_react_agent を使用する際、メトリクスが期待通りの値で表示されない

問題 :. を使用すると create_react_agent、モデル名を含む一部のメトリクスが正しく表示されない。

考えられる原因 :パッケージ langchain.agents からのインポートはサポートされていません。

この問題を解決するには、パッケージから create_react_agentlanggraph.prebuilt インポートしてください:

# Don't use this
from langchain.agents import create_react_agent

# Use this instead
from langgraph.prebuilt import create_react_agent