> ## Documentation Index
> Fetch the complete documentation index at: https://cndoc-langchain.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 管理提示

> 在 LangSmith 中管理提示版本、环境和访问控制。

LangSmith 提供了多种工具来帮助您有效地管理 [*提示*](/langsmith/prompt-engineering-concepts)。本页描述以下功能：

* [环境](#environments)，用于通过 **Staging** 和 **Production** 推广提交。
* [提交标签](#commit-tags)，用于版本控制和环境管理。
* [提示所有者](#prompt-owners)，用于控制谁可以推广提交和删除提示。
* [Webhook 触发器](#trigger-a-webhook-on-prompt-commit)，用于在提示更新时自动化工作流。
* [公共提示中心](#public-prompt-hip)，用于发现和使用社区创建的提示。

## 提示详情页

从 [**提示** 表格](/langsmith/create-a-prompt#view-your-prompts) 中选择一个提示以打开其详情页，该页面采用双窗格布局：提交历史和环境显示在左侧，提交详情显示在右侧。

您可以通过切换右上角的 **Diff** 来比较一个提交与其先前版本。

## 环境

环境代表命名的部署目标，**Staging** 和 **Production**，您可以将它们分配给特定的提交。它们让您能够跟踪每个环境中活跃的提示版本，并在环境之间推广提交。

环境由保留的 [提交标签](#commit-tags)（`staging` 和 `production`）定义，这些标签通过推广 UI 管理，而不是通过自由格式标签选择器。

### 推广提交

推广提交会将其分配给一个环境。您可以将任何提交推广到 Staging 或 Production。

要推广提交：

1. 将鼠标悬停在左窗格中的某个提交上以显示 **推广**，或点击页面右上角的 **推广**。从下拉菜单中选择 **Staging** 或 **Production**。
2. 一个部署模态框打开，显示当前分配给该环境并将被替换的提交。
3. 确认推广。环境指针会立即更新。

<Note>
  将提交推广到 Production 不会将其从 Staging 中移除。如果一个提交在 Staging 中，您将其推广到 Production，它也会保留在 Staging 中。
</Note>

### 回滚环境

每个环境维护一个有序的历史记录，记录哪些提交被分配给它以及何时分配。要回滚到先前的提交：

1. 在左窗格中，找到您要回滚的环境。
2. 点击该环境的回滚图标。
3. 从显示的 **回滚历史** 中，选择您要回滚到的提交。环境指针将更新到该提交。

## 提交标签

[*提交标签*](/langsmith/prompt-engineering-concepts#tags) 是引用提示版本历史中特定 [*提交*](/langsmith/prompt-engineering-concepts#commits) 的标签。它们帮助您标记重要版本并控制哪些版本在不同环境中运行。通过在代码中引用标签而不是提交 ID，您可以在不修改代码本身的情况下更新正在使用的版本。

每个标签恰好引用一个提交，尽管您可以重新分配标签以指向不同的提交。

<Note>
  **保留标签：** `staging` 和 `production` 标签保留用于环境管理，在自由格式标签选择器中未启用。请使用 [推广流程](#promote-a-commit) 将提交分配给这些环境。
</Note>

<Note>
  **不要与资源标签混淆**：提交标签特定于提示版本控制，并引用提示历史中的单个提交。[资源标签](/langsmith/set-up-resource-tags) 是用于组织工作区资源（如项目、数据集和提示）的键值对。虽然两者都可以使用类似的命名约定（如 `prod` 或 `staging`），但提交标签控制提示的 **哪个版本** 运行，而资源标签帮助您 **组织和筛选** 工作区中的资源。
</Note>

### 创建标签

要创建标签，请在提示详情页的左窗格中选择您要标记的提交。点击右窗格右上角的 **标签**。在下拉菜单中，点击 **提交标签** 并输入名称。

### 移动标签

要将标签指向不同的提交，请在提示详情页的左窗格中选择目标提交。点击右窗格右上角的 **标签**。在下拉菜单中，选择您要移动的标签。这会自动更新标签以指向新的提交。

### 删除标签

要删除标签，请点击右窗格右上角的 **标签**。（选择哪个提交无关紧要）。在下拉菜单中，点击您要删除的标签旁边的删除图标。这会完全移除该标签，它将不再与任何提交关联。

### 在代码中使用标签

标签提供了一种稳定的方式来在代码中引用提示的特定版本。您可以引用标签，而不是直接使用提交哈希，这些标签可以在不更改代码的情况下更新。

以下是在 Python 中通过标签拉取提示的示例：

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
prompt = client.pull_prompt("joke-generator:production")
# 如果 production 标签指向提交 a1b2c3d4，这等同于：
prompt = client.pull_prompt("joke-generator:a1b2c3d4")
```

有关如何在代码中使用提示的更多信息，请参阅 [以编程方式管理提示](/langsmith/manage-prompts-programmatically)。

## 提示所有者

提示所有者功能让您能够精细控制谁可以标记提交和删除特定提示。这对于生产推广流程很有用，您希望限制哪些团队成员可以通过分配或移动标签将提交推广到环境。

### 访问模式

每个提示有两种访问模式，在 [UI](https://smith.langchain.com) 的 **访问和权限** 下配置：

* **工作区授权用户**（默认）：任何具有 [`prompts:tag`](/langsmith/organization-workspace-operations#prompts) 权限的工作区用户都可以创建、更新和删除标签以及删除提示。
* **仅所有者**：只有添加为提示所有者的用户才能创建或更新提交标签、将提交推广到环境以及删除提示。

LangSmith 会自动将提示创建者添加为所有者。

### 配置访问和权限

1. 在 LangSmith UI 中打开提示。
2. 点击右上角的 <Icon icon="dots-vertical" /> **更多** 图标，然后选择 **访问和权限**。
3. 选择 **仅所有者** 模式。
4. 从所有者组中添加或移除用户。

<Warning>
  如果您保存的更改将您自己从所有者中移除，您将失去管理所有者或将提示切换回工作区授权用户模式的能力。只有另一个所有者才能恢复您的访问权限。
</Warning>

当 **仅所有者** 模式处于活动状态时，只有所有者才能禁用它或添加或移除其他所有者。

## 在提示提交时触发 Webhook

您可以配置一个 webhook，以便在对提示进行提交时触发。

一些常见的用例包括：

* 当提示更新时触发 CI/CD 流水线。
* 将提示与 GitHub 仓库同步。
* 将提示修改通知团队成员。

### 配置 Webhook

导航到左侧边栏或应用程序主页中的 **提示** 部分。在右上角，点击 `+ Webhook` 按钮。

添加一个 webhook URL 和任何所需的标头。

<Note>
  每个工作区只能配置一个 webhook。如果您想为每个工作区配置多个 webhook 或为每个提示设置不同的 webhook，请在 [LangChain 论坛](https://forum.langchain.com/) 中告知我们。
</Note>

要测试您的 webhook，请点击 **发送测试通知** 按钮。这将向您提供的 webhook URL 发送一个带有示例负载的测试通知。

示例负载是一个 JSON 对象，包含以下字段：

* `prompt_id`：被提交的提示的 ID。
* `prompt_name`：被提交的提示的名称。
* `commit_hash`：提示的提交哈希。
* `created_at`：提交的日期。
* `created_by`：提交的作者。
* `manifest`：提示的清单。

### 触发 Webhook

对提示进行提交以触发您配置的 webhook。

#### 使用 Playground

如果您在 Playground 中执行此操作，系统将提示您取消选择您希望避免触发的 webhook。

<img src="https://mintcdn.com/other-405835d4/qGIFx6qJGHuQoTQQ/langsmith/images/commit-playground.png?fit=max&auto=format&n=qGIFx6qJGHuQoTQQ&q=85&s=eafd85cc4a7ab1404095c4116dba644d" alt="提交 Playground" width="736" height="540" data-path="langsmith/images/commit-playground.png" />

#### 使用 API

如果您通过 API 提交，可以通过将 `skip_webhooks` 参数设置为 `true` 或要忽略的 webhook ID 数组来指定跳过触发 webhook。有关更多信息，请参阅 [API 文档](https://api.smith.langchain.com/redoc#tag/commits/operation/create_commit_api_v1_commits__owner___repo__post)。

## 公共提示中心

LangSmith 的公共提示中心是 LangChain 社区创建的提示集合，您可以将其用作参考。

<Note>
  请注意，提示是用户生成且未经验证的。LangChain 不审查或认可公共提示，使用风险自负。使用提示中心须遵守我们的 [服务条款](https://www.langchain.com/terms-of-service)。
</Note>

导航到左侧边栏的 **提示** 部分，然后点击 **浏览 LangChain Hub 中的所有公共提示**。

在这里，您将找到 LangChain Hub 中所有公开列出的提示。您可以按名称、句柄、用例、描述或模型搜索提示。您可以将提示分叉到您的个人组织，查看提示的详细信息，并在 Playground 中运行提示。您可以使用 SDK [将任何公共提示拉取到您的代码中](/langsmith/manage-prompts-programmatically)。

要查看与您的工作区关联的提示，请导航到侧边栏中的 **提示**。

<img src="https://mintcdn.com/other-405835d4/l3RGLkJgudfiL0L9/langsmith/images/prompts-tab.png?fit=max&auto=format&n=l3RGLkJgudfiL0L9&q=85&s=00f1b92f1fe9c17023c510d9d59b186d" alt="提示选项卡" width="3012" height="1704" data-path="langsmith/images/prompts-tab.png" />

***

<div className="source-links">
  <Callout icon="terminal-2">
    [将这些文档连接](/use-these-docs)到 Claude、VSCode 等，通过 MCP 获取实时答案。
  </Callout>

  <Callout icon="edit">
    [在 GitHub 上编辑此页面](https://github.com/langchain-ai/docs/edit/main/src/langsmith/manage-prompts.mdx) 或 [提交问题](https://github.com/langchain-ai/docs/issues/new/choose)。
  </Callout>
</div>
