Ergebnisse an das Modell zurückgeben
Formatieren Sie Tool-Ausgaben als Nachrichten mit Tool-Rolle, damit das Modell sie lesen und die Unterhaltung fortsetzen kann.
Ergebnisse an das Modell zurückgeben ist eine kostenlose AI Agents-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AI Agents-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Die Tool-Ergebnisnachricht
Nachdem Sie ein Tool ausgeführt haben, teilen Sie dem Modell das Ergebnis mit einer Tool-Nachricht mit:
messages.append({
'role': 'tool',
'tool_call_id': tool_call.id, # MUST match the assistant's tool_call.id
'content': json.dumps(result)
})Content muss eine Zeichenkette sein
OpenAI erwartet, dass content eine Zeichenkette ist. Serialisieren Sie Objekte mit json.dumps:
# Bad — will error
messages.append({'role': 'tool', 'tool_call_id': id, 'content': {'temp': 18}})
# Good
messages.append({'role': 'tool', 'tool_call_id': id, 'content': '{"temp": 18}'})Anthropic-Format
Anthropic verwendet einen Content-Block innerhalb einer User-Nachricht:
messages.append({
'role': 'user',
'content': [{
'type': 'tool_result',
'tool_use_id': 'toolu_abc',
'content': json.dumps(result)
}]
})Fehler zurückgeben
Wenn das Tool fehlgeschlagen ist, geben Sie den Fehler zurück – tun Sie nicht so, als wäre es erfolgreich gewesen. Das Modell kann sich davon erholen:
try:
result = run_tool(...)
content = json.dumps({'ok': True, 'data': result})
except Exception as e:
content = json.dumps({'ok': False, 'error': str(e)})
messages.append({'role': 'tool', 'tool_call_id': id, 'content': content})Muster für mehrere Ergebnisse
Fügen Sie bei parallelen Tool-Aufrufen jedes Ergebnis mit seiner passenden ID an:
for tc in message.tool_calls:
result = dispatch(tc)
messages.append({
'role': 'tool',
'tool_call_id': tc.id,
'content': json.dumps(result)
})Große Ausgaben zusammenfassen
Wenn ein Tool 100 KB HTML zurückgibt, verschwendet es Tokens und lenkt die Aufmerksamkeit des Modells ab, wenn Sie alles senden. Fassen Sie die Ausgabe vorher zusammen oder kürzen Sie sie:
def truncate(text, max_chars=4000):
if len(text) <= max_chars:
return text
return text[:max_chars] + f'\n...[truncated, {len(text)-max_chars} more chars]'
sample = "x" * 4500
result = truncate(sample, max_chars=50)
print(result)
Immer dasselbe Schema
Halten Sie das Ausgabeschema auch bei unterschiedlichen Ergebnissen (Erfolg / Fehler / nicht gefunden) stabil. Das Modell ist bei konsistenten Strukturen zuverlässiger:
from typing import TypedDict, Literal, Optional, Any
class ToolResult(TypedDict):
status: Literal['ok', 'not_found', 'error']
data: Optional[Any]
error: Optional[str]
def make_result(status, data=None, error=None) -> ToolResult:
return {'status': status, 'data': data, 'error': error}
print(make_result('ok', data={'temp': 72}))
print(make_result('not_found', error='city not found'))Metadaten-Hinweise einbeziehen
Unterstützen Sie das Modell bei der Interpretation von Ergebnissen, indem Sie Hinweise in den Content aufnehmen:
content = json.dumps({
'data': rows,
'note': 'Returned 50 rows (most recent first). There may be more matches.'
})Binärdaten
Fügen Sie keine großen Blobs als Base64 in Tool-Nachrichten ein. Speichern Sie sie stattdessen in einem Speicher und geben Sie eine URL oder ID zurück:
result = {
'image_path': '/tmp/chart-abc.png',
'thumbnail_url': 'https://...',
'caption': 'Sales by quarter, 2024'
}
for k, v in result.items():
print(f"{k}: {v}")
Das Modell erneut aufrufen
Nachdem Sie alle Tool-Ergebnisse angefügt haben, rufen Sie das Modell erneut auf – es erzeugt entweder eine endgültige Antwort oder ruft weitere Tools auf:
class Msg:
def __init__(self, tool_calls=None, content=None):
self.tool_calls = tool_calls or []
self.content = content
class ToolCall:
def __init__(self, name, args):
self.name = name
self.args = args
def call_model(messages, tools):
if len(messages) < 4:
return Msg(tool_calls=[ToolCall('get_weather', {'city': 'Paris'})])
return Msg(content='It is sunny in Paris.')
messages = [{'role': 'user', 'content': 'Weather in Paris?'}]
tools = ['get_weather']
message = call_model(messages, tools)
while message.tool_calls:
for tc in message.tool_calls:
result = f'Result of {tc.name}({tc.args})'
messages.append({'role': 'tool', 'name': tc.name, 'content': result})
print('Tool call:', tc.name, '->', result)
message = call_model(messages, tools)
print('Final answer:', message.content)
Tool-Ausgaben prüfen
Protokollieren Sie jedes Tupel aus (tool_call_id, args, result) zur Fehlersuche. Wenn sich ein Agent ungewöhnlich verhält, ist das Tool-Ergebnisprotokoll der erste Ort, an dem Sie nachsehen sollten.
Format des Tool-Ergebnisses
Worauf verweist die tool_call_id in einer Tool-Nachricht?
Zusammenfassung
Sie beherrschen jetzt den vollständigen Roundtrip eines Tool-Aufrufs. Im nächsten Kurs geht es um Memory – die dritte Säule von Agenten.
Häufig gestellte Fragen
Ist die Lektion „Ergebnisse an das Modell zurückgeben“ kostenlos?
Ja — der vollständige Text von „Ergebnisse an das Modell zurückgeben“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Agents-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Ergebnisse an das Modell zurückgeben“?
Formatieren Sie Tool-Ausgaben als Nachrichten mit Tool-Rolle, damit das Modell sie lesen und die Unterhaltung fortsetzen kann. Du übst AI Agents mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um AI Agents zu starten?
Keine Vorkenntnisse erforderlich. AI Agents auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Ergebnisse an das Modell zurückgeben“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser AI Agents-Lektion Code schreiben und ausführen?
Ja. Jede AI Agents-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- So funktioniert Function Calling
- Tool-Schemas definieren (JSON Schema)
- Tools zur Laufzeit auswählen
- Ergebnisse an das Modell zurückgeben