Overview
Atlas Agent Engine 护栏允许项目管理员控制传入和传出代理模型调用的内容。管理员在项目中设立护栏,编排引擎 (OE) 通过阻止或修改匹配的输入和输出内容来执行护栏。
要将护栏应用一个或多个工作区,请在护栏的 workspace_ids字段中指定工作区。如果不指定此字段,则防护将应用于项目中的每个工作区。
护栏类型
每个护栏都有一个类型,它确定它评估什么内容,还有一个动作,它确定触发护栏时会发生什么。
目前, Atlas助手引擎仅支持 output_validation 护栏类型。您可以使用这种类型的护栏根据一设立正则表达式模式评估代理的输出。在护栏的 config.match_patterns字段中定义这些模式。
每个护栏指定以下操作之一:
操作 | 说明 |
|---|---|
| 拒绝来电。执行停止并向调用者返回错误。 |
| 删除或转换匹配的内容,并允许使用修改后的内容继续执行。 |
| 记录护栏触发的情况,并允许使用原始内容继续执行。 |
| 暂停执行以供人工查看。只有在审核者批准后,才会继续执行。 |
护栏阶段
护栏的阶段过滤决定了它是评估进入模型的内容、离开模型的内容还是两者兼而有之。不带阶段过滤的护栏适用于所有阶段。
下表描述了可用阶段:
阶段 | 评估内容 | Triggers When |
|---|---|---|
| 到达模型的用户内容 | 在模型调用之前 |
| 模型的响应 | 在响应返回给用户之前 |
护栏字段
下表描述了定义护栏的字段。您可以在平台用户界面中设立这些字段,也可以在 create 或 update API请求的JSON请求正文中设置这些字段。
字段 | Possible values | 说明 |
|---|---|---|
| 任何字符串 | (必需)护栏的显示名称。 |
| 任何字符串 | 对护栏用途的描述。 |
|
| (必需)护栏类型。 |
|
| (必需)触发护栏时要执行的操作。 |
|
| Atlas Agent Engine 是否强制执行护栏。 Atlas助手引擎执行状态为 |
|
| 护栏评估内容的阶段的数组。要评估这两个阶段,请同时列出 |
| 工作区 ID 数组 | 护栏适用的工作区数组。要将护栏应用项目中的每个工作区,请将此大量留空。 |
| 正则表达式模式数组 | 护栏将内容进行匹配的模式的数组。每个模式设置一个值为 |
|
| 应用与模式匹配的内容的行为。此字段仅当 |
创建和编辑护栏
您可以使用平台用户界面或REST API创建和编辑护栏。要查看说明,请选择首选方法的标签页:
导航到 Manage → Policies,然后选择 Guardrails标签页。
然后,通过单击 Create guardrail 按钮并配置 Create guardrail 对话框中的字段来创建护栏。要更新护栏,请单击护栏的 Edit 图标。要删除护栏,请单击其 Delete 图标。
下表列出了可用端点:
方法 | 端点 | 参考 |
|---|---|---|
|
| |
|
| |
|
| |
|
| |
|
|
调用创建和更新端点时,请将护栏的字段作为JSON请求正文传递。以下示例请求正文创建了一个护栏,用于编辑到达单个工作区中模型的内容中的任何三个连续数字:
{ "name": "Test guardrail", "description": "Redacts three-digit sequences", "type": "output_validation", "action": "modify", "status": "active", "stage_filter": ["llm_input"], "workspace_ids": ["ws-6a885deac97e9d280fa88cf3"], "config": { "match_patterns": [ { "type": "regex", "value": "\\d{3}" } ], "on_fail": "fix" } }
护栏传播
创建、更新或删除护栏后,更改将在操作环境处理的下一次执行时生效。护栏写入会重新加载 OE 缓存的护栏,因此更改对下一个请求有效。
护栏更改不会影响正在进行的执行。
执法
每次执行期间,操作环境都会根据应用于当前项目的护栏评估每个阶段的内容。下表描述了这些阶段和相应的评估内容:
阶段 | 评估内容 |
|---|---|
| 在模型调用之前评估用户内容。 |
| 模型的响应在返回给用户之前进行评估。 |
当触发具有 block动作的护栏时,操作环境会停止执行并向调用者返回错误。该错误标识了导致区块的护栏。当触发具有 modify动作的护栏时,将继续执行修改后的内容。
当多个护栏与相同内容匹配时,将应用限制性最强的动作。这些操作按以下顺序排列,从限制性最强到限制性最弱:
blockrequire_reviewmodifylog_only
示例,如果一个护栏返回 modify,另一个护栏返回 block,则 OE 会阻止调用。
限制
护栏具有以下限制:
仅限未来执行:Guardrail 更改仅应用于更改生效后开始的执行。已经在进行中的处决将继续执行它们开始时使用的护栏。