使用 CrowdStrike AIDR 为 LLM 应用构建输入输出安全护栏:NeMo Guardrails 集成实战

发布时间:2026/9/29 2:39:10

使用 CrowdStrike AIDR 为 LLM 应用构建输入输出安全护栏:NeMo Guardrails 集成实战 人工智能大模型AI 安全治理模型安全内容安全提示词注入防护RAG【免费下载链接】GuardrailsNeMo Guardrails is an open-source toolkit for easily adding programmable guardrails to LLM-based conversational systems.项目地址https://gitcode.com/gh_mirrors/ne/Guardrails点击查看免费下载NeMo Guardrails 提供了一套开箱即用的 CrowdStrike AIDRAI Data Runtime集成方案通过crowdstrike aidr guard input与crowdstrike aidr guard output两条守卫流程把用户输入与模型输出实时提交给 CrowdStrike 的 AI Guard 服务进行检测、屏蔽与改写。读完本文你将掌握该示例配置的完整使用方法含环境变量、超时参数与 CLI 验证方式并从源码层面理解其 allow/block/transform 三态决策与失败开放fail-open机制可直接复制到自己的对话系统中。示例概览一行配置接入 AIDR仓库中的 examples/configs/crowdstrike_aidr 目录包含两个文件README.md演示如何通过 CLI Chat 快速验证该配置config.yml完整的 Rails 配置声明主模型、系统指令、守卫流程以及 AIDR 可选参数。其核心思路是将crowdstrike aidr guard input挂到rails.input.flows将crowdstrike aidr guard output挂到rails.output.flows从而让每一次用户提问与每一次模型应答都经过 CrowdStrike AIDR 的保护。该集成属于社区第三方守卫完整能力清单allow、block、classify、content_safety、detect_jailbreak、detect_pii、moderate、transform定义在 rail.py 的 RailManifest 元数据中。配置文件逐段解析config.yml 的完整内容如下models: - type: main engine: openai model: gpt-4o-mini instructions: - type: general content: You are a helpful assistant. rails: config: crowdstrike_aidr: timeout: 15.0 # Optional request timeout in seconds. Defaults to 30 seconds. input: flows: - crowdstrike aidr guard input output: flows: - crowdstrike aidr guard output各段含义如下models声明主对话模型示例使用 OpenAI 引擎的gpt-4o-mini。你可以按需替换为其他受支持的模型提供方。instructions系统指令与用户消息、模型应答一起被组装进提交给 AIDR 的对话消息序列。rails.config.crowdstrike_aidr.timeout可选参数单位为秒用于设置向 CrowdStrike AIDR API 发起请求的超时时间示例设为15.0。默认值为 30 秒该默认值定义在 rail_config.py 的CrowdStrikeAIDRRailConfig中。若不配置该段则使用 30 秒默认超时。rails.input.flows注册输入守卫流程所有用户消息在进入对话系统前先经 AIDR 检查。rails.output.flows注册输出守卫流程模型生成的应答在返回给用户前先经 AIDR 检查。参数配置的源码实现rails.config.crowdstrike_aidr一节由 rail_config.py 定义CrowdStrikeAIDRRailConfig继承自RailConfigBaseModel目前仅有一个timeout字段类型为float默认30.0描述为 Timeout in seconds for API requests to CrowdStrike AIDR。它通过build_config_spec()注册为守卫的配置规范并被 actions.py 中的get_crowdstrike_aidr_config()读取——若配置中不存在该段则回退到默认配置对象。环境变量与前置条件从 rail.py 的RailRequirements可以看出该集成依赖以下环境变量与服务项目名称是否必需说明环境变量CS_AIDR_TOKEN必需CrowdStrike AIDR API 访问令牌用于Authorization: Bearer token请求头环境变量CS_AIDR_BASE_URL_TEMPLATE可选API 基础地址模板默认https://api.crowdstrike.com/aidr/{SERVICE_NAME}服务CrowdStrike AIDR API必需远程守卫服务提供guard_chat_completions接口其中默认的基础地址模板定义在 actions.py。实际请求端点由模板中的{SERVICE_NAME}替换为aiguard后拼接/v1/guard_chat_completions得到https://api.crowdstrike.com/aidr/aiguard/v1/guard_chat_completions隐私与数据外发说明根据 rail.py 的RailPrivacy声明该守卫会将用户文本sends_user_textTrue与机器人文本sends_bot_textTrue发送到远程的 CrowdStrike AIDR API。在启用此守卫前请确保你的数据外发策略与合规要求允许将对话内容传输至第三方服务并妥善保管CS_AIDR_TOKEN建议通过密钥管理或环境注入方式提供而不是硬编码在配置文件中。运行与验证CLI Chat 实操按 README.md 的说明在examples/configs/crowdstrike_aidr目录下执行uv run nemoguardrails chat --config.--config.表示将当前目录作为配置目录加载其中config.yml会被自动识别。启动前请确认已设置CS_AIDR_TOKEN环境变量主模型gpt-4o-mini的 API Key 已按常规方式配置网络可访问 CrowdStrike AIDR API 端点。若缺少CS_AIDR_TOKEN守卫动作会抛出ValueError(CS_AIDR_TOKEN environment variable is not set.)见 actions.py表现为对话内部错误这一点在 test_crowdstrike_aidr_guard.py 中有对应测试覆盖。工作原理从请求到三态决策消息组装与请求发送crowdstrike_aidr_guard动作定义于 actions.py是整套集成的核心执行流程如下读取CS_AIDR_TOKEN缺失则抛ValueError读取配置中的timeout组装消息序列系统指令rolesystem 用户消息roleuser若为输出守卫则追加机器人消息roleassistant以POST方式向/v1/guard_chat_completions发送 JSON 负载{guard_input: {messages: [...]}}请求头包含 Bearer Token 与User-Agent: NeMo Guardrails解析响应为GuardChatCompletionsResponse其result包含blocked、transformed、guard_output等字段定义见 actions.py从guard_output.messages中提取改写后的user_message与bot_message交由_crowdstrike_aidr_outcome()转换为守卫决策。三态决策allow / block / transform转换逻辑位于 actions.py 的_crowdstrike_aidr_outcome()优先级为block transform allowblock响应中blockedTrue时直接返回RailOutcome.block()消息被拦截transformtransformedTrue时根据守卫方向选择改写目标——输入守卫改写USER_MESSAGE输出守卫改写BOT_MESSAGE对应TransformTarget枚举并使用 AIDR 返回的脱敏/改写后文本替换原消息allow既未拦截也未改写时放行原消息原样通过。决策结果连同guard_output、user_message、bot_message一起写入元数据便于日志追踪与观测。四种典型场景allow、block、输入改写、输出改写在 test_crowdstrike_aidr_guard.py 的参数化测试中有完整断言其中输入改写会把James Bonds email is j.bondmi6.co.uk转换为James Bonds email is EMAIL_ADDRESS之类的脱敏结果。Colang 流程中的落地守卫流程用 Colang 语言定义在 flows.cov2.x 语法与 flows.v1.cov1 语法中两者逻辑等价调用CrowdstrikeAidrGuardAction(modeinput/output)获取响应若$response.is_blocked当$system.config.enable_rails_exceptionsv1 为$config.enable_rails_exceptions开启时抛出CrowdStrikeAidrGuardRailException异常否则向用户回复 I dont know the answer to thatbot inform answer unknown并中止流程若$response.is_transform将改写后的文本写回全局的$user_message或$bot_message后续流程使用改写后的安全内容继续。失败开放Fail-Open行为与可靠性CrowdStrike AIDR 集成对可预期的提供方故障采取失败开放策略这是其可用性设计的关键具体见 actions.py 的 docstring 与try/except结构HTTP 状态错误如 429、500、502、503、504记录HTTP status error from CrowdStrike AIDR API日志传输故障连接失败等HTTPClientError记录Error calling CrowdStrike AIDR API日志畸形 JSON 或响应结构校验失败ValidationError同样记录日志。以上情况均回退为GuardChatCompletionsResult默认值blockedFalse, transformedFalse保留原始消息最终返回allow决策——即 AIDR 服务不可用时对话不会被误拦截保障业务连续性。而CS_AIDR_TOKEN缺失这类编程配置错误则不会被吞掉会直接抛出异常暴露问题。测试 test_crowdstrike_aidr_guard.py 分别覆盖了 5xx/429 状态码、连接失败、非 JSON 响应、空对象响应等场景断言这些情况下结果均为未拦截、未改写且原始user_message与bot_message得以保留。生产落地建议基于上述源码行为将本示例接入生产环境时建议关注以下几点密钥管理通过安全的方式注入CS_AIDR_TOKEN避免写入版本库必要时通过CS_AIDR_BASE_URL_TEMPLATE指向私有部署或代理端点。超时调优按上游延迟实测调整rails.config.crowdstrike_aidr.timeout默认 30 秒。过短容易触发 fail-open 放行过长会拖慢对话首响延迟。异常策略如需对拦截事件做显式异常处理而非统一回复 I dont know the answer to that可在 Rails 配置中启用enable_rails_exceptions配合 flows.co 中定义的CrowdStrikeAidrGuardRailException定制错误响应。观测与审计RailOutcome 元数据中携带blocked、transformed、guard_output等字段可接入 NeMo Guardrails 的日志与追踪体系便于审计 AIDR 的拦截与改写行为。测试验证仓库中的 test_crowdstrike_aidr_guard.py 提供了基于pytest-httpx与TestChat的完整测试范式可在不真实调用 AIDR 服务的前提下验证拦截、改写与故障回退逻辑可作为你集成测试的起点。小结CrowdStrike AIDR 示例展示了 NeMo Guardrails 接入第三方内容安全/数据保护服务的最小可运行范式两个守卫流程 一段rails.config参数 两个环境变量即可完成双向保护。其底层通过系统动作crowdstrike_aidr_guard完成消息组装、API 调用与三态决策转换并以失败开放策略保证了服务不可用时的可用性。在此基础上你可以将同样的模式推广到其他自定义守卫或进一步扩展CrowdStrikeAIDRRailConfig以适配更多 AIDR 能力。赞分享人工智能大模型AI 安全治理模型安全内容安全提示词注入防护RAG【免费下载链接】GuardrailsNeMo Guardrails is an open-source toolkit for easily adding programmable guardrails to LLM-based conversational systems.项目地址https://gitcode.com/gh_mirrors/ne/Guardrails点击查看免费下载相关推荐VoltAgent LLM Guardrails 实战指南为 AI Agent 构建输入输出安全护栏VoltAgent LLM Guardrails 实战指南为 AI Agent 构建输入输出安全护栏 导读 本文以 VoltAgent 开源 TypeScri人工智能AI AgentAgent 框架后端多智能体RAG工具调用Agent 记忆Agent 工作流AI 评测MCP 服务MCP Clients语音MOSS-VoiceGenerator 竞技场胜率分析对比顶级闭源声音设计模型MOSS VoiceGenerator 竞技场胜率分析对比顶级闭源声音设计模型 MOSS VoiceGenerator 是 MOSS TTS 家族中开源的声音人工智能大模型AI 安全治理模型安全内容安全提示词注入防护RAGGuardrails 框架实战指南为 LLM 应用构建输入/输出护栏与结构化数据生成Guardrails 框架实战指南为 LLM 应用构建输入/输出护栏与结构化数据生成 Guardrails 是一个 Python 框架用于为 LLM大语言AI 安全治理模型安全AI 应用上一篇AWS Amplify JS与AppSync实时数据同步终极指南构建响应式应用的10个关键技巧下一篇如何快速上手AnimateAnyoneAI动画生成神器的完整使用指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/29 2:39:10

进程创建原理与实战:fork/exec与CreateProcess对比

1. 先弄清楚这道练习到底要你交付什么“课堂练习3.2:进程的创建”这种题目,第一眼看上去平平无奇,就是让程序里多出一个进程而已。可真坐到机器前面敲代码,你会发现它牵出来的东西特别多:操作系统怎么描述进程、内核用…

2026/9/29 2:39:10

光的几何起源:从螺旋时空到量子现象的深度解析

我一直觉得,“光的几何起源”是个被低估的思考方式。当太阳镜挡住刺眼的白光,当肥皂泡在阳光下泛起彩色条纹,当双缝实验里单个光子自己和自己干涉——你其实正在目睹量子现象与时空几何在同一次事件里同时登场。这篇文章想做的,正…

2026/9/29 3:34:12

VMware虚拟机安装Ubuntu 22.04:配置、避坑与开发环境

手里一台装着Windows的电脑,想跑Linux环境写代码、试软件、折腾各种开源工具,最省事的办法是什么?我折腾了七八年,答案一直没变:在VMware虚拟机里装一个Ubuntu 22.04。它不像双系统那样动不动就把引导搞崩,…

2026/9/29 3:34:12

tick-stock-panel测试体系拆解:260+测试用例背后的测试矩阵设计思路

tick-stock-panel测试体系拆解:260测试用例背后的测试矩阵设计思路 【免费下载链接】tick-stock-panel TSP自托管、零运维的 A 股「选股 监控 回测」量化工作台 | LLM能力驱使策略定制个股分析复盘 | 自由接入第三方数据源与个性化扩展数据 | 个人开源 项目地址…

2026/9/29 3:34:12

运维存储知识全景:从RAID、文件系统到对象存储排查指南

干运维这行,我越来越笃定一件事:存储是所有IT系统的地基。网络断了可以等恢复,服务挂了可以重启,但数据没了就是真没了。这些年我见过太多把存储当成“一个大硬盘”来用的同事,等真的遇到容量告警、IO延迟飙高、单盘故…

2026/9/29 3:34:12

DeepSeek接入OpenClaw完整指南:API key与模型配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/29 3:29:12

Java学习进程14

线程安全问题 1 在 Java多线程编程中,多个线程可能会同时访问和修改同一个共享资源。当多个线程并发执行时,如果没有采取适当的同步机制,就可能导致数据不一致、数据丢失等问题,这种现象称为线程安全问题。 核心 当多个线程同时操…

2026/9/28 3:03:23

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/28 6:05:15

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/28 6:07:41

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 0:04:04

AI Evals实战指南:从零搭建LLM应用评估体系与CI/CD集成

1. 为什么AI Evals值得你花时间搞明白做LLM应用的人,迟早会撞上同一堵墙:模型输出飘忽不定,今天答得好好的,明天换个问法就胡说八道。你改了一版提示词,感觉好像好了点,但到底好了多少?说不清。…

2026/9/29 0:04:04

Java采购管理系统实战:从数据库设计到事务一致性

简介:这是一套面向Java Web初学者与课程设计者的采购管理系统完整源码,采用JSP技术搭建,配合MySQL数据库,用于解决企业采购信息的管理问题,适合作为毕业设计、课程大作业或进销存类项目的参考模板。系统实现了用户登录…

2026/9/25 20:55:38

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/26 19:58:38

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/28 1:59:25

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑