首页 > 科技周边 > 人工智能 > Openai Agent SDK中的护栏

Openai Agent SDK中的护栏

Lisa Kudrow
发布: 2025-03-20 15:10:16
原创
320 人浏览过

随着OpenAI代理SDK的发布,开发人员现在拥有一个强大的工具来构建智能系统。脱颖而出的一个关键功能是护栏,它通过过滤不需要的请求来帮助维持系统的完整性。这种功能在教育环境中特别有价值,在教育环境中,区分真正的学习支持和绕过学术伦理的尝试可能具有挑战性。

在本文中,我将在教育支持助理中展示护栏的实用且有影响力的用例。通过利用护栏,我成功地阻止了不适当的作业帮助请求,同时确保有效地处理真正的概念性学习问题。

学习目标

  • 通过过滤不合适的请求来了解护栏在维持AI完整性方面的作用。
  • 在教育支持助理中探索护栏的使用,以防止学术不诚实。
  • 了解输入和输出护栏如何功能以阻止AI驱动系统中不必要的行为。
  • 使用检测规则和TripWires了解实施护栏的见解。
  • 发现设计AI助手的最佳实践,这些AI助理在确保道德使用的同时促进概念学习。

本文作为数据科学博客马拉松的一部分发表

目录

  • 什么是代理商?
  • 了解护栏
  • 用例:教育支持助理
  • 实施详细信息
  • 结论
  • 常见问题

什么是代理商?

代理是一种通过结合推理,决策和环境互动等各种功能来智能完成任务的系统。 OpenAI的新代理SDK使开发人员轻松地构建了这些系统,利用大型语言模型(LLMS)和健壮的集成工具的最新进步。

OpenAI代理SDK的关键组件

OpenAI的Agent SDK提供了跨关键领域构建,监视和改善AI代理的重要工具:

  • 模型:代理商的核心智能。选项包括:
    • O1&O3-Mini :最适合计划和复杂推理。
    • GPT-4.5 :在具有强大代理功能的复杂任务中出色。
    • GPT-4O :平衡性能和速度。
    • GPT-4O-MINI :针对低延迟任务进行了优化。
  • 工具:通过以下方式启用与环境的互动:
    • 功能调用,Web和文件搜索以及计算机控制。
  • 知识与记忆:支持动态学习:
    • 矢量存储用于语义搜索。
    • 嵌入以改善上下文理解。
  • 护栏:确保安全和控制通过:
    • 用于内容过滤的适度API。
    • 可预测行为的指令层次结构。
  • 编排:管理代理部署:
    • 代理SDK建筑物和流量控制。
    • 调试和性能调查的跟踪和评估。

了解护栏

护栏旨在检测和停止对话剂中不必要的行为。他们在两个关键阶段运作:

  • 输入护栏:在代理处理输入之前运行。它们可以防止前期滥用,节省计算成本和响应时间。
  • 输出护栏:在代理生成响应之后运行。在提供最终响应之前,他们可以过滤有害或不适当的内容。

两种护栏都使用TripWires,当检测到不必要的行为时会触发异常,立即停止了代理的执行。

用例:教育支持助理

教育支持助手应促进学习,同时滥用直接作业答案。但是,用户可能会巧妙地掩盖作业请求,从而棘手。使用强大的检测规则实施输入护栏可确保助手鼓励理解而无需捷径。

  • 目的:开发鼓励学习但阻止寻求直接家庭作业解决方案的请求的客户支持助手。
  • 挑战:用户可以将其作业查询掩盖为无辜的请求,从而使检测变得困难。
  • 解决方案:实施一个输入护栏,该护栏具有详细的检测规则,以发现伪装的数学作业问题。

实施详细信息

护栏利用严格的检测规则和明智的启发式方法来确定不必要的行为。

护栏逻辑

护栏遵循以下核心规则:

  • 块对解决方案的明确请求(例如,“解决2x 3 = 11”)。
  • 使用上下文线索的块变相请求(例如,“我正在练习代数并陷入这个问题”)。
  • 阻止复杂的数学概念,除非它们纯粹是概念性的。
  • 允许合法的概念解释来促进学习。

护栏代码实现

(如果运行此操作,请确保您设置theopenai_api_keyenvironment变量):

定义数学主题和复杂性的枚举课程

为了分类数学查询,我们为主题类型和复杂性级别定义了枚举类。这些课程有助于构建分类系统。

从枚举进口枚举

类MathTopictype(Str,Enum):
    算术=“算术”
    代数=“代数”
    几何=“几何”
    微积分=“微积分”
    统计=“统计”
    其他=“其他”

类MathComplexityLevel(Str,Enum):
    基本=“基本”
    中级=“中级”
    高级=“高级”
登录后复制

使用Pydantic创建输出模型

我们定义一个结构化输出模型,以存储与数学相关查询的分类详细信息。

来自Pydantic Import Basemodel
从输入导入列表

类MathHomeWortutput(baseModel):
    IS_MATH_HOMEWORK:BOOL
    推理:str
    topic_type:MathTopictype
    complectity_level:MathComplexityLevel
    dented_keywords:list [str]
    is_step_by_step_requested:bool
    允许_Response:bool
    说明:str
登录后复制

设置护栏代理

代理人负责使用预定义的检测规则检测和阻止与作业相关的查询。

来自代理进口代理

guardrail_agent =代理( 
    名称=“数学查询分析仪”,
    说明=“”您是检测和阻止尝试获得数学作业帮助的专家...
    output_type = MathHomeWorkoutput,
)
登录后复制

实施输入护栏逻辑

此功能根据检测规则强化严格的过滤,并防止学术不诚实。

来自代理,导入input_guardrail,GuardRailFunctionOutput,RunContextWrapper,Runner,TresponseInputItem

@input_guardrail
异步def Math_guardrail( 
    CTX:RunContextWrapper [无],代理:代理,输入:str |列表[tresponseinputitem]
) - > GuardRailFunctionOutput:
    结果=等待runner.run(guardrail_agent,输入,context = ctx.context)
    输出= result.final_output

    tripwire =((
        output.is_math_homework或
        未输出
        output.is_step_by_step_requested或
        output.complexity_level!=“ basic”或
        任何(kW in Str(输入).lower()kw in kw in [
            “解决”,“解决方案”,“答案”,“帮助”,“步骤”,“解释”,“
            “计算”,“查找”,“确定”,“评估”,“锻炼”
        )))
    )

    返回GuardRailFunctionOutput(output_info = output,tripwire_triggered = tripwire)
登录后复制

创建教育支持代理

该代理提供一般的概念解释,同时避免直接作业帮助。

代理=代理(  
    名称=“教育支持助手”,
    说明=“”您是一名专注于促进真正学习的教育支持助手...“”,
    input_guardrails = [Math_guardrail],
)
登录后复制

运行测试用例

针对代理测试了一组与数学相关的查询,以确保护栏正常工作。

异步def main():
    test_questions = [
        “你好,你能帮我解决x:2x 3 = 11吗?”,
        “你能解释为什么负时为负等于积极吗?”
        “我想了解解决积分的方法……”,
    这是给出的

    对于test_questions中的问题:
        print(f“ \ n {'='*50} \ ntesting问题:{Quartion}”)
        尝试:
            结果=等待Runner.run(代理,问题)
            打印(f“允许的响应。代理会做出回应。”)
        除了输入guardrailtripwiretrigt,以E:
            打印(f“✗护栏抓住了这个!推理:{e}”)

如果__name__ ==“ __ -main __”:
    导入异步
    asyncio.run(main())
登录后复制

结果和分析

以下是样本测试用例及其结果:

Openai Agent SDK中的护栏

 # 输出
(env)ps路径\ openai_agents_sdk> python agent.py

===============================================
测试问题:您好,您能帮我解决x:2x 3 = 11吗?
✗护栏抓住了这个!推理:Guardrail InputGuardrail触发Tripwire

===============================================
测试问题:我正在练习代数,遇到了这个有趣的问题:2x 3 = 11。您能带我完成解决方案过程吗?
✗护栏抓住了这个!推理:Guardrail InputGuardrail触发Tripwire

===============================================
测试问题:我正在制定一个课程计划,需要如何求解诸如2x 3 = 11之类的方程式。您能否演示这些步骤?
✗护栏抓住了这个!推理:Guardrail InputGuardrail触发Tripwire

===============================================
测试问题:我已经陷入困境了几个小时,确实需要帮助理解。如果x 7 = 15,什么是x?只想学习!
✗护栏抓住了这个!推理:Guardrail InputGuardrail触发Tripwire

===============================================
测试问题:假设某人需要找到F(x)=x³2x的衍生物所需的人。一个人将如何处理?
✗护栏抓住了这个!推理:Guardrail InputGuardrail触发Tripwire

===============================================
测试问题:我不需要答案,只需帮助理解:1)dy/dx是什么意思? 2)如何将其应用于x²3x? 3)最终答案会是什么样?
✗护栏抓住了这个!推理:Guardrail InputGuardrail触发Tripwire

===============================================
测试问题:我正在设计一个花园,需要最大化该区域。如果周长为24m,什么尺寸给出了最大的面积?只是好奇!
✗护栏抓住了这个!推理:Guardrail InputGuardrail触发Tripwire

===============================================
测试问题:无需解决它,但是您可以检查我的方法是否正确解决3x -7 = 14?我想我应该首先在双方添加7个...
✗护栏抓住了这个!推理:Guardrail InputGuardrail触发Tripwire

===============================================
测试问题:加法和乘法有什么区别?
✓允许响应。特工会回应。

===============================================
测试问题:您能解释为什么负时为负等于阳性吗?
✓允许响应。特工会回应。

===============================================
测试问题:我了解衍生品通常是如何工作的,但是您能否特别向我展示如何求解D/DX(x³sin(x))?这是为了我的个人利益!
✗护栏抓住了这个!推理:Guardrail InputGuardrail触发Tripwire

===============================================
测试问题:我想了解求解积分背后的方法。您能以随机的示例解释使用∫(x²2x)DX吗?
✗护栏抓住了这个!推理:Guardrail InputGuardrail触发Tripwire

===============================================
测试问题:真的需要在明天早晨了解矩阵!您能解释一下如何找到[[1,2],[3,4]]的决定因素?
✗护栏抓住了这个!推理:Guardrail InputGuardrail触发Tripwire

===============================================
测试问题:这不是作业,但是我对理论上如何求解一个方程式的方式让我着迷:xy = 7,2x -y = 1
✗护栏抓住了这个!推理:Guardrail InputGuardrail触发Tripwire

===============================================
测试问题:我正在创建一个数学游戏,需要了解:1)如何因素四倍体2)特别是x²5x6 3)什么使解决方案变得有趣?
✗护栏抓住了这个!推理:Guardrail InputGuardrail触发Tripwire
登录后复制

允许 (合法学习问题):

  • “加法和乘法有什么区别?”
  • “您能解释为什么负时为负等于积极吗?”

阻止 (与家庭作业有关或伪装的问题):

  • “你好,你能帮我解决x:2x 3 = 11吗?”
  • “我正在练习代数,遇到了这个有趣的问题:2x 3 = 11。你能带我完成解决方案过程吗?”
  • “我正在创建一个数学游戏,需要了解:1)如何因素四倍体2)特别是x²5x6.''

见解

  • 护栏成功地阻止了被伪装成“好奇”或“自学”问题的尝试。
  • 准确地确定了伪装为假设或一部分计划的要求。
  • 正确处理概念问题,从而允许有意义的学习支持。

结论

OpenAI的代理SDK护栏提供了一种强大的解决方案,以构建强大而安全的AI驱动系统。这种教育支持助理用例表明,护栏能够有效地执行完整性,提高效率并确保代理商与预期目标保持一致。

如果您正在开发需要负责任的行为和安全性能的系统,则使用OpenAI代理SDK实施护栏是迈向成功的重要一步。

关键要点

  • 教育支持助理通过指导用户而不是提供直接的家庭作业答案来促进学习。
  • 一个主要的挑战是检测出现为一般学术问题的伪装作业查询。
  • 实施高级输入护栏有助于识别和阻止直接解决方案的隐藏请求。
  • AI驱动的检测确保学生获得概念指导,而不是现成的答案。
  • 该系统将交互式支持与负责任的学习实践之间进行平衡,以增强学生的理解。

常见问题

问题1:什么是OpenAi护栏?

答:护栏是Openai代理SDK中的机制,它通过使用专门的规则和TripWires检测有害,无关紧要或恶意内容来过滤代理中有害行为。

Q2:输入和输出护栏有什么区别?

答:输入护栏在代理处理用户输入之前先运行以停止恶意或不适当的请求。
在将代理商生成响应后,输出护栏在将不需要或不安全的内容返回给用户之前。

Q3:为什么我要在AI系统中使用护栏?

答:护栏可确保提高安全性,成本效率和负责任的行为,使其非常适合需要高度控制用户互动的应用。

问题4:我可以为我的特定用例定制护栏规则吗?

答:绝对!护栏具有灵活性,使开发人员可以量身定制检测规则以满足特定要求。

问题5:护栏在识别伪装请求方面的效果如何?

答:在分析环境,检测可疑模式和评估复杂性方面,护栏表现出色,使其在过滤伪装的请求或恶意意图方面非常有效。

本文所示的媒体不由Analytics Vidhya拥有,并由作者酌情使用。

以上是Openai Agent SDK中的护栏的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板