KI-Konzil/_bmad-output/implementation-artifacts/stories/5-1-tavily-web-suche-als-agent-tool.md
copilot-swe-agent[bot] d4cfb34423 Changes before error encountered
Co-authored-by: Kenearos <86194771+Kenearos@users.noreply.github.com>
2026-03-12 15:00:09 +00:00

2 KiB
Raw Blame History

Story 5.1: Tavily Web-Suche als Agent-Tool

Status: done

Story

Als Nutzer, möchte ich Web-Suche als optionales Tool für jeden Agent, so dass Agents aktuelle Informationen aus dem Internet nutzen können.

Acceptance Criteria

  1. Agent mit tools.web_search = trueweb_search-Tool wird gebunden
  2. TAVILY_API_KEY gesetzt → formatierte Trefferliste wird zurückgegeben
  3. TAVILY_API_KEY nicht gesetzt → Fehlermeldung, kein Crash
  4. max_results=5 als Standard; search_depth="basic"
  5. Tests: gemockt via @patch("tools.web_search.TavilyClient")

Tasks / Subtasks

  • Task 1: tools/web_search.py mit @tool-Decorator (AC: 14)
    • Subtask 1.1: TavilyClient-Import (lazy, innerhalb der Funktion)
    • Subtask 1.2: API-Key-Check vor Client-Initialisierung (AC: 3)
    • Subtask 1.3: Response-Formatierung: Titel, URL, Snippet
  • Task 2: Tool-Binding im dynamischen Graph-Builder (AC: 1)
    • Subtask 2.1: tools.web_search = truellm.bind_tools([web_search])
  • Task 3: Unit-Tests (AC: 2, 3, 5)

Dev Notes

  • from tavily import TavilyClient lazy import — kein ImportError wenn nicht installiert
  • LangChain @tool-Decorator macht die Funktion Tool-Aufruf-kompatibel
  • Fehlerpfad gibt "[Web Search Error] ..." String zurück (kein Exception-Raise)

Project Structure Notes

  • backend/tools/web_search.py
  • backend/tests/test_tools.py

References

  • [Source: _bmad-output/planning-artifacts/prd.md#FR-05.2]

Dev Agent Record

Agent Model Used

Amelia (💻 BMAD Dev Agent)

Completion Notes List

  • Lazy-Import von TavilyClient verhindert ImportError in Umgebungen ohne das Paket.
  • Mock-Pattern: @patch("tools.web_search.TavilyClient") mockt direkt den Client.

File List

  • backend/tools/web_search.py
  • backend/tools/__init__.py
  • backend/tests/test_tools.py