Instrument LangGraph Platform background run submission and joining
Les mainteneurs répondent en général sous 2 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- typescript
- Domaine
- backend-api-design, observability-sre, testing-qa
Piste de recherche
Commencez par lire l’implémentation de l’issue #2199 et la spécification d’instrumentation, puis faites correspondre les quatre API d’exécution de @langchain/langgraph-sdk indiquées et leurs canaux typés. Définissez la durée de vie des spans et la corrélation interprocessus à partir des identifiants d’exécution/de thread du fournisseur, sans considérer l’accusé de réception de la soumission comme une fin. Ajoutez la couverture e2e demandée avec le SDK réel, les snapshots de l’arbre des spans, les mises à jour du résumé CI, les vérifications de replay et la documentation.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Follow-up to https://github.com/braintrustdata/braintrust-sdk-javascript/issues/2199.
The implementation for #2199 is intentionally limited to runs.wait and runs.stream: the caller starts execution and follows it through completion in the same call. Background execution was explicitly deferred.
Scope
Add Braintrust instrumentation for the background run workflow in @langchain/langgraph-sdk:
client.runs.create(threadId, assistantId, options): submit a background run.client.runs.createBatch(payloads, options): submit background runs in a batch.client.runs.join(threadId, runId, options): wait for an existing run.client.runs.joinStream(threadId, runId, options): consume an existing run's output.
A run may be submitted in one process and joined in another. Define how the resulting observations correlate using the provider's run/thread identifiers; do not depend solely on in-memory state. A submission acknowledgement must not be represented as completion of the remote agent execution.
Note: runs.wait(threadId, assistantId, options) starts a new run and returns its final state. It is already in the parent implementation's scope; it is not the API for joining an existing run.
Acceptance criteria
- Support automatic instrumentation and an explicit wrapper through shared typed channels, following the instrumentation specification.
- Define submission, batch, join, and joined-stream span semantics, including what each span's lifetime measures and how separate processes correlate.
- Capture useful inputs/results, errors, and allowlisted execution metadata without copying arbitrary configuration, headers, or credentials.
- Preserve promise/iterator behavior, cancellation, and user-visible errors; prevent duplicate spans when wrapper and automatic instrumentation are combined.
- Keep entity CRUD outside the instrumentation scope.
- Add e2e tests using the real SDK for submission followed by joining from a separate process/client, batch submissions, joined streaming, errors, and cancellation.
- Test pinned and separately named latest SDK aliases, ESM/CommonJS, and wrapped/automatic/combined/disabled modes. Assert paired span-tree snapshots, update the CI summary, and verify three consecutive replay runs.
- Document the supported APIs and cross-process tracing behavior.
- Langage dominant
- TypeScript
- Étoiles
- 28
- Forks
- 14
- Merge moyen
- 2 j 16 h
- PR mergées (30 j)
- 70
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Aucun modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de braintrustdata/braintrust-sdk-javascript
-
Difficulté 4/5 3-5 jours Accessibilité débutants 52/100
braintrustdata/braintrust-sdk-javascript#2535 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
braintrustdata/braintrust-sdk-javascript#2527 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 4/5 3-5 jours Accessibilité débutants 65/100
braintrustdata/braintrust-sdk-javascript#2526 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 3/5 1-2 jours Accessibilité débutants 65/100
braintrustdata/braintrust-sdk-javascript#2511 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 4/5 3-5 jours Accessibilité débutants 56/100
braintrustdata/braintrust-sdk-javascript#2482 ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de braintrustdata/braintrust-sdk-javascript
Issues similaires
-
refactor
Difficulté 2/5 Une demi-journée Accessibilité débutants 84/100
Les mainteneurs répondent en général sous 5 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
OHDSI/Data2Evidence#3450 ·
Les mainteneurs répondent en général sous 2 jours
-
e2e-failure ready-to-code
Difficulté 2/5 1-3 heures Accessibilité débutants 90/100
redhat-developer/rhdh-plugin-export-overlays#4011 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
automation missing-model model-sync provider:ofox
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
anomalyco/models.dev#8421 ·
Les mainteneurs répondent en général sous 1 jour
-
SlackAdapter and TelegramAdapter are not assignable to Adapter under exactOptionalPropertyTypesOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 1 jour