From 12558e176bd49683dd599d06e222535066132ba1 Mon Sep 17 00:00:00 2001 From: perinim Date: Tue, 8 Jul 2025 19:35:43 +0200 Subject: [PATCH 01/14] feat: add new prompt best practices section --- .../tutorials/best_practices.mdx | 134 ++++++++++++++++++ docs/prompt_engineering/tutorials/index.mdx | 1 + .../static/prompt-best-practice-cicd.png | Bin 0 -> 53080 bytes .../static/prompt-best-practice-git.png | Bin 0 -> 71594 bytes .../static/prompt-best-practice-sequence.png | Bin 0 -> 85611 bytes 5 files changed, 135 insertions(+) create mode 100644 docs/prompt_engineering/tutorials/best_practices.mdx create mode 100644 docs/prompt_engineering/tutorials/static/prompt-best-practice-cicd.png create mode 100644 docs/prompt_engineering/tutorials/static/prompt-best-practice-git.png create mode 100644 docs/prompt_engineering/tutorials/static/prompt-best-practice-sequence.png diff --git a/docs/prompt_engineering/tutorials/best_practices.mdx b/docs/prompt_engineering/tutorials/best_practices.mdx new file mode 100644 index 000000000..813c44ba0 --- /dev/null +++ b/docs/prompt_engineering/tutorials/best_practices.mdx @@ -0,0 +1,134 @@ +--- +sidebar_label: Best Practices +sidebar_position: 5 +--- + +Here are our recommended best practices for managing your prompts. This guide will help you establish a robust workflow for developing, testing, and deploying prompts using LangSmith. + +## The prompt development lifecycle: iterating in the playground + +Before a prompt is versioned or deployed, it must be created. The best practice for prompt development is to treat it as an iterative, experimental process. The LangSmith Playground is the ideal environment for this initial "development" phase. + +Using the Playground, you and your team can: + +- **Rapidly iterate on prompts:** Modify prompt templates on the fly and immediately see how the changes affect the output. +- **Compare different LLMs:** Test the same prompt against various models (e.g., GPT-4o vs. Claude 3 Opus vs. Llama 3) side-by-side to find the best one for the job. This is crucial, as a prompt's effectiveness can vary significantly between models. +- **Test with diverse inputs:** Easily run the prompt and model configuration against a range of different inputs to check for edge cases and ensure reliability. +- **Optimize the prompt**: Use the Prompt Canvas feature to use an LLM to improve your prompt + ➡️ **See the blog post:** [LangChain Changelog](https://changelog.langchain.com/announcements/prompt-canvas-for-streamlined-prompt-engineering) +- **Develop and test tool calling:** Configure tools and functions that the LLM can call, and test the full interaction within the Playground. +- **Refine your app:** Run experiments directly against your dataset in the Playground, seeing changes in real time as you iterate on prompts. Share these experiments with teammates to get feedback and collaboratively optimize performance. + +Once you are satisfied with a prompt and it’s configuration in the Playground, you can save it as a new commit to your prompt's history. While the Playground UI is great for experimentation, you can also create and update prompts programmatically for more automated workflows using the LangSmith SDK. + +**➡️ See the docs:** https://docs.smith.langchain.com/prompt_engineering/how_to_guides/manage_prompts_programatically + +**➡️ See the SDK reference:** [client.create_prompt](https://docs.smith.langchain.com/reference/python/client/langsmith.client.Client#langsmith.client.Client.create_prompt) + +## Managing prompts through different environments + +Prompts are not static text; they are a fundamental component of your LLM application's logic, just like source code. A minor change can significantly alter an LLM's response or tool selection, making structured lifecycle management essential. The **LangSmith Prompt Hub** provides a central workspace to manage this complexity. This guide details the complete workflow for using the Hub to test prompts in development, validate them in staging, and deploy them confidently to production. + +## Dynamically updating application prompts based on prompt tags + +LangSmith provides a collaborative interface to iterate on prompts and share them with your team. After some initial testing in the Playground, you'll want to see how the prompt interacts within the context of your application. LangSmith’s Prompt Hub provides a way to do this without requiring code changes for every new version of the prompt. This is achieved by using **prompt commit tags**. + +Think of prompt tags just like Git tags. You can assign a meaningful name (e.g., `dev`, `staging`, `prod`) to a specific version (commit) of your prompt. This allows you to create a dynamic reference to the prompt version you want to use in a particular environment. + +For instance, you can have a `dev` tag pointing to the latest, most experimental version of your prompt, a `staging` tag for a more stable version undergoing final testing, and a `prod` tag for the version you trust to be in your live application. As you promote a prompt from development to production, you simply move the tag from one commit to another within the LangSmith UI. + +To implement this workflow, you reference the tag in your application code instead of a static commit hash. This enables you to update the prompt in your application without a new code deployment. + +### How to pull a prompt via commit tag in your staging/dev/test environments + +LangSmith's Prompt Tags feature is designed for exactly this workflow. Instead of hardcoding a specific prompt version in your application, you reference the tag. + +For example, your development environment could pull the prompt tagged `dev`, while your production application pulls the one tagged `prod`. + +```python +# In your development environment, fetch the latest experimental prompt +prompt_dev = client.pull_prompt("your-prompt-name:dev") + +# In your staging environment, fetch the release candidate +prompt_staging = client.pull_prompt("your-prompt-name:staging") + +# In production, this code always fetches the stable prompt version currently tagged as "prod" +prompt_prod = client.pull_prompt("your-prompt-name:prod") +``` + +**➡️ Learn more in the official documentation:** [Prompt Tags](https://docs.smith.langchain.com/prompt_engineering/how_to_guides/prompt_tags) + +![Git Diagram](./static/prompt-best-practice-git.png) + +### Evaluating prompt changes before promoting to production + +A typical pipeline consists of several automated stages that run in sequence. If any stage fails, the pipeline stops and notifies the team. + +![CICD Diagram](./static/prompt-best-practice-cicd.png) + +- **Stage 1: Trigger** + The pipeline starts automatically when a new prompt version is created. + - **How:** This can be a `git push` to your main branch or, more powerfully, a **webhook** triggered from LangSmith on every new prompt commit. +- **Stage 2: Linting & unit tests** + This stage performs quick, low-cost checks. + - **Linting:** A simple script checks for basic syntax. For example, does the prompt template contain all the required input variables (e.g., `{question}`, `{context}`)? + - **Unit Tests:** These verify the _structure_ of the output, not the quality. You can use a framework like `pytest` to make a few calls to the new prompt and assert things like: + - "Does the output always return valid JSON?" + - "Does it contain the expected keys?" + - "Is the list length correct?" +- **Stage 3: Quality evaluation** + This is the heart of the pipeline. The new prompt version is run against your evaluation dataset to ensure it meets quality standards. + - **How:** This can be done in a few ways: + - **Programmatic SDK Evals:** For checks against known ground truths, a script can use the LangSmith SDK's `evaluate` [function](https://docs.smith.langchain.com/evaluation#7-run-and-view-results). This executes the new prompt against every example in your dataset, and the results are automatically scored by your chosen programmatic evaluators (e.g., for JSON validity, string matching). + - **Advanced Qualitative Evals with `openevals`:** For more nuanced quality checks (like helpfulness, style, or adherence to complex instructions), you can leverage the `openevals` library. This library integrates directly with `pytest` and allows you to define sophisticated, "LLM-as-a-judge" evaluations. You can create tests that use another LLM to score the quality of your prompt's output. Thanks to the [LangSmith integration](https://github.com/langchain-ai/openevals?tab=readme-ov-file#langsmith-integration), all these evaluation runs are automatically traced and can be visualized in LangSmith, giving you a detailed view of the results. + - **The Check:** The pipeline then compares the new prompt's aggregate evaluation scores (e.g., average correctness, helpfulness score, latency, cost) against the current production prompt's scores. +- **Stage 4: Continuous deployment (promotion)** + Based on the evaluation results, the prompt is automatically promoted. + - **Pass/Fail Logic:** The pipeline checks if the new prompt is "better" than the current one (e.g., higher correctness score, no drop in helpfulness, within cost budget). + - **Promotion to `staging`:** If it passes, a script uses the LangSmith SDK to move the `staging` tag to this new commit hash. Your staging application, which pulls the `your-prompt:staging` tag, will automatically start using the new prompt. + - **Promotion to `prod`:** This is often a **manual step**. After the team has reviewed the performance in the staging environment and is confident in the results, a team member can manually move the `prod` tag in the LangSmith UI. This final human check is a crucial safety measure. + +## Syncing prompts in production + +For better version control, collaboration, and integration with your existing CI/CD pipelines, synchronizing your LangSmith prompts with an external source code repository will give you a full commit history alongside your application code. + +### Best practice: use webhooks for synchronization + +The most effective way to automate this is by using webhooks. You can configure LangSmith to send a notification to a service every time a new version of a prompt is saved. This creates a seamless bridge between the user-friendly prompt editing environment in LangSmith and your rigorous version control system. + +### Webhook synchronization flow + +This diagram shows the sequence of events when a prompt is updated in LangSmith and automatically synced to a GitHub repository. + +![CICD Diagram](./static/prompt-best-practice-sequence.png) + +### How to implement this with LangSmith + +LangSmith allows you to configure a webhook for your workspace that will fire on every prompt commit. You can point this webhook to your own service (like an AWS Lambda function or a small server) to handle the synchronization logic. + +**➡️ Learn more in the official documentation:** [Trigger a webhook on prompt commit](https://docs.smith.langchain.com/prompt_engineering/how_to_guides/trigger_webhook), [How to Sync Prompts with GitHub](https://docs.smith.langchain.com/prompt_engineering/tutorials/prompt_commit) + +## How to use a prompt in production without repeated API calls + +In a production application, making a network request to fetch a prompt every time a function is executed adds unnecessary latency and creates a dependency that could fail. The application should be resilient and fast. + +### Best practice: cache prompts in your application + +To avoid putting an API call to LangSmith in the "hot path" of your application, you should implement a caching strategy. The prompt doesn't change on every request, so you can fetch it once and reuse it. Caching not only improves performance but also increases resilience, as your application can continue to function using the last-known prompt even if it temporarily can't reach the LangSmith API. + +### Caching strategies + +There are two primary strategies for caching prompts, each with its own trade-offs. + +- **1. Local in-memory caching** + This is the simplest caching method. The prompt is fetched from LangSmith and stored directly in the memory of your application instance. + - **How it works**: On application startup, or on the first request for a prompt, fetch it from LangSmith and store it in a global variable or a simple cache object. Set a Time-To-Live (TTL) on the cached item (e.g., 5-10 minutes). Subsequent requests use the in-memory version until the TTL expires, at which point it's fetched again. + - **Pros**: Extremely fast access with sub-millisecond latency; no additional infrastructure required. + - **Cons**: The cache is lost if the application restarts. Each instance of your application (if you have more than one server) will have its own separate cache, which could lead to brief inconsistencies when a prompt is updated. + - **Best for**: Single-instance applications, development environments, or applications where ultimate consistency across all nodes is not critical. +- **2. Distributed caching** + This approach uses an external, centralized caching service that is shared by all instances of your application. + - **How it works**: Your application instances connect to a shared caching service like **Redis** or **Memcached**. When a prompt is needed, the application first checks the distributed cache. If it's not there (a "cache miss"), it fetches the prompt from LangSmith, stores it in the cache, and then uses it. + - **Pros**: The cache is persistent and is not lost on application restarts. All application instances share the same cache, ensuring consistency. Highly scalable for large, distributed systems. + - **Cons**: Requires setting up and maintaining an additional service (like Redis). There is slightly more network latency compared to in-memory caching, though it's still extremely fast. + - **Best for**: Scalable, multi-instance production applications where consistency and resilience are top priorities. Using a service like Redis is the industry-standard approach for robust application caching. diff --git a/docs/prompt_engineering/tutorials/index.mdx b/docs/prompt_engineering/tutorials/index.mdx index 3134bb8ae..5b69c3b10 100644 --- a/docs/prompt_engineering/tutorials/index.mdx +++ b/docs/prompt_engineering/tutorials/index.mdx @@ -4,3 +4,4 @@ New to LangSmith or to LLM app development in general? Read this material to qui - [Optimize a classifier](./tutorials/optimize_classifier) - [How to Sync Prompts with GitHub](./tutorials/prompt_commit) +- [Prompt Management Best Practices](./tutorials/best_practices) diff --git a/docs/prompt_engineering/tutorials/static/prompt-best-practice-cicd.png b/docs/prompt_engineering/tutorials/static/prompt-best-practice-cicd.png new file mode 100644 index 0000000000000000000000000000000000000000..caa7e9cc7ee9d7168a137ce65071fb580a0a5a50 GIT binary patch literal 53080 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

s_jw>;765hR?u){QGFe`cIu{N3 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 DN?-JD literal 0 HcmV?d00001 diff --git a/docs/prompt_engineering/tutorials/static/prompt-best-practice-git.png b/docs/prompt_engineering/tutorials/static/prompt-best-practice-git.png new file mode 100644 index 0000000000000000000000000000000000000000..c761771038ed22d35931c328a69799e0cb7a49a5 GIT binary patch literal 71594 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

21!RibGR{L`g0qDfxD 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 z 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 literal 0 HcmV?d00001 From 2c95f9c8127f4554f077909bb4d2e08c27962b9b Mon Sep 17 00:00:00 2001 From: Marco Perini Date: Sat, 12 Jul 2025 11:43:20 +0200 Subject: [PATCH 02/14] Update docs/prompt_engineering/tutorials/best_practices.mdx Co-authored-by: Kathryn May <44557882+katmayb@users.noreply.github.com> --- docs/prompt_engineering/tutorials/best_practices.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/prompt_engineering/tutorials/best_practices.mdx b/docs/prompt_engineering/tutorials/best_practices.mdx index 813c44ba0..3a9bbb89c 100644 --- a/docs/prompt_engineering/tutorials/best_practices.mdx +++ b/docs/prompt_engineering/tutorials/best_practices.mdx @@ -19,7 +19,7 @@ Using the Playground, you and your team can: - **Develop and test tool calling:** Configure tools and functions that the LLM can call, and test the full interaction within the Playground. - **Refine your app:** Run experiments directly against your dataset in the Playground, seeing changes in real time as you iterate on prompts. Share these experiments with teammates to get feedback and collaboratively optimize performance. -Once you are satisfied with a prompt and it’s configuration in the Playground, you can save it as a new commit to your prompt's history. While the Playground UI is great for experimentation, you can also create and update prompts programmatically for more automated workflows using the LangSmith SDK. +Once you are satisfied with a prompt and its configuration in the Playground, you can save it as a new commit to your prompt's history. While the Playground UI is great for experimentation, you can also create and update prompts programmatically for more automated workflows using the LangSmith SDK. **➡️ See the docs:** https://docs.smith.langchain.com/prompt_engineering/how_to_guides/manage_prompts_programatically From 3f04124f66bf1ed4cf4cf9073e1b8bfa723f6cd1 Mon Sep 17 00:00:00 2001 From: Marco Perini Date: Sat, 12 Jul 2025 11:43:37 +0200 Subject: [PATCH 03/14] Update docs/prompt_engineering/tutorials/best_practices.mdx Co-authored-by: Kathryn May <44557882+katmayb@users.noreply.github.com> --- docs/prompt_engineering/tutorials/best_practices.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/prompt_engineering/tutorials/best_practices.mdx b/docs/prompt_engineering/tutorials/best_practices.mdx index 3a9bbb89c..0c7bac6ae 100644 --- a/docs/prompt_engineering/tutorials/best_practices.mdx +++ b/docs/prompt_engineering/tutorials/best_practices.mdx @@ -2,7 +2,7 @@ sidebar_label: Best Practices sidebar_position: 5 --- - +# Prompt management best practices Here are our recommended best practices for managing your prompts. This guide will help you establish a robust workflow for developing, testing, and deploying prompts using LangSmith. ## The prompt development lifecycle: iterating in the playground From 95b8d1f7d2aa896b363d4983e34286cc100b8379 Mon Sep 17 00:00:00 2001 From: Marco Perini Date: Sat, 12 Jul 2025 11:45:21 +0200 Subject: [PATCH 04/14] Update docs/prompt_engineering/tutorials/best_practices.mdx Co-authored-by: Kathryn May <44557882+katmayb@users.noreply.github.com> --- docs/prompt_engineering/tutorials/best_practices.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/prompt_engineering/tutorials/best_practices.mdx b/docs/prompt_engineering/tutorials/best_practices.mdx index 0c7bac6ae..daa3f0838 100644 --- a/docs/prompt_engineering/tutorials/best_practices.mdx +++ b/docs/prompt_engineering/tutorials/best_practices.mdx @@ -31,9 +31,9 @@ Prompts are not static text; they are a fundamental component of your LLM applic ## Dynamically updating application prompts based on prompt tags -LangSmith provides a collaborative interface to iterate on prompts and share them with your team. After some initial testing in the Playground, you'll want to see how the prompt interacts within the context of your application. LangSmith’s Prompt Hub provides a way to do this without requiring code changes for every new version of the prompt. This is achieved by using **prompt commit tags**. +LangSmith provides a collaborative interface to iterate on prompts and share them with your team. After some initial testing in the Playground, you'll want to see how the prompt interacts within the context of your application. In LangSmith’s Prompt Hub, you can apply [_prompt commit tags_](./prompt_engineering/how_to_guides/prompt_tags.mdx) for new versions of the prompt without requiring code changes each time. -Think of prompt tags just like Git tags. You can assign a meaningful name (e.g., `dev`, `staging`, `prod`) to a specific version (commit) of your prompt. This allows you to create a dynamic reference to the prompt version you want to use in a particular environment. +You can assign a meaningful name (e.g., `dev`, `staging`, `prod`) to a specific version (commit) of your prompt. This allows you to create a dynamic reference to the prompt version you want to use in a particular environment. For instance, you can have a `dev` tag pointing to the latest, most experimental version of your prompt, a `staging` tag for a more stable version undergoing final testing, and a `prod` tag for the version you trust to be in your live application. As you promote a prompt from development to production, you simply move the tag from one commit to another within the LangSmith UI. From 5fec635dabe4e266cf449d09bf18d7dcfaeb5286 Mon Sep 17 00:00:00 2001 From: Marco Perini Date: Sat, 12 Jul 2025 11:46:01 +0200 Subject: [PATCH 05/14] Update docs/prompt_engineering/tutorials/best_practices.mdx Co-authored-by: Kathryn May <44557882+katmayb@users.noreply.github.com> --- docs/prompt_engineering/tutorials/best_practices.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/prompt_engineering/tutorials/best_practices.mdx b/docs/prompt_engineering/tutorials/best_practices.mdx index daa3f0838..1801e1974 100644 --- a/docs/prompt_engineering/tutorials/best_practices.mdx +++ b/docs/prompt_engineering/tutorials/best_practices.mdx @@ -35,7 +35,7 @@ LangSmith provides a collaborative interface to iterate on prompts and share the You can assign a meaningful name (e.g., `dev`, `staging`, `prod`) to a specific version (commit) of your prompt. This allows you to create a dynamic reference to the prompt version you want to use in a particular environment. -For instance, you can have a `dev` tag pointing to the latest, most experimental version of your prompt, a `staging` tag for a more stable version undergoing final testing, and a `prod` tag for the version you trust to be in your live application. As you promote a prompt from development to production, you simply move the tag from one commit to another within the LangSmith UI. +For instance, you can have a `dev` tag pointing to the latest, most experimental version of your prompt, a `staging` tag for a more stable version undergoing final testing, and a `prod` tag for the version you trust to be in your live application. As you promote a prompt from development to production, you move the tag from one commit to another within the LangSmith UI. To implement this workflow, you reference the tag in your application code instead of a static commit hash. This enables you to update the prompt in your application without a new code deployment. From 9be8527e54996c8df497a5ed0c727c9ff4df7d7c Mon Sep 17 00:00:00 2001 From: Marco Perini Date: Sat, 12 Jul 2025 11:46:16 +0200 Subject: [PATCH 06/14] Update docs/prompt_engineering/tutorials/best_practices.mdx Co-authored-by: Kathryn May <44557882+katmayb@users.noreply.github.com> --- docs/prompt_engineering/tutorials/best_practices.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/prompt_engineering/tutorials/best_practices.mdx b/docs/prompt_engineering/tutorials/best_practices.mdx index 1801e1974..470a97769 100644 --- a/docs/prompt_engineering/tutorials/best_practices.mdx +++ b/docs/prompt_engineering/tutorials/best_practices.mdx @@ -39,7 +39,7 @@ For instance, you can have a `dev` tag pointing to the latest, most experimental To implement this workflow, you reference the tag in your application code instead of a static commit hash. This enables you to update the prompt in your application without a new code deployment. -### How to pull a prompt via commit tag in your staging/dev/test environments +### How to pull a prompt via commit tag in your environments LangSmith's Prompt Tags feature is designed for exactly this workflow. Instead of hardcoding a specific prompt version in your application, you reference the tag. From fe2ecc929ccf6fb8cec42a83f02c7571c0220bde Mon Sep 17 00:00:00 2001 From: Marco Perini Date: Sat, 12 Jul 2025 11:47:19 +0200 Subject: [PATCH 07/14] Update docs/prompt_engineering/tutorials/best_practices.mdx Co-authored-by: Kathryn May <44557882+katmayb@users.noreply.github.com> --- docs/prompt_engineering/tutorials/best_practices.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/prompt_engineering/tutorials/best_practices.mdx b/docs/prompt_engineering/tutorials/best_practices.mdx index 470a97769..d06c239a7 100644 --- a/docs/prompt_engineering/tutorials/best_practices.mdx +++ b/docs/prompt_engineering/tutorials/best_practices.mdx @@ -29,7 +29,7 @@ Once you are satisfied with a prompt and its configuration in the Playground, yo Prompts are not static text; they are a fundamental component of your LLM application's logic, just like source code. A minor change can significantly alter an LLM's response or tool selection, making structured lifecycle management essential. The **LangSmith Prompt Hub** provides a central workspace to manage this complexity. This guide details the complete workflow for using the Hub to test prompts in development, validate them in staging, and deploy them confidently to production. -## Dynamically updating application prompts based on prompt tags +## Update application prompts based on prompt tags LangSmith provides a collaborative interface to iterate on prompts and share them with your team. After some initial testing in the Playground, you'll want to see how the prompt interacts within the context of your application. In LangSmith’s Prompt Hub, you can apply [_prompt commit tags_](./prompt_engineering/how_to_guides/prompt_tags.mdx) for new versions of the prompt without requiring code changes each time. From 9b7c0d983085cca8a276d6bfa1ffdaa4ad2e848b Mon Sep 17 00:00:00 2001 From: Marco Perini Date: Sat, 12 Jul 2025 11:47:42 +0200 Subject: [PATCH 08/14] Update docs/prompt_engineering/tutorials/best_practices.mdx Co-authored-by: Kathryn May <44557882+katmayb@users.noreply.github.com> --- docs/prompt_engineering/tutorials/best_practices.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/prompt_engineering/tutorials/best_practices.mdx b/docs/prompt_engineering/tutorials/best_practices.mdx index d06c239a7..511dc6367 100644 --- a/docs/prompt_engineering/tutorials/best_practices.mdx +++ b/docs/prompt_engineering/tutorials/best_practices.mdx @@ -60,7 +60,7 @@ prompt_prod = client.pull_prompt("your-prompt-name:prod") ![Git Diagram](./static/prompt-best-practice-git.png) -### Evaluating prompt changes before promoting to production +### Evaluate prompt changes before promotion to production A typical pipeline consists of several automated stages that run in sequence. If any stage fails, the pipeline stops and notifies the team. From 2412e870851ec21addc872c1582831fa8851c986 Mon Sep 17 00:00:00 2001 From: Marco Perini Date: Sat, 12 Jul 2025 11:47:53 +0200 Subject: [PATCH 09/14] Update docs/prompt_engineering/tutorials/best_practices.mdx Co-authored-by: Kathryn May <44557882+katmayb@users.noreply.github.com> --- docs/prompt_engineering/tutorials/best_practices.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/prompt_engineering/tutorials/best_practices.mdx b/docs/prompt_engineering/tutorials/best_practices.mdx index 511dc6367..66c19fa99 100644 --- a/docs/prompt_engineering/tutorials/best_practices.mdx +++ b/docs/prompt_engineering/tutorials/best_practices.mdx @@ -88,7 +88,7 @@ A typical pipeline consists of several automated stages that run in sequence. If - **Promotion to `staging`:** If it passes, a script uses the LangSmith SDK to move the `staging` tag to this new commit hash. Your staging application, which pulls the `your-prompt:staging` tag, will automatically start using the new prompt. - **Promotion to `prod`:** This is often a **manual step**. After the team has reviewed the performance in the staging environment and is confident in the results, a team member can manually move the `prod` tag in the LangSmith UI. This final human check is a crucial safety measure. -## Syncing prompts in production +## Sync prompts in production For better version control, collaboration, and integration with your existing CI/CD pipelines, synchronizing your LangSmith prompts with an external source code repository will give you a full commit history alongside your application code. From ca62b9681a19ea409874752fee6e107df12b647e Mon Sep 17 00:00:00 2001 From: perinim Date: Sat, 12 Jul 2025 12:59:22 +0200 Subject: [PATCH 10/14] docs(prompts): integrated review --- docs/index.mdx | 3 +- .../tutorials/best_practices.mdx | 36 +++++++++---------- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index b83ea075e..16832a25b 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -61,4 +61,5 @@ While traditional software applications are built by writing code, AI applicatio - Get started by [creating your first prompt](./prompt_engineering/how_to_guides/create_a_prompt). - Iterate on models and prompts using the [Playground](./prompt_engineering/how_to_guides#playground). -- [Manage prompts programmatically](https://docs.smith.langchain.com/prompt_engineering/how_to_guides/prompts/manage_prompts_programatically) in your application. +- [Manage prompts programmatically](./prompt_engineering/how_to_guides/prompts/manage_prompts_programatically) in your application. +- [Prompt management best practices](./prompt_engineering/tutorials/best_practices) diff --git a/docs/prompt_engineering/tutorials/best_practices.mdx b/docs/prompt_engineering/tutorials/best_practices.mdx index 66c19fa99..1c3b70971 100644 --- a/docs/prompt_engineering/tutorials/best_practices.mdx +++ b/docs/prompt_engineering/tutorials/best_practices.mdx @@ -7,31 +7,31 @@ Here are our recommended best practices for managing your prompts. This guide wi ## The prompt development lifecycle: iterating in the playground -Before a prompt is versioned or deployed, it must be created. The best practice for prompt development is to treat it as an iterative, experimental process. The LangSmith Playground is the ideal environment for this initial "development" phase. +We recommend treating prompt development as an iterative, experimental process. The LangSmith Playground is the ideal environment for this initial "development" phase. -Using the Playground, you and your team can: +Using the [Playground](/prompt_engineering/how_to_guides#playground), you and your team can: -- **Rapidly iterate on prompts:** Modify prompt templates on the fly and immediately see how the changes affect the output. +- **Rapidly iterate on prompts:** Modify prompt templates and see how the changes affect the output immediately. - **Compare different LLMs:** Test the same prompt against various models (e.g., GPT-4o vs. Claude 3 Opus vs. Llama 3) side-by-side to find the best one for the job. This is crucial, as a prompt's effectiveness can vary significantly between models. -- **Test with diverse inputs:** Easily run the prompt and model configuration against a range of different inputs to check for edge cases and ensure reliability. -- **Optimize the prompt**: Use the Prompt Canvas feature to use an LLM to improve your prompt +- **Test with diverse inputs:** Run the prompt and model configuration against a range of different inputs to check for edge cases and ensure reliability. +- **Optimize the prompt**: Use the [Prompt Canvas](/prompt_engineering/how_to_guides/prompt_canvas) feature to have an LLM improve your prompt. ➡️ **See the blog post:** [LangChain Changelog](https://changelog.langchain.com/announcements/prompt-canvas-for-streamlined-prompt-engineering) - **Develop and test tool calling:** Configure tools and functions that the LLM can call, and test the full interaction within the Playground. -- **Refine your app:** Run experiments directly against your dataset in the Playground, seeing changes in real time as you iterate on prompts. Share these experiments with teammates to get feedback and collaboratively optimize performance. +- **Refine your app:** Run experiments directly against your dataset in the Playground to see changes in real time as you iterate on prompts. Share experiments with teammates to get feedback and collaboratively optimize performance. Once you are satisfied with a prompt and its configuration in the Playground, you can save it as a new commit to your prompt's history. While the Playground UI is great for experimentation, you can also create and update prompts programmatically for more automated workflows using the LangSmith SDK. -**➡️ See the docs:** https://docs.smith.langchain.com/prompt_engineering/how_to_guides/manage_prompts_programatically +**➡️ See the docs:** [Manage prompts programmatically](/prompt_engineering/how_to_guides/manage_prompts_programatically) -**➡️ See the SDK reference:** [client.create_prompt](https://docs.smith.langchain.com/reference/python/client/langsmith.client.Client#langsmith.client.Client.create_prompt) +**➡️ See the SDK reference:** [client.create_prompt](/reference/python/client/langsmith.client.Client#langsmith.client.Client.create_prompt) -## Managing prompts through different environments +## Manage prompts through different environments Prompts are not static text; they are a fundamental component of your LLM application's logic, just like source code. A minor change can significantly alter an LLM's response or tool selection, making structured lifecycle management essential. The **LangSmith Prompt Hub** provides a central workspace to manage this complexity. This guide details the complete workflow for using the Hub to test prompts in development, validate them in staging, and deploy them confidently to production. ## Update application prompts based on prompt tags -LangSmith provides a collaborative interface to iterate on prompts and share them with your team. After some initial testing in the Playground, you'll want to see how the prompt interacts within the context of your application. In LangSmith’s Prompt Hub, you can apply [_prompt commit tags_](./prompt_engineering/how_to_guides/prompt_tags.mdx) for new versions of the prompt without requiring code changes each time. +LangSmith provides a collaborative interface to iterate on prompts and share them with your team. After some initial testing in the Playground, you'll want to see how the prompt interacts within the context of your application. In LangSmith’s Prompt Hub, you can apply [_prompt commit tags_](/prompt_engineering/how_to_guides/prompt_tags) for new versions of the prompt without requiring code changes each time. You can assign a meaningful name (e.g., `dev`, `staging`, `prod`) to a specific version (commit) of your prompt. This allows you to create a dynamic reference to the prompt version you want to use in a particular environment. @@ -60,7 +60,7 @@ prompt_prod = client.pull_prompt("your-prompt-name:prod") ![Git Diagram](./static/prompt-best-practice-git.png) -### Evaluate prompt changes before promotion to production +### Best practice: evaluate prompt changes before promotion to production A typical pipeline consists of several automated stages that run in sequence. If any stage fails, the pipeline stops and notifies the team. @@ -68,7 +68,7 @@ A typical pipeline consists of several automated stages that run in sequence. If - **Stage 1: Trigger** The pipeline starts automatically when a new prompt version is created. - - **How:** This can be a `git push` to your main branch or, more powerfully, a **webhook** triggered from LangSmith on every new prompt commit. + - **How:** This can be a `git push` to your main branch or a **webhook** triggered from LangSmith on every new prompt commit. - **Stage 2: Linting & unit tests** This stage performs quick, low-cost checks. - **Linting:** A simple script checks for basic syntax. For example, does the prompt template contain all the required input variables (e.g., `{question}`, `{context}`)? @@ -77,14 +77,14 @@ A typical pipeline consists of several automated stages that run in sequence. If - "Does it contain the expected keys?" - "Is the list length correct?" - **Stage 3: Quality evaluation** - This is the heart of the pipeline. The new prompt version is run against your evaluation dataset to ensure it meets quality standards. + The new prompt version is run against your evaluation dataset to ensure it meets quality standards. - **How:** This can be done in a few ways: - **Programmatic SDK Evals:** For checks against known ground truths, a script can use the LangSmith SDK's `evaluate` [function](https://docs.smith.langchain.com/evaluation#7-run-and-view-results). This executes the new prompt against every example in your dataset, and the results are automatically scored by your chosen programmatic evaluators (e.g., for JSON validity, string matching). - - **Advanced Qualitative Evals with `openevals`:** For more nuanced quality checks (like helpfulness, style, or adherence to complex instructions), you can leverage the `openevals` library. This library integrates directly with `pytest` and allows you to define sophisticated, "LLM-as-a-judge" evaluations. You can create tests that use another LLM to score the quality of your prompt's output. Thanks to the [LangSmith integration](https://github.com/langchain-ai/openevals?tab=readme-ov-file#langsmith-integration), all these evaluation runs are automatically traced and can be visualized in LangSmith, giving you a detailed view of the results. + - **Advanced Qualitative Evals with `openevals`:** For more nuanced quality checks (like helpfulness, style, or adherence to complex instructions), you can leverage the `openevals` library. This library integrates directly with `pytest` and allows you to define sophisticated, "LLM-as-a-judge" evaluations. You can create tests that use another LLM to score the quality of your prompt's output. The [LangSmith integration](https://github.com/langchain-ai/openevals?tab=readme-ov-file#langsmith-integration) automatically traces and visualizes all these evaluation runs in LangSmith, which provides a detailed view of the results. - **The Check:** The pipeline then compares the new prompt's aggregate evaluation scores (e.g., average correctness, helpfulness score, latency, cost) against the current production prompt's scores. - **Stage 4: Continuous deployment (promotion)** Based on the evaluation results, the prompt is automatically promoted. - - **Pass/Fail Logic:** The pipeline checks if the new prompt is "better" than the current one (e.g., higher correctness score, no drop in helpfulness, within cost budget). + - **Pass/Fail Logic:** The pipeline checks if the new prompt is "better" than the current one based on criteria such as higher correctness score, no drop in helpfulness, within cost budget. - **Promotion to `staging`:** If it passes, a script uses the LangSmith SDK to move the `staging` tag to this new commit hash. Your staging application, which pulls the `your-prompt:staging` tag, will automatically start using the new prompt. - **Promotion to `prod`:** This is often a **manual step**. After the team has reviewed the performance in the staging environment and is confident in the results, a team member can manually move the `prod` tag in the LangSmith UI. This final human check is a crucial safety measure. @@ -94,7 +94,7 @@ For better version control, collaboration, and integration with your existing CI ### Best practice: use webhooks for synchronization -The most effective way to automate this is by using webhooks. You can configure LangSmith to send a notification to a service every time a new version of a prompt is saved. This creates a seamless bridge between the user-friendly prompt editing environment in LangSmith and your rigorous version control system. +The most effective way to automate this is by using webhooks. You can configure LangSmith to send a notification to a service every time a new version of a prompt is saved. This creates a seamless bridge between the user-friendly prompt editing environment in LangSmith and your version control system. ### Webhook synchronization flow @@ -110,8 +110,6 @@ LangSmith allows you to configure a webhook for your workspace that will fire on ## How to use a prompt in production without repeated API calls -In a production application, making a network request to fetch a prompt every time a function is executed adds unnecessary latency and creates a dependency that could fail. The application should be resilient and fast. - ### Best practice: cache prompts in your application To avoid putting an API call to LangSmith in the "hot path" of your application, you should implement a caching strategy. The prompt doesn't change on every request, so you can fetch it once and reuse it. Caching not only improves performance but also increases resilience, as your application can continue to function using the last-known prompt even if it temporarily can't reach the LangSmith API. @@ -130,5 +128,5 @@ There are two primary strategies for caching prompts, each with its own trade-of This approach uses an external, centralized caching service that is shared by all instances of your application. - **How it works**: Your application instances connect to a shared caching service like **Redis** or **Memcached**. When a prompt is needed, the application first checks the distributed cache. If it's not there (a "cache miss"), it fetches the prompt from LangSmith, stores it in the cache, and then uses it. - **Pros**: The cache is persistent and is not lost on application restarts. All application instances share the same cache, ensuring consistency. Highly scalable for large, distributed systems. - - **Cons**: Requires setting up and maintaining an additional service (like Redis). There is slightly more network latency compared to in-memory caching, though it's still extremely fast. + - **How it works**: Your application instances connect to a shared caching service like [Redis](https://redis.io/) or [Memcached](https://memcached.org/). When a prompt is needed, the application first checks the distributed cache. If it's not there (a "cache miss"), it fetches the prompt from LangSmith, stores it in the cache, and then uses it. - **Best for**: Scalable, multi-instance production applications where consistency and resilience are top priorities. Using a service like Redis is the industry-standard approach for robust application caching. From 8f4bb332a1cd2f1a7b6dd78fb379ff6e8381c957 Mon Sep 17 00:00:00 2001 From: perinim Date: Sat, 12 Jul 2025 13:13:28 +0200 Subject: [PATCH 11/14] docs: linting + format --- docs/prompt_engineering/tutorials/best_practices.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/prompt_engineering/tutorials/best_practices.mdx b/docs/prompt_engineering/tutorials/best_practices.mdx index 1c3b70971..0eddeec07 100644 --- a/docs/prompt_engineering/tutorials/best_practices.mdx +++ b/docs/prompt_engineering/tutorials/best_practices.mdx @@ -2,7 +2,9 @@ sidebar_label: Best Practices sidebar_position: 5 --- + # Prompt management best practices + Here are our recommended best practices for managing your prompts. This guide will help you establish a robust workflow for developing, testing, and deploying prompts using LangSmith. ## The prompt development lifecycle: iterating in the playground @@ -31,7 +33,7 @@ Prompts are not static text; they are a fundamental component of your LLM applic ## Update application prompts based on prompt tags -LangSmith provides a collaborative interface to iterate on prompts and share them with your team. After some initial testing in the Playground, you'll want to see how the prompt interacts within the context of your application. In LangSmith’s Prompt Hub, you can apply [_prompt commit tags_](/prompt_engineering/how_to_guides/prompt_tags) for new versions of the prompt without requiring code changes each time. +LangSmith provides a collaborative interface to iterate on prompts and share them with your team. After some initial testing in the Playground, you'll want to see how the prompt interacts within the context of your application. In LangSmith’s Prompt Hub, you can apply [_prompt commit tags_](/prompt_engineering/how_to_guides/prompt_tags) for new versions of the prompt without requiring code changes each time. You can assign a meaningful name (e.g., `dev`, `staging`, `prod`) to a specific version (commit) of your prompt. This allows you to create a dynamic reference to the prompt version you want to use in a particular environment. From 6edbdad7cc91c08560a00f5ffb4acd36615a31f7 Mon Sep 17 00:00:00 2001 From: perinim Date: Sat, 12 Jul 2025 13:15:11 +0200 Subject: [PATCH 12/14] docs: removed how to --- docs/prompt_engineering/tutorials/best_practices.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/prompt_engineering/tutorials/best_practices.mdx b/docs/prompt_engineering/tutorials/best_practices.mdx index 0eddeec07..d58548771 100644 --- a/docs/prompt_engineering/tutorials/best_practices.mdx +++ b/docs/prompt_engineering/tutorials/best_practices.mdx @@ -110,7 +110,7 @@ LangSmith allows you to configure a webhook for your workspace that will fire on **➡️ Learn more in the official documentation:** [Trigger a webhook on prompt commit](https://docs.smith.langchain.com/prompt_engineering/how_to_guides/trigger_webhook), [How to Sync Prompts with GitHub](https://docs.smith.langchain.com/prompt_engineering/tutorials/prompt_commit) -## How to use a prompt in production without repeated API calls +## Use a prompt in production without repeated API calls ### Best practice: cache prompts in your application From c8da2a337d3a0903092f6422b3c36a4e1e6523a8 Mon Sep 17 00:00:00 2001 From: perinim Date: Sun, 13 Jul 2025 16:08:53 +0200 Subject: [PATCH 13/14] docs: fix broken links --- docs/index.mdx | 2 +- docs/prompt_engineering/tutorials/best_practices.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/index.mdx b/docs/index.mdx index 16832a25b..bb9b9f498 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -61,5 +61,5 @@ While traditional software applications are built by writing code, AI applicatio - Get started by [creating your first prompt](./prompt_engineering/how_to_guides/create_a_prompt). - Iterate on models and prompts using the [Playground](./prompt_engineering/how_to_guides#playground). -- [Manage prompts programmatically](./prompt_engineering/how_to_guides/prompts/manage_prompts_programatically) in your application. +- [Manage prompts programmatically](./prompt_engineering/how_to_guides/manage_prompts_programatically) in your application. - [Prompt management best practices](./prompt_engineering/tutorials/best_practices) diff --git a/docs/prompt_engineering/tutorials/best_practices.mdx b/docs/prompt_engineering/tutorials/best_practices.mdx index d58548771..d71548c2f 100644 --- a/docs/prompt_engineering/tutorials/best_practices.mdx +++ b/docs/prompt_engineering/tutorials/best_practices.mdx @@ -25,7 +25,7 @@ Once you are satisfied with a prompt and its configuration in the Playground, yo **➡️ See the docs:** [Manage prompts programmatically](/prompt_engineering/how_to_guides/manage_prompts_programatically) -**➡️ See the SDK reference:** [client.create_prompt](/reference/python/client/langsmith.client.Client#langsmith.client.Client.create_prompt) +**➡️ See the SDK reference:** [client.create_prompt](https://docs.smith.langchain.com/reference/python/client/langsmith.client.Client#langsmith.client.Client.create_prompt) ## Manage prompts through different environments From 43980750df03f5730751a79b403ed6cfefa65b1c Mon Sep 17 00:00:00 2001 From: perinim Date: Mon, 14 Jul 2025 15:05:04 +0200 Subject: [PATCH 14/14] docs: added canary deployment part --- docs/prompt_engineering/tutorials/best_practices.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/prompt_engineering/tutorials/best_practices.mdx b/docs/prompt_engineering/tutorials/best_practices.mdx index d71548c2f..a235a921b 100644 --- a/docs/prompt_engineering/tutorials/best_practices.mdx +++ b/docs/prompt_engineering/tutorials/best_practices.mdx @@ -88,7 +88,7 @@ A typical pipeline consists of several automated stages that run in sequence. If Based on the evaluation results, the prompt is automatically promoted. - **Pass/Fail Logic:** The pipeline checks if the new prompt is "better" than the current one based on criteria such as higher correctness score, no drop in helpfulness, within cost budget. - **Promotion to `staging`:** If it passes, a script uses the LangSmith SDK to move the `staging` tag to this new commit hash. Your staging application, which pulls the `your-prompt:staging` tag, will automatically start using the new prompt. - - **Promotion to `prod`:** This is often a **manual step**. After the team has reviewed the performance in the staging environment and is confident in the results, a team member can manually move the `prod` tag in the LangSmith UI. This final human check is a crucial safety measure. + - **Promotion to `prod`:** This is often a **manual step**, a team member can move the `prod` tag in the LangSmith UI after reviewing performance in staging. However, if your evaluation pipeline is trustworthy and consistently reflects real-world performance, this step can be automated (e.g., [canary deployments](https://semaphore.io/blog/what-is-canary-deployment) with rollback monitoring), and the prod tag can be advanced programmatically using the LangSmith SDK. ## Sync prompts in production