Työkalukutsujen sekä syötteiden ja tulosteiden kirjaaminen
Selvittäkää, mitä kustakin vaiheesta kannattaa tallentaa: työkalun nimi, syöteargumentit, tuloste, viive, virhe ja ylemmän spanin tunniste.
Työkalukutsujen sekä syötteiden ja tulosteiden kirjaaminen on ilmainen Tekoälyagentit-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Tekoälyagentit-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.
Osaa tämän oppitunnin sisällöstä ei ole vielä käännetty, joten se näytetään englanniksi.
Mitä kirjataan lokiin jokaisesta vaiheesta
Tallentakaa jokaiseen spaniin:
- Vaiheen nimi (llm_call, tool_call, retrieve)
- Syötteet (viestit, työkalun argumentit ja kysely)
- Tulosteet (vastaus ja työkalun tulos)
- Metatiedot (malli, viive, tokenimäärät ja kustannukset)
- Virheen tiedot, jos suoritus epäonnistui
Itse rakennettu span-apuri
Ilman kehystä vähimmäistason apuri voisi olla:
from contextlib import contextmanager
import time, uuid
@contextmanager
def span(name, trace_id, parent_id=None):
span_id = str(uuid.uuid4())
start = time.time()
record = {'trace_id': trace_id, 'span_id': span_id, 'parent_id': parent_id, 'name': name, 'start': start}
try:
yield record
except Exception as e:
record['error'] = str(e)
raise
finally:
record['duration_ms'] = (time.time() - start) * 1000
save_span(record)Using It
trace_id = str(uuid.uuid4())
with span('llm_call_planner', trace_id) as s:
s['model'] = 'gpt-4o-mini'
s['messages_in'] = messages
response = client.chat.completions.create(model='gpt-4o-mini', messages=messages)
s['response'] = response.choices[0].message.content
s['tokens_in'] = response.usage.prompt_tokens
s['tokens_out'] = response.usage.completion_tokensSpanien sisäkkäisyys
Välittäkää parent_id eteenpäin, jotta spanit muodostavat puun:
with span('agent_step', trace_id) as parent:
with span('llm_call', trace_id, parent_id=parent['span_id']):
...
with span('tool_call:search', trace_id, parent_id=parent['span_id']):
...Työkalukutsujen lokitus
Kirjatkaa työkalukutsuista erityisesti:
- Työkalun nimi
- Argumentit (JSON)
- Tulos (JSON, mahdollisesti lyhennettynä)
- Viive
- Virhe, jos sellainen on
Lyhentäkää suuret payloadit
Jotkin työkalujen tulokset ovat valtavia (200 kt:n HTML-koodia). Lyhentäkää ne ennen tallentamista:
def safe_payload(obj, max_chars=8000):
s = json.dumps(obj)
return s if len(s) <= max_chars else s[:max_chars] + '...[truncated]'PII-tietojen peittäminen
Poista henkilötiedot ennen tallentamista:
import re
EMAIL_RE = re.compile(r'[\w\.-]+@[\w\.-]+')
def redact(text):
return EMAIL_RE.sub('[email]', text)
print(redact("Contact me at alice@example.com for details."))
Rakenteinen lokituloste
Tuota yksi JSON-tietue kutakin span-osiota kohden — ohjaa se ELK:hon, Lokiin, Datadogiin tai BigQueryyn:
import json
import sys
def save_span(record):
print(json.dumps(record), file=sys.stderr, flush=True)
demo_record = {'span': 'call_llm', 'duration_ms': 120, 'ok': True}
save_span(demo_record)
print("Logged span:", json.dumps(demo_record))
Yhdistä käyttäjäistuntoihin
Sisällytä session_id ja user_id jokaiseen span-osioon, jotta voit myöhemmin suodattaa tracet käyttäjän mukaan.
Otanta
Käytä suuren volyymin agenteissa otantaa:
import random
def should_trace(user_id):
return random.random() < 0.10 # 10% of traces
# Always trace errors and slow runs.
random.seed(42)
sampled = sum(should_trace(i) for i in range(1000))
print(f"Traced {sampled} out of 1000 calls (~10% target)")
Toista traceista
Tallenna täydelliset syötteet (viestit, työkalut, argumentit), jotta voit ajaa tracen uudelleen uuden promptin kanssa parannusten testaamiseksi. Tämä muodostaa eval-vetoisen kehityksen perustan.
Katkaistaanko suuret payloadit?
Miksi suuret työkalujen tulosteet kannattaa katkaista lokeissa?
Kertaus
Jokainen vaihe, jokainen syöte, jokainen tuloste — rakenteisena, sisäkkäisenä ja otannettuna. Tämä on kaiken muun observabilityn raaka-aine.
Opi Tekoälyagentit tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 60
- Oppitunnit
- 239
Usein kysytyt kysymykset
Onko oppitunti ”Työkalukutsujen sekä syötteiden ja tulosteiden kirjaaminen” ilmainen?
Kyllä – oppitunnin ”Työkalukutsujen sekä syötteiden ja tulosteiden kirjaaminen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Tekoälyagentit-kurssin, päivitä CoddyKit PROhon. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Työkalukutsujen sekä syötteiden ja tulosteiden kirjaaminen”?
Selvittäkää, mitä kustakin vaiheesta kannattaa tallentaa: työkalun nimi, syöteargumentit, tuloste, viive, virhe ja ylemmän spanin tunniste. Harjoittelet Tekoälyagentit-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Tekoälyagentit-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Tekoälyagentit-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Työkalukutsujen sekä syötteiden ja tulosteiden kirjaaminen”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Tekoälyagentit-oppitunnilla?
Kyllä. Jokainen Tekoälyagentit-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Miksi agentit tarvitsevat jäljitystä
- Työkalukutsujen sekä syötteiden ja tulosteiden kirjaaminen
- Viive ja kustannukset vaiheittain
- Agenttisuoritusten visualisointi (Langfuse, LangSmith)