CrewAI で構築されたエージェントの監視

CrewAI Python フレームワークであり、タスクを共同で完了させるAIエージェントの作成と管理を行います。 CrewAI を使用すれば、自律的に連携し、ワークフローを実行し、意思決定を最適化する自律型AIエージェントを構築できます。 CrewAI 大規模言語モデル(LLM)や外部ツールと連携し、自動化、研究、カスタマーサービスなどに活用できます。

Instana CrewAI, で構築されたエージェントの可観測性を提供し、AIエージェントのワークフロー、タスク実行、LLMパフォーマンスのリアルタイム監視を可能にします。

前提条件

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

  • Python 3.8 またはそれ以降

  • LLM API キー(Anthropic、 OpenAI,、または CrewAI でサポートされている任意の LLM プロバイダー)

  • Instana アプリケーションに合わせて設定するには、 はじめの一歩を参照してください

CrewAI アプリケーションの計測

CrewAI アプリケーションを Instana で計測するには、次の手順を完了してください:

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

    pip install crewai crewai-tools traceloop-sdk
  2. LLMプロバイダーの認証情報を設定し、 CrewAI's の内部テレメトリを無効にしてください。

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

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

    CrewAI's の内部テレメトリを無効化することで、すべてのトレースが OpenLLMetry 経由でキャプチャされ、一貫した可観測性が確保されます。

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

    以下の例では、タスクのために協力する2つのエージェント(研究者とライター)が作成されます:

    from crewai import Agent, Task, Crew, Process
    from crewai_tools import SerperDevTool
    from traceloop.sdk import Traceloop
    from traceloop.sdk.decorators import workflow
    
    # Initialize OpenLLMetry
    Traceloop.init(app_name="crewai_demo")
    
    # Initialize search tool
    search_tool = SerperDevTool()
    
    # Define agents
    researcher = Agent(
        role="Senior Research Analyst",
        goal="Uncover cutting-edge developments in AI and data science",
        backstory="You are a Senior Research Analyst at a leading tech think tank.",
        verbose=True,
        allow_delegation=False,
        tools=[search_tool]
    )
    
    writer = Agent(
        role="Tech Content Strategist",
        goal="Craft compelling content on tech advancements",
        backstory="You are a renowned Tech Content Strategist, known for insightful and engaging articles on technology and innovation.",
        verbose=True,
        allow_delegation=False,
        tools=[search_tool]
    )
    
    # Define tasks
    task1 = Task(
        description="Perform an in-depth analysis of the following topic: {topic}",
        expected_output="Comprehensive analysis report in bullet points",
        agent=researcher
    )
    
    task2 = Task(
        description="Using the insights from the researcher's report, develop an engaging blog post that highlights the most significant advancements",
        expected_output="A compelling 3-paragraph blog post formatted as markdown",
        agent=writer
    )
    
    # Create the crew
    crew = Crew(
        agents=[researcher, writer],
        tasks=[task1, task2],
        verbose=True,
        process=Process.sequential
    )
    
    # Wrap crew execution in a workflow for better tracing
    @workflow(name="crewai_workflow")
    def run_crew(topic):
        return crew.kickoff(inputs={"topic": topic})
    
    # Execute the crew
    if __name__ == "__main__":
        topics = ["Artificial Intelligence", "Machine Learning", "Neural Networks"]
    
        for topic in topics:
            result = run_crew(topic)
            print(f"\nCompleted analysis for: {topic}\n")
  4. CrewAI アプリケーションを実行してください。

    python crewai_app.py

    CrewAI エージェントの連携を示す出力を生成します:

    図 1. CrewAI 出力
    CrewAI 出力
  5. Instana でデータを表示する

    アプリケーションを実行すると、 Instana Gen AI 監視ダッシュボードにデータが表示されます:

    図 2. CrewAI Instana 内の痕跡
    CrewAI Instana 内の痕跡

トラブルシューティング

CrewAI で構築されたエージェントのトラブルシューティング情報

crewAI-telemetry に、期待されるサービス名ではなくトレースが表示される

問題 : トレースが期待されるサービス名(例: crewai_demo)の下に表示されず、 の下で表示される crewAI-telemetry

原因 : CrewAI's 内部テレメトリがまだ有効になっています。

解決策 : 以下の環境変数を設定して、 CrewAI's の内部テレメトリを無効化します:

export CREWAI_DISABLE_TELEMETRY=true

この変数を設定すると、すべてのトレースデータがキャプチャされ、設定したサービス名のもとで OpenLLMetry を通じて一貫して報告されます。