You need to enable JavaScript to run this app.
文档中心
复制全文
下载 pdf
SDK 参考
高危操作检测
复制全文
下载 pdf
高危操作检测
高危操作检测用于在工具实际执行前,检测模型生成的 Tool Call 是否包含可能危害系统、网络或数据安全的操作。业务系统通过 SDK 调用 Moderate 接口送检工具名称和参数,并根据返回结果决定是否执行工具。​
前提条件​
  • 已创建 SDK 接入方式的大模型应用防护资产,并获取资产 AppID。​
  • 已获取具有 SDK 调用权限的 Access Key ID(AK)和 Secret Access Key(SK)。​
  • 已安装 Message 类型中包含 ToolCall 字段的 SDK 版本。​
  • 已为资产配置高危操作防护规则,并确认规则已开启并生效。​
实现流程​
  1. 从模型响应中获取待执行的 Tool Call,暂不执行对应工具。​
  1. 构造 ModerateV2Request,将资产 AppID 传入 Scene。​
  1. 将 Message.Role 设置为 assistant,并通过 Message.ToolCall 传入工具名称和参数。​
  1. 调用 Moderate 接口。​
  1. 检查 Result.Degraded。当其值为 true 或未获得有效检测结果时,不要默认执行工具。​
  1. 读取 Result.Decision.DecisionType。通过返回值决定是否继续执行工具调用。​
请求参数​
​
字段​
类型​
说明​
Scene​
String​
SDK 接入资产的 AppID。​
Message​
MessageV2​
当前待检测的模型消息。​
Message.Role​
String​
固定设置为 assistant,表示送检内容来自模型响应。​
Message.Content​
String​
可以为空。高危操作检测主要根据 ToolCall 中的工具名称和参数判断风险。​
Message.ContentType​
ContentTypeV2​
示例中设置为文本类型。​
Message.ToolCall​
Array of ToolCall​
模型生成的待执行工具调用列表。必须在实际执行工具前送检。​
Message.ToolCall[].ID​
String​
工具调用 ID,用于标识本次工具调用。​
Message.ToolCall[].Type​
String​
工具类型,当前固定设置为 function。​
Message.ToolCall[].Function​
FunctionCall​
待调用的工具或函数信息。​
Message.ToolCall[].Function.Name​
String​
待调用的工具名称。​
Message.ToolCall[].Function.Arguments​
String​
工具参数,必须使用 JSON 字符串格式传入。高危操作防护会结合工具名称和参数判断风险。​
​
示例代码​
请将以下示例中的服务地址、地域、资产 AppID、AK 和 SK 替换为实际值。服务地址和地域必须与大模型应用防火墙实例保持一致。​
以下示例模拟模型调用 PowerShell 修改防火墙规则,并在工具执行前进行检测。​
​
Go
Python
Java
​
​
package main​
​
import (​
"fmt"​
"time"​
​
"github.com/volcengine/volcengine-go-sdk/service/llmshield"​
)​
​
func main() {​
endpoint := "https://your-llmshield-endpoint"​
ak := "your-access-key"​
sk := "your-secret-key"​
region := "cn-beijing"​
appID := "your-app-id"​
​
client := llmshield.New(endpoint, ak, sk, region, 30*time.Second)​
​
request := &llmshield.ModerateV2Request{​
Scene: appID,​
Message: &llmshield.MessageV2{​
Role: "assistant",​
Content: "",​
ContentType: llmshield.ContentTypeV2_TEXT,​
ToolCall: []*llmshield.ToolCall{​
{​
ID: "call_high_risk_001",​
Type: "function",​
Function: &llmshield.FunctionCall{​
Name: "PowerShell",​
Arguments: `{"script":"New-NetFirewallRule ` + `-DisplayName 'Block' -Direction Inbound -Action Block"}`,​
},​
},​
},​
},​
}​
​
response, err := client.Moderate(request)​
if err != nil {​
panic(err)​
}​
fmt.Println(response.String())​
}​
​
​
返回结果处理​
​
字段或状态​
类型​
处理建议​
Result​
ModerateV2Result​
检测结果,包含风险信息、处置决策和降级状态。​
Result.Degraded=true​
Boolean​
表示至少一项预期检测或后续处理未完整完成。不要仅根据 DecisionType=1 判断工具调用安全,应结合 Result.DegradeReason 制定处置策略。​
Result.DegradeReason​
String​
返回原始降级原因,仅当 Result.Degraded=true 时可能有值。多个原因可能使用竖线(|)分隔。​
Result.Decision​
DecisionV2​
检测结果的整体处置决策。​
Result.Decision.DecisionType=1​
DecisionTypeV2​
表示通过,可进入原有工具执行流程。​
Result.Decision.DecisionType=2​
DecisionTypeV2​
表示拦截,可结合业务需要决定是否终止本次工具调用,禁止执行。​
Result.Decision.DecisionType=3​
DecisionTypeV2​
表示命中观察规则但被放行,可继续处理,并建议保留命中记录用于策略调优。​
​
使用限制​
  • 高危操作检测的防护对象是模型生成的待执行 Tool Call。工具执行后的返回内容不表示已经完成高危操作检测。​
  • 检测结果可能存在误报或漏报。建议先使用观察规则验证真实业务流量,再根据验证结果启用拦截。​
  • 对于具有不可逆影响的操作,仍应结合最小权限、参数白名单、人工确认和审计等机制降低风险。​
​
最近更新时间:2026.10.22 21:32:36
这个页面对您有帮助吗?
有用
有用
无用
无用