Zum Inhalt springen

prompt.md – Capability Prompts

Jede Capability kann neben manifest.yaml eine Datei prompt.md enthalten. Wenn der Orchestrator den System Prompt für ein Gespräch zusammenstellt, hängt er prompt.md jeder aktiven Capability hinter das agent.md des Agenten. So kannst du detaillierte, toolspezifische Hinweise geben, ohne den Hauptprompt des Agenten zu überladen.

Nutze prompt.md, wenn:

  • das Tool eine API mit Feinheiten hat, bei der das LLM zusätzliche Hinweise braucht, etwa zu Parameterformaten
  • du Beispiele für korrekte Tool-Nutzung geben möchtest
  • es Sonderfälle oder Fehlerbehandlung gibt, denen das LLM folgen soll

Lass prompt.md weg, wenn das Tool so einfach ist, dass die description-Felder in manifest.yaml bereits ausreichen.

Für eine Wetter-Capability könnte prompt.md so aussehen:

capabilities/weather/prompt.md
## Using the weather_lookup tool
Call `weather_lookup` when the user asks about current weather or a forecast.
### Parameter guidance
- `location`: Prefer city names ("Berlin", "New York"). If the user gives a country without a city, ask them to be more specific.
- `units`: Default to `metric`. Only switch to `imperial` if the user explicitly asks for Fahrenheit or miles.
### Response formatting
- Report temperature, conditions, and humidity.
- For forecasts, summarise the next 3 days in a short list.
- If the API returns an error, tell the user the lookup failed and suggest they try again with a different location.
### Examples
- User: "What's the weather in Tokyo?" → call `weather_lookup(location="Tokyo", units="metric")`
- User: "How hot is it in Phoenix in Fahrenheit?" → call `weather_lookup(location="Phoenix", units="imperial")`

Der finale System Prompt, der an das LLM gesendet wird, entsteht in dieser Reihenfolge:

  1. agent.md, also der Kernprompt des Agenten
  2. Capability-prompt.md-Dateien, jeweils eine pro aktiver Capability und in der Reihenfolge aus agent.yaml
  3. Laufzeitkontext, also Template-Variablen wie {{user_name}} und {{date}}
  • Nutze Überschriften: Das LLM verarbeitet strukturiertes Markdown zuverlässiger als Fließtext.
  • Füge Beispiele hinzu: Zeig konkrete Tool-Call-Beispiele. Das verbessert die Genauigkeit bei Parameterformaten deutlich.
  • Beschreibe Fehlerbehandlung: Sag dem LLM, was es tun soll, wenn das Tool einen Fehler zurückgibt.
  • Wiederhole nicht das Manifest: Die description-Felder aus manifest.yaml werden ohnehin an das Modell übergeben. Nutze prompt.md für Hinweise, die über diese Basisinformationen hinausgehen.

Sieh dir das gRPC Interface an, um die Transportschicht zu verstehen, oder geh direkt zum Beispiel: Wetter-Agent für ein vollständiges Arbeitsbeispiel mit prompt.md.