Eszközök/LLMOps és értékelés

LangSmith: egy observability termékből lett agentplatform

LangSmith teszt: számlázás trace-enként, 14 és 180 napos retention, OpenTelemetry ingest, offline és online értékelések, és hol csúszik a platform az agent runtime felé.

Típus
LLM observability
Ár
Developer free · from $39 per month

··10 perc olvasás

  • Tracing
  • LLM evals
  • OpenTelemetry
  • Datasets
  • Retries
Egy LangSmith trace útja: az instrumentált alkalmazáskód egy SDK háttérszálon küldi a runokat az ingest queue-ba, amely ClickHouseba írja őket.

A lényeg röviden

  • A számlázott egység a trace, nem a span és nem a token. A Developer csomag havonta 5000 base trace-t tartalmaz egy seathez, a Plus havi 39 dollár egy seatért, és a fizetési adatok nélküli Developer csomag havi 5000 trace-re van korlátozva.
  • A base trace-ek 14 napig, az extended trace-ek 180 napig maradnak meg, és az online értékelők, az automatizációs szabályok és az extend_trace_retention jelzéssel küldött API feedback magasabb, drágább szintre emeli a trace-et, hacsak nem mondasz le róla.
  • Az ingest korlátok óránként és csomagonként értendők: 50.000 esemény és 500 MB óránként a fizetési adatok nélküli Developer csomagban, 250.000 esemény és 2,5 GB velük, a Plusban 500.000 esemény és 5 GB.
  • A platform többi része LangChain Standard Unitokban számlázódik, egyenként 1,00 dollár, beleértve az Engine-t, a Fleetet, a Sandboxokat és az LLM Gatewayt, így egy seat ára kevésbé mondja meg a számlát.
  • Az OpenTelemetry ingest működik az SDK-n vagy egy OTLP végponton át, de az a span, amelynek a szülője soha nem érkezik meg, pufferelés után csendben eldobódik, és ez a részleges fan-out hibamódja.

A LangSmith LLM-alkalmazásokhoz való hosztolt tracing- és értékelési platform: minden hívás, amelyet az ügynök tesz, egy runokból álló fává válik, bemenetekkel, kimenetekkel, késlenséggel és token számokkal, amelyet kereshet, értékelhet és összehasonlíthat. A pozíció a dokumentáció elolvasása után: ez a legteljesebb eszköz a fajtájában, és egyben a legdrágább, ha érteni kell hozzá, mert már nem csak observability termék.

Az observability költségvetésért a Langfuse, az Arize Phoenix és a Helicone versenytársa, és egyre inkább a saját runtime-jével is, mert ugyanaz a gyártó ugyanazon az árazási oldalon adja el a Deploymentet, a Studiót, az Engine-t, a Fleetet, a Sandboxokat és az LLM Gatewayt. Ez a terjedés a legfontosabb mérlegelendő szempont, mert minden további szolgáltatás külön van mérve.

Mi ez

A platformnak négy része van, amelyek egy számlát osztoznak: tracing, értékelés, promptkezelés és egy agent runtime. Az erőforrásmodell fontosabb a funkcióknál. Egy szervezet workspace-eket tart, a workspace-ek tracing projekteket, adathalmazokat, annotációs sorokat és promptokat, minden trace pedig pontosan egy projektben van. Az alapvető tények:

  • Egy trace egy végrehajtás, amely egymásba ágyazott runokból áll; a run először létrejön, majd a munka előrehaladtával frissül, ezért az eseménylimit és a tracelimit különböző szám.
  • A tracing a langsmith SDK dekorátorjaival, egy REST ingest API-val vagy bármely instrumentált alkalmazás OpenTelemetry spanjeivel működik.
  • Az offline értékelések referencia kimenetekkel rendelkező példákból álló adathalmazokon futnak, az online értékelések referencia nélkül élő trace-eket értékelnek.
  • Az értékelők lehetnek kód, LLM-as-judge, egy típusos döntési modell, páros összehasonlítás vagy ember, és egy értékelő több projekthez is csatolható.
  • Annotációs sorok, adathalmaz-verziók és splitek, egy commit tagekkel működő prompt regisztráció és egy playground mind része.
  • Önálló telepítés létezik, de csak licenckulcs mögé tett Enterprise kiegészítésként.

Hogyan működik

Az instrumentálás a saját folyamatodban fut, és HTTPS-en küld runokat a LangSmithnek. Az SDK háttérszálról dolgozik, és egy sessionhöz tartozó akár 100 runt egyetlen API-hívásba gyűjt, így a tracing nem kerül a kérés útjába. Egy kiszolgálóoldali queue ezután átveszi az ingestet, az újrapróbálkozásokat és az integritás-ellenőrzéseket, mielőtt a trace-tárba ír.

Egy LangSmith trace útjaAz instrumentált alkalmazáskód runokat állít elő. Az SDK kötegeket küld egy háttérszálról, mert egy rate limit percenként az első 5000 postot megállítja a runs végponton. Az ingest queue újrapróbál és a runokat a ClickHouseba írja. A felületek, a monitorok és a lekérdező API ugyanebből a tárolóból olvasnak.egy kérés, egy trace-faaz alkalmazástraceableSDK szálkötegelt küldésqueueújrapróbatrace tárClickHouse429 percenként 5000 post utána felületek, a monitorok és a lekérdező API ugyanebből a tárolóból olvasnak
Mivel a queue aszinkron, egy 200 elfogadott trace mégis elbukhat, és egy rövid életű folyamat a runok elküldése előtt befejeződhet.

Ez a queue magyarázza, miért az ingest korlátok fix ablakként és nem sima átlagként vannak megfogalmazva, és miért a 429 egy visszakerítéssel kezelendő normális esemény, nem kiesés. A terheléselosztó minden csomagon fix percenkénti limiteket kényszerít ki: 5000 POST vagy PATCH kérés a runs végpontokra, 5000 a feedbacks végpontra, 2000 minden más végpontra és 30 törlés. Az SDK kötegel, és éppen ez tartja egy terhelt alkalmazást ezek alatt.

Első lépések

Két környezeti változó kapcsolja be a tracinget kódmódosítás nélkül, ami helyi fejlesztésnél számít: a LANGSMITH_TRACING szabályozza a dekorátort és a context managert, a LANGSMITH_PROJECT pedig a cél projektet nevezi meg, alapértelmezésen default értékkel. A minimális Python beállítás egy pipeline-t követ beágyazott runokként:

import asyncio

from langsmith import Client, traceable
from openai import AsyncOpenAI

client = Client()
llm = AsyncOpenAI()


@traceable(run_type="retriever", name="retrieve_docs")
async def retrieve_docs(question: str) -> list[str]:
    return ["Annual report: revenue up 12 percent."]


@traceable(run_type="llm", name="answer")
async def answer(question: str, context: list[str]) -> str:
    reply = await llm.chat.completions.create(
        model="gpt-5.4-mini",
        messages=[{"role": "user", "content": f"{question}\n{chr(10).join(context)}"}],
    )
    return reply.choices[0].message.content


@traceable(name="support_agent")
async def support_agent(question: str) -> str:
    return await answer(question, await retrieve_docs(question))


async def main() -> None:
    try:
        print(await support_agent("How did revenue move?"))
    finally:
        await client.flush()  # background thread must finish before exit


asyncio.run(main())

A dekorátor továbbítja a kontextust, így a három függvény kézi szülőhuzalozás nélkül faként jelenik meg, és a run_type dönti el, hogyan rajzolja ki a felület a csomópontot: az llm ad token számokat és késlenséget, a retriever és a tool jelöli a többi lépést. Ugyanez a kliens futtat offline értékeléseket egy adathalmazon, és itt kezd el a hozamásodni az érték.

Ugyanez az API hajtja az értékelési ciklust. Az evaluate egy célfüggvényt, egy adathalmazt és egy értékelőlistát vesz, kísérletet hoz létre példánként egy runnal, és CI-ból vezérelhető: Értékeld minden becommitolt prompt módosítást a megcímkézett adathalmaz-verzión, és buktasd a buildet, ha a groundedness pontszám egynél többet esik. A LangSmith automatikusan verziózza az adathalmazokat, amikor a példák változnak, így egy tag egy CI futást egy adott adatállapothoz rögzít. A dokumentáció egyértelmű: írj öt-tíz válogatott példát a jó kimenetre, mielőtt bármilyen értékelőt megírsz.

Mennyibe kerül

A seat a látható ár, a trace a mért mennyiség. A Developer csomag egyetlen seatre ingyenes, havi 5000 base trace-et tartalmaz; a Plus havi 39 dollár egy seat és 10.000 base trace, korlátlan további seattal; az Enterprise egyedi árú, és hozzáadja az önálló és hibrid telepítést, az egyéni SSO-t, valamint az attribútum- és szerepközpontú hozzáférésszabályozást.

CsomagSeatekTartalmazott trace-ekIngest korlát óránkéntRetention
Developer, fizetési adatok nélkül15000 havonta, és havi 5000 felső korlát50.000 esemény és 500 MB14 nap, upgrade-pel hosszabbítható
Developer, fizetési adatokkal15000 havonta250.000 esemény és 2,5 GB14 nap, upgrade-pel hosszabbítható
PlusKorlátlan, 39 dollár/db10.000 havonta500.000 esemény és 5 GB14 vagy 180 nap
EnterpriseEgyediEgyediEgyediLegfeljebb 180 nap, állítható

Egy esemény egy run létrehozása vagy frissítése, ezért az ugyanabban a clock órában létrehozott és majd patchelt run kétszer számít az órás limit felé, és a 2 MB-os run későbbi 3 MB-ra frissítése 5 MB-ot számít az ingest volumeni limitjébe. Ezt kell modellelni a kapacitástervezésben: a trace alakja, nem a kérések száma hajtja a korlátot.

A platform többi része LangChain Standard Unitokban számlázódik, egy LSU 1,00 dollár. Az Engine hat óránként fut, egy futás becsültLSU-mennyisége 7 és 45 között van a trace volumen és az észrevett hibák számától függően. A Fleet 7 LSUt tartalmaz a Developer és 37 LSUt a Plus csomagban, a Sandboxok 8 LSUt, egy perceived error értékelő futás 0,015 LSUt. Egy 39 dolláros seat tehát kevésbé mondja meg a számlát, amint a runtime használatban van.

Natív tracing vagy OpenTelemetry

A LangSmith két úton fogad OpenTelemetry spaneket. Az SDK integrációval a LANGSMITH_OTEL_ENABLED=true beállítással a LangChain és a LangGraph a LangSmith exporteren át küld spaneket, a LANGSMITH_OTEL_ONLY=true pedig megakadályozza, hogy a saját formátumban is küldjön. Bármely más alkalmazásnál egy szabványos OTLP exportálót kell a https://api.smith.langchain.com/otel alap végpontra állítani; regionális végpontok vannak EU, APAC és AWS US területekre. Az exporter maga fűzi hozzá a jel útvonalát, ezért a /v1/traces a basis URL-ben 404-et ad.

pip install "langsmith[otel]"          # needs langsmith >= 0.3.18, 0.4.25 recommended

export LANGSMITH_TRACING=true
export LANGSMITH_OTEL_ENABLED=true
export LANGSMITH_ENDPOINT=https://api.smith.langchain.com
export LANGSMITH_API_KEY=...

# fan out one OTLP stream to LangSmith and to the rest of the stack
export OTEL_EXPORTER_OTLP_ENDPOINT=https://api.smith.langchain.com/otel
export OTEL_EXPORTER_OTLP_HEADERS="x-api-key=...,Langsmith-Project=support"

# OTel-only, for teams that do not want a second transport
export LANGSMITH_OTEL_ONLY=true

A csere a kényelem és az overhead között van. Az OTel út attribútum-leképezési gyakorlatot kér, mert a span attribútumokat a langsmith névtérrel kell felcímkézni, hogy run típusok, run ID-k és dotted order legyenek belőlük; a LangChain saját bejelentése az OpenTelemetry utat valamivel magasabb overheadként írja le, és a natív formátumot ajánlja, ha a LangSmith az egyetlen cél. A natív forma pending runokat is ad, amelyek már a munka közben megjelennek a felületen.

Ahol nyiklik

Először a gyengeségek, mert ezek döntik el, kell-e ez a termék. A számlázási egység a trace, ami csendben jutalmazza a mintavételt és bünteti azt az alkalmazást, amely minden kérést trace-el; a terheléselosztó korlátai service key vagy personal access tokenenként érvényesek, nem szervezetenként, így egy vízszintesen skálázott flottához több kulcs kell, vagy az SDK kötegelése. A workspace szintű szerepközpontú hozzáférés csak Enterprise csomagban van, egy növekvő csapat Pluszon egy szerepkörlét oszt. És az erőforráshierarchia alattuk épül át: a workspace-ek korábban tenantok voltak, az agentek beta csoportosításként jelentek meg a projektek fölött, és egy agent alapú workspace agent és környezet szerint címezi a trace-eket, nem projekt szerint.

EszközElsődleges erősségÜzemeltetésMit ad fel
LangSmithTracing plus értékelések plus menedzselt agent runtimeCloud, vagy Enterprise-ban önállóNincs open core: az SDK ingyenes, a platform nem az
LangfuseMIT mag, telepíthető és átláthatóCloud vagy önálló telepítésKevesebb menedzselt runtime a trace-ek körül
Arize PhoenixApache-2.0, OpenTelemetryre épülÖnálló telepítés vagy cloudSzűkebb termékfelület az adathalmazok és értékelések körül
HeliconeOlcsó kérésszintű naplózás gyors beállítássalCloud vagy proxy telepítésKevesebb mélység a run fákon és az értékelési munkafolyamatokban

Amit a LangSmith nem ad fel, az a mérhetőség: a run fák, a beszélgetésszintű nézetek és az adathalmazokra épülő regressziós tesztelés referenciaimplementációja, és a foglalásokkal működő annotációs sor komoly válasz arra a kérdésre, ki jelöl mit. Ha az alkalmazásod már LangGraphon fut, a választás magától értetődik, és a váltási költség a runtime-ban van, nem a trace-ekben.

Ítélet

A LangSmith megéri az árát, ha az ügynök viselkedése, nem az elérhetősége az, ami elromlik, és ha embereknek kell runokat jelölniük, amelyek kiadási kaput hajtanak. Kevésbé éri meg az ára, ha csak egy kérésnaplót szeretnél, ha egy felhasználói kérésenkénti trace már több, mint amennyi a büdzsébe fér, vagy ha a platform szélesülése nem derül ki, miért fizetsz.

  1. Vedd fel, ha CI-ban futó, adathalmazokra épülő regressziós teszteket akarsz, nem csak egy trace böngészőt.
  2. Vedd fel, ha több embernek kell runokat jelölnie, mert a foglalással működő annotációs sorokat és a dataset exportot nehéz újraépíteni.
  3. Vedd fel, ha eleve LangGraphon fejlesztesz, és számítsd be a runtimeot a döntésbe, ne tettesd, mintha a trace-ek külön dolgok lennének.
  4. Óvatosan, ha minden kérést trace-elsz: modelleld az óránkénti esemény- és bájtkorlátokat, mielőtt élesben bekapcsolod az instrumentálást.
  5. Nézz máshová, ha önálló telepítést akarsz értékesítési beszélgetés nélkül, workspace szintű hozzáférésszabályozást, vagy ha jobban passzol egy lapos, trace-enkénti ár, mint egy LSU-alapú platform.

Források

  1. LangSmith árazás
  2. LangSmith dokumentáció: administration overview
  3. LangSmith dokumentáció: custom instrumentation
  4. LangSmith dokumentáció: trace with OpenTelemetry
  5. LangSmith dokumentáció: evaluation concepts
  6. LangSmith dokumentáció: self-hosted deployment
  7. LangChain: end-to-end OpenTelemetry a LangSmithben

Gyakori kérdések

Mennyibe kerül a LangSmith egy kis csapatnak?

A Developer csomag egyetlen seatre ingyenes, havi 5000 base trace-et tartalmaz, és fizetési mód nélkül havi 5000 trace-re is korlátozott. A Plus havi 39 dollár egy seat, 10.000 base trace-t tartalmaz, és korlátlan további seat vehető. Az Enterprise egyedi árat kap, és ez az egyetlen szint, amely workspace szintű szerepközpontú hozzáférést és saját telepítést kínál.

Kell-e LangChain a LangSmithhez?

Nem. A langsmith SDK traceable dekorátort ad Pythonhoz, TypeScripthez, Kotlinhoz és Javához, plusz egy alacsony szintű RunTree API-t és egy REST ingest útvonalat, így bármilyen kód instrumentálható. A LangChain és a LangGraph csak ingyen kapja mellé az instrumentálást. A LangSmith OpenTelemetry spaneket is fogad, amit a dokumentáció azoknak az alkalmazásoknak ajánl, amelyek már OTLP-t küldenek.

Mi lesz a trace-ekkel két hét után?

A base retention 14 nap, utána a trace-ek a felületen és az API-ban már nem érhetők el, a hozzájuk tartozó bemenetek és kimenetek egy napon belül törlődnek, néhány trace-metaadat viszont analitikára és számlázásra megmarad. Az extended retention 180 nap és drágább, 2026. szeptember 14. óta ez a 180 nap a SaaS ügyfelek felső határa.

Futtatható-e a LangSmith a saját infrastruktúrámban?

Igen, de csak Enterprise kiegészítőként, licenckulccsal. Egy saját telepítés a frontendet, a backendet, a platform backendet, a playgroundot, a queue-t és egy kódvégrehajtó szolgáltatást futtat ClickHouse-tal a trace-ekhez, PostgreSQL-lel az üzleti adatokhoz, illetve Redis vagy Valkey-jel a queue-khoz, opcionális blob storage-ral. A LangChain éles környezetben külső adatbázisszolgáltatásokat ajánl a mellékelt helyett.

Tanít-e a LangSmith az adataimra?

Nem. Az árazási GYIK kifejezetten kimondja, hogy a LangSmith nem használja az adatokat modellek tanítására, és hogy a trace-ek, promtok és kimenetek a szervezeten belül maradnak. Ez szerződéses és nem technikus garancia, aki a saját perimeteren belül akarja az adatokat, annak az önálló telepítés való.

Pont erre van szükséged?

Írj a projektedről vagy a pozícióról – szívesen hallok felőled.