CrewAI で構築されたオブザーバーエージェント
CrewAI は、タスクを遂行するために協力し合うAIエージェントを作成・管理するための Python フレームワークです。 CrewAI を使用すれば、連携して動作し、ワークフローを実行し、意思決定を最適化する自律型 AI エージェントを構築できます。 CrewAI 大規模言語モデル(LLM)や外部ツールと連携するため、自動化、調査、カスタマーサービスなど幅広い用途に活用できます。
Instana CrewAI, で構築されたエージェントの可観測性を提供し、AIエージェントのワークフロー、タスクの実行、およびLLMのパフォーマンスをリアルタイムで監視できるようにします。
前提条件
以下の前提条件が満たされていることを確認してください:
Python 3.8 またはそれ以降
LLMの API キー(Anthropic、 OpenAI,、または CrewAI でサポートされているLLMプロバイダー)
Instana アプリケーションに合わせて設定されています。 詳しくは「はじめに」 をご覧ください
CrewAI アプリケーションへの計測機能の組み込み
CrewAI アプリケーションに Instana を導入するには、以下の手順を実行してください:
CrewAI および OpenLLMetry に必要なパッケージをインストールしてください。
pip install crewai crewai-tools traceloop-sdkLLMプロバイダーの認証情報を設定し、 CrewAI's の内部テレメトリを無効にしてください。
export ANTHROPIC_API_KEY="<your-api-key>" export CREWAI_DISABLE_TELEMETRY=true注:別のプロバイダーを使用している場合は、
ANTHROPIC_API_KEYをLLMプロバイダーの環境変数に置き換えてください(例: OpenAIOPENAI_API_KEYの場合は)。CrewAI's の内部テレメトリを無効にすると、すべてのトレースが OpenLLMetry を通じて確実にキャプチャされ、一貫した可観測性が確保されます。
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")CrewAI アプリケーションを実行してください。
python crewai_app.pyCrewAI エージェント間の連携を示す出力を生成します:
図 1. CrewAI 出力 
Instana でデータを表示する
アプリケーションを実行すると、データが Instana のGen AI可観測性ダッシュボードに表示されます:
図 2. CrewAI Instana 内の痕跡 
トラブルシューティング
CrewAI で構築されたエージェントに関するトラブルシューティング情報。
crewAI-telemetry に、期待されるサービス名ではなく「Traces」と表示される
問題 :トレースが想定されるサービス名(例: crewai_demo)の下には表示されないが、 crewAI-telemetryの下では確認できる。
原因 : CrewAI's の内部テレメトリがまだ有効になっている。
解決策 :以下の環境変数を設定して、 CrewAI's の内部テレメトリを無効にしてください:
export CREWAI_DISABLE_TELEMETRY=true
この変数を設定すると、すべてのトレースデータが、設定されたサービス名のもとで OpenLLMetry を通じて一貫して収集・報告されるようになります。
次のステップ
Instana がサポートするその他のAIエージェントフレームワークをご覧ください
LLMの利用にかかるコストの計算方法について
CrewAI のワークフローにアラートを設定する