Beobachtungsagenten, die mit „ CrewAI “ erstellt wurden

CrewAI ist ein „ Python “-Framework zur Erstellung und Verwaltung von KI-Agenten, die zusammenarbeiten, um Aufgaben zu erledigen. Mit „ CrewAI “ können Sie autonome KI-Agenten entwickeln, die zusammenarbeiten, Arbeitsabläufe ausführen und Entscheidungsprozesse optimieren. CrewAI lässt sich mit großen Sprachmodellen (LLMs) und externen Tools integrieren und eignet sich daher für Automatisierung, Forschung, Kundenservice und vieles mehr.

Instana bietet Observability für mit „ CrewAI, “ erstellte Agenten und ermöglicht so die Echtzeitüberwachung von KI-Agenten-Workflows, der Aufgabenausführung und der LLM-Leistung.

Voraussetzungen

Stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:

  • Python 3.8 oder später

  • Ein LLM- API -Schlüssel (Anthropic, OpenAI, oder ein beliebiger LLM-Anbieter, der von CrewAI unterstützt wird)

  • Instana für Ihre Anwendung konfiguriert, siehe Erste Schritte

Instrumentierung von „ CrewAI “-Anwendungen

Um Ihre „ CrewAI “-Anwendung mit „ Instana “ zu instrumentieren, führen Sie die folgenden Schritte aus:

  1. Installieren Sie die erforderlichen Pakete für CrewAI und OpenLLMetry.

    pip install crewai crewai-tools traceloop-sdk
  2. Legen Sie die Anmeldedaten Ihres LLM-Anbieters fest und deaktivieren Sie die interne Telemetrie von „ CrewAI's “.

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

    Ersetzen Sie dies ANTHROPIC_API_KEY durch die Umgebungsvariable Ihres LLM-Anbieters, falls Sie einen anderen Anbieter verwenden (z. B. OPENAI_API_KEY für OpenAI ).

    Durch das Deaktivieren der internen Telemetrie von „ CrewAI's “ wird sichergestellt, dass alle Traces über „ OpenLLMetry “ erfasst werden, um eine konsistente Beobachtbarkeit zu gewährleisten.

  3. Erstellen Sie Ihre „ CrewAI “-Anwendung.

    Im folgenden Beispiel werden zwei Agenten (ein Forscher und ein Autor) erstellt, die bei einer Aufgabe zusammenarbeiten sollen:

    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. Starten Sie Ihre „ CrewAI “-Anwendung.

    python crewai_app.py

    CrewAI erzeugt eine Ausgabe, die die Zusammenarbeit der Agenten darstellt:

    Abbildung 1. CrewAI Ausgabe
    CrewAI Ausgabe
  5. Daten in „ Instana “ anzeigen

    Nachdem Sie Ihre Anwendung ausgeführt haben, werden die Daten im „ Instana “-Dashboard für die Beobachtbarkeit von generativer KI angezeigt:

    Abbildung 2. CrewAI Spuren in „ Instana “
    CrewAI Spuren in „ Instana “

Fehlerbehebung

Informationen zur Fehlerbehebung bei Agenten, die mit „ CrewAI “ erstellt wurden.

In „ crewAI-telemetry “ werden Spuren angezeigt, anstatt des erwarteten Dienstnamens

Problem : Die Traces erscheinen nicht unter dem erwarteten Servicenamen (z. B. crewai_demo), sondern sind unter sichtbar crewAI-telemetry.

Ursache : Die interne Telemetrie von „ CrewAI's “ ist weiterhin aktiviert.

Lösung : Deaktivieren Sie die interne Telemetrie von „ CrewAI's “, indem Sie die folgende Umgebungsvariable setzen:

export CREWAI_DISABLE_TELEMETRY=true

Nach dem Setzen dieser Variablen werden alle Trace-Daten erfasst und einheitlich über OpenLLMetry unter dem von Ihnen konfigurierten Servicenamen gemeldet.