首頁 > 科技週邊 > 人工智慧 > Openai Agent SDK中的護欄

Openai Agent SDK中的護欄

Lisa Kudrow
發布: 2025-03-20 15:10:16
原創
317 人瀏覽過

隨著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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板