Files
langsmith-java/langsmith-java-example
stainless-app[bot] 14634be733 release: 0.1.0-beta.0 (#132)
* codegen metadata

* codegen metadata

* codegen metadata

* feat(api): sandbox apis

add sandbox apis

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* feat(api): api update

* feat(api): api update

* codegen metadata

* codegen metadata

* feat(api): api update

* codegen metadata

* codegen metadata

* chore(deps): bump the minor-and-patch group across 1 directory with 5 updates (#123)

* chore(deps): bump the minor-and-patch group with 5 updates

Bumps the minor-and-patch group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [org.jetbrains.dokka](https://github.com/Kotlin/dokka) | `2.0.0` | `2.2.0` |
| [org.jetbrains.kotlin:kotlin-gradle-plugin](https://github.com/JetBrains/kotlin) | `2.0.21` | `2.3.20` |
| [com.vanniktech:gradle-maven-publish-plugin](https://github.com/vanniktech/gradle-maven-publish-plugin) | `0.28.0` | `0.36.0` |
| [jvm](https://github.com/JetBrains/kotlin) | `2.0.21` | `2.3.20` |
| [com.vanniktech.maven.publish](https://github.com/vanniktech/gradle-maven-publish-plugin) | `0.28.0` | `0.36.0` |

Updates `org.jetbrains.dokka` from 2.0.0 to 2.2.0
- [Release notes](https://github.com/Kotlin/dokka/releases)
- [Commits](https://github.com/Kotlin/dokka/compare/v2.0.0...v2.2.0)

Updates `org.jetbrains.kotlin:kotlin-gradle-plugin` from 2.0.21 to 2.3.20
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.0.21...v2.3.20)

Updates `com.vanniktech:gradle-maven-publish-plugin` from 0.28.0 to 0.36.0
- [Release notes](https://github.com/vanniktech/gradle-maven-publish-plugin/releases)
- [Changelog](https://github.com/vanniktech/gradle-maven-publish-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vanniktech/gradle-maven-publish-plugin/compare/0.28.0...0.36.0)

Updates `jvm` from 2.0.21 to 2.3.20
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.0.21...v2.3.20)

Updates `com.vanniktech.maven.publish` from 0.28.0 to 0.36.0
- [Release notes](https://github.com/vanniktech/gradle-maven-publish-plugin/releases)
- [Changelog](https://github.com/vanniktech/gradle-maven-publish-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vanniktech/gradle-maven-publish-plugin/compare/0.28.0...0.36.0)

---
updated-dependencies:
- dependency-name: org.jetbrains.dokka
  dependency-version: 2.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: org.jetbrains.kotlin:kotlin-gradle-plugin
  dependency-version: 2.3.20
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: com.vanniktech:gradle-maven-publish-plugin
  dependency-version: 0.36.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: jvm
  dependency-version: 2.3.20
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: com.vanniktech.maven.publish
  dependency-version: 0.36.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix build failures from dependency bumps

Remove SonatypeHost reference removed in gradle-maven-publish-plugin
0.34.0+ (publishToMavenCentral() defaults to Central Portal).
Bump proguard-gradle 7.6.0 → 7.9.0 to support Kotlin 2.3.x metadata.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Revert Kotlin to 2.3.0 to match Gradle 9.4.1 embedded version

Kotlin 2.3.20 is not yet supported by CodeQL and conflicts with
the kotlin-dsl plugin's embedded Kotlin 2.3.0. Keeping the Kotlin
version aligned with the Gradle wrapper avoids both issues.

Bump proguard-gradle to 7.8.0 (from 7.6.0) to support Kotlin 2.3.0
metadata. 7.9.0 has a null pointer regression; 7.8.x is the sweet spot.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: John Kennedy <65985482+jkennedyvz@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* codegen metadata

* codegen metadata

* codegen metadata

* feat(api): api update

* codegen metadata

* codegen metadata

* feat(evaluators): add list evaluators (GET /api/v1/runs/rules)

Exposes `GET /api/v1/runs/rules`.

Will result in `client.evaluators.list()` in the Go SDK.

The endpoint returns online evaluators (internally called "run rules") — automated rules that trigger on incoming runs to apply LLM/code evaluators, add runs to annotation queues, trigger webhooks, etc. The `runs/rules` URL path is an implementation detail; `evaluators` matches the user-facing branding.

* codegen metadata

* feat(api): api update

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* feat(api): api update

* codegen metadata

* codegen metadata

* feat: support setting headers via env

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* feat: Add autobatch tracing mode (#134)

* Add autobatch mode

* Fix

* Update signature

* Add async impl

* Fix optin

* Fix

* Fix

* Fix tests

* Add test

* Refactor to be more idiomatic

* Feedback

* Use explicit lock, add to AGENTS.md

* Remove test script

* codegen metadata

* feat: Merge enqueued posts and patches to optimize batching (#135)

* Merge enqueued posts and patches to optimize batching

* Exclude patched inputs by default

* Logs

* Fix import order

* Feedback

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* feat: Make autobatch queue denote batches by payload size, add aggregation delay (#137)

* Make autobatch queue denote batches by payload size, add aggregation delay

* Fully drain queue when batch delay is hit

* Feedback on locks

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* feat: Add multipart batching (#138)

* Add multipart batching

* Handle 404s better

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* codegen metadata

* feat(api): api update

* codegen metadata

* codegen metadata

* feat(api): add workspaces

* feat(api): manual updates

* codegen metadata

* feat(api): manual updates

* codegen metadata

* codegen metadata

* codegen metadata

* feat: Add zstd compression to runs service (#136)

* Add zstd compression

* Merge

* Fix

* nits

* Feedback

* Fix build

* codegen metadata

* release: 0.1.0-beta.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: John Kennedy <65985482+jkennedyvz@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Jacob Lee <jacoblee93@gmail.com>
2026-04-30 17:23:03 +00:00
..
2026-03-31 10:46:03 -07:00
2026-04-30 17:23:03 +00:00
2026-02-20 10:13:38 -05:00

LangSmith Examples

This module contains runnable Kotlin examples organized by feature:

  • example/ - SDK examples (ListRuns, Dataset, PromptManagement, RecordExperiment, E2eEval)
  • example/otel/ - OpenTelemetry tracing examples

Prerequisites

All examples require:

./gradlew :langsmith-java-example:run -Pexample=ExampleName -Dlangchain.langsmithApiKey=your_api_key

Alternatively, you can use environment variables:

export LANGSMITH_API_KEY=your_api_key

The langchain.baseUrl system property (or LANGSMITH_ENDPOINT environment variable) is optional and defaults to https://api.smith.langchain.com/ if not set.

OpenTelemetry Tracing Examples

Located in src/main/kotlin/com/langchain/smith/example/otel/

OpenAI + LangSmith (Real API Calls)

Make actual OpenAI API calls with automatic tracing to LangSmith.

./gradlew :langsmith-java-example:run -Pexample=OtelOpenAI \
  -Dlangchain.langsmithApiKey=your_api_key \
  -DOPENAI_API_KEY=your_openai_key \
  -DLANGSMITH_PROJECT=my-project  # optional, defaults to "default"

View traces at https://smith.langchain.com

LangSmith (Standalone)

Send mock traces to LangSmith without external API calls.

./gradlew :langsmith-java-example:run -Pexample=OtelLangSmith \
  -Dlangchain.langsmithApiKey=your_api_key \
  -DLANGSMITH_PROJECT=my-project  # optional, defaults to "default"

View traces at https://smith.langchain.com

Spring Boot API to LangSmith

REST API with OpenTelemetry traces sent to LangSmith.

# Start server
./gradlew :langsmith-java-example:run -Pexample=SpringBootLangSmith \
  -Dlangchain.langsmithApiKey=your_api_key \
  -DLANGSMITH_PROJECT=my-project  # optional

# In another terminal, test endpoints:
curl -X POST http://localhost:8080/api/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "Hello!"}'

curl "http://localhost:8080/api/analyze?text=This%20is%20great"

Prompt Management Example

Located in src/main/kotlin/com/langchain/smith/example/

Prompt Management (Getting Started)

RECOMMENDED - Clean, simple example following the same pattern as the Dataset example.

./gradlew :langsmith-java-example:run -Pexample=PromptManagement \
  -Dlangchain.langsmithApiKey=your_api_key

Features demonstrated:

  1. Create prompt repositories using client.repos().create()
  2. Add prompt content with variables using client.commits().update()
  3. List and filter prompts using client.repos().list()
  4. Retrieve prompt content using client.commits().retrieve()
  5. View prompts in the LangSmith UI

This example follows the LangSmith Prompt Management docs and uses the SDK directly.


**Additional features:**
- Use prompts with OpenAI to generate responses
- Update prompt metadata and descriptions
- Pull specific commit versions
- System + user message prompts