白天躁夜夜躁|亚洲激情六月开心网|禁止181000亚洲第一丝袜91|一级高清无码在线观看|涩爱Av一级毛片|最新熟女AV高清|亚洲精品98久久久久久中文字幕|色婷婷日日夜夜|无码成年人影视|色五月之影音先锋

400-8166108
行業(yè)動態(tài)
在這里,聆聽大咖的聲音
OpenAI定義Agent新范式:構建自動化系統(tǒng)的模板
由 辰智信息 發(fā)布于2025-03-17

隨著人工智能技術的飛速發(fā)展,AI已經從簡單的文本生成和圖像識別,逐漸走向更復雜的任務自動化。今天,我們來聊聊一個令人興奮的新進展——OpenAI推出的一系列新工具和API,旨在幫助開發(fā)者和企業(yè)更輕松地構建高效、可靠的智能代理(Agents)。

Agent新工具

■  https://openai.com/index/new-tools-for-building-agents/   智能代理是一種能夠獨立完成用戶任務的系統(tǒng)。它們可以在沒有人工干預的情況下,自動執(zhí)行復雜的多步驟任務,比如處理客戶支持請求、自動化數據輸入,甚至是進行市場研究。然而,將AI模型的能力轉化為實際可用的代理系統(tǒng)并非易事,這往往需要大量的提示迭代和自定義邏輯,而且缺乏足夠的可視化支持和內置功能。

為了解決這些挑戰(zhàn),OpenAI推出了一系列新的API和工具,專門用于簡化智能代理的開發(fā)過程。這些工具不僅優(yōu)化了代理的核心邏輯和交互方式,還顯著降低了開發(fā)門檻。

(一)新工具的核心:Responses API Responses API是OpenAI為構建智能代理推出的新API基礎。它結合了Chat Completions API的簡潔性和Assistants API的工具使用能力,能夠讓開發(fā)者更靈活地利用OpenAI的內置工具來構建代理。 這個API的核心優(yōu)勢在于其簡潔性和多功能性。開發(fā)者可以通過一個API調用,解決復雜的任務,同時結合多種工具和模型的能力。例如,開發(fā)者可以使用Responses API中的Web搜索工具,快速獲取最新的網絡信息,或者利用文件搜索工具從大量文檔中提取相關信息。 此外,Responses API還引入了許多改進,比如統(tǒng)一的項目化設計、更簡單的多態(tài)性、直觀的流式事件,以及SDK助手(如response.output_text)來輕松訪問模型的文本輸出。

(二)為開發(fā)者設計的內置工具 為了進一步簡化開發(fā)過程,OpenAI在Responses API中引入了多種內置工具,包括Web搜索、文件搜索和計算機使用工具。 1、Web搜索工具 Web搜索工具能夠讓開發(fā)者快速獲取最新、最相關的網絡信息。它支持清晰的引用鏈接,方便用戶深入了解信息來源。例如,Hebbia利用這一工具幫助金融和法律專業(yè)人士從海量數據中提取有價值的信息,顯著提升了分析的準確性和相關性。 2、文件搜索工具 文件搜索工具則專注于從大量文檔中提取相關信息。它支持多種文件類型,優(yōu)化查詢結果,并提供自定義排序功能。例如,Navan利用這一工具在其AI驅動的旅行代理中快速提供精確答案,顯著提升了客戶支持的效率。 3、計算機使用工具 計算機使用工具則更進一步,它允許開發(fā)者通過API直接操作計算機任務,比如自動化瀏覽器工作流或在遺留系統(tǒng)中執(zhí)行數據輸入任務。這一工具基于OpenAI的Computer-Using Agent(CUA)模型,能夠在沒有API支持的情況下操作復雜的軟件系統(tǒng)

Agents SDK:簡化工作流

■  https://platform.openai.com/docs/guides/agents   除了核心API,OpenAI還推出了Agents SDK,這是一個開源的開發(fā)工具包,用于簡化多代理工作流的編排。 OpenAI為構建智能代理提供了一套豐富的組件,這些組件涵蓋了模型、工具、知識與記憶、安全防護(Guardrails)和編排(Orchestration)等多個領域。通過這些組件,開發(fā)者可以輕松構建出功能強大的智能代理。

(一)模型(Models) 模型是智能代理的核心,負責推理、決策和處理多種模態(tài)的數據。OpenAI提供了多種模型,每種都有其獨特的優(yōu)勢: o1和o3-mini:適合長期規(guī)劃、復雜任務和推理。 GPT-4.5:適合執(zhí)行代理任務。 GPT-4o:在代理能力和延遲之間取得了良好的平衡。 GPT-4o-mini:適合低延遲任務。 這些模型不僅具備高智能,還能調用工具、理解多種模態(tài)數據,并支持實時對話。

(二)工具(Tools) 工具是智能代理與世界交互的接口。OpenAI提供了多種工具,幫助代理完成任務: 函數調用(Function calling):與開發(fā)者定義的代碼交互。 Web搜索:從網絡獲取最新信息。 文件搜索:在文檔中進行語義搜索。 計算機使用:理解和控制計算機或瀏覽器。 這些工具讓智能代理能夠更高效地完成任務。

(三)知識與記憶(Knowledge & Memory) 知識和記憶讓智能代理能夠存儲、檢索和利用超出其初始訓練數據的信息。OpenAI的向量存儲(Vector stores)和嵌入(Embeddings)技術,讓代理能夠語義化搜索文檔,并在運行時檢索相關信息。這些技術不僅支持動態(tài)知識解決方案,還為代理提供了長期記憶。

(四)安全防護(Guardrails) 安全防護是智能代理在生產環(huán)境中安全運行的關鍵。OpenAI提供了多種工具來確保代理的行為安全、一致且符合預期: 輸入防護(Input Guardrails):在用戶輸入階段進行檢查和驗證。 輸出防護(Output Guardrails):在代理輸出階段進行檢查和驗證。 內容過濾(Moderation API):自動過濾不安全內容。 指令優(yōu)先級(Instruction Hierarchy):優(yōu)先執(zhí)行開發(fā)者定義的提示,防止代理行為失控。

(五)編排(Orchestration) 編排是構建智能代理的全過程。OpenAI提供了以下工具來幫助開發(fā)者構建、部署、監(jiān)控和優(yōu)化智能代理: Agents SDK:快速構建代理,處理對話流,并強制執(zhí)行安全防護。 追蹤(Tracing):實時觀察代理行為,調試問題并獲取洞察。 評估與優(yōu)化(Evaluations & Fine-tuning):測量代理性能,識別改進點并優(yōu)化。

(六)為什么選擇OpenAI Agents SDK? OpenAI Agents SDK的設計遵循兩個核心原則: 1、功能強大但易于學習:提供足夠的功能來滿足實際需求,同時保持簡潔,易于快速上手。 2、高度可定制:雖然開箱即用,但開發(fā)者可以根據需要對每個環(huán)節(jié)進行定制。

OpenAI Agents SDK 特性

■  https://openai.github.io/openai-agents-python/agents/   pip install openai-agents

from agents import Agent, Runner

# 創(chuàng)建一個代理
agent = Agent(name="Assistant", instructions="You are a helpful assistant")

# 運行代理并獲取結果
result = Runner.run_sync(agent, "Write a haiku about recursion in programming.")
print(result.final_output)

SDK的主要特性包括:

1、Agent循環(huán):內置的循環(huán)機制,自動處理工具調用、將結果發(fā)送給LLM(大型語言模型),并在LLM完成任務后結束循環(huán)。

2、Python優(yōu)先:利用Python的內置語言特性來編排和連接代理,無需學習新的抽象概念。

3、任務交接(Handoffs):允許代理將特定任務委托給其他代理,實現復雜的任務協調。

4、安全防護(Guardrails):在代理運行時并行執(zhí)行輸入驗證和檢查,如果檢查失敗,可以提前終止任務。

5、函數工具(Function Tools):將任何Python函數轉換為工具,自動生成JSON模式,并通過Pydantic進行驗證。

6、追蹤(Tracing):內置的追蹤功能,可以可視化、調試和監(jiān)控工作流,同時支持OpenAI的評估、微調和蒸餾工具。 工具是代理可以調用的功能,用于完成任務。例如,一個代理可以調用一個函數來獲取天氣信息。

上下文(Context)

代理的上下文是一個依賴注入工具,它允許你在代理運行時傳遞任何Python對象。上下文可以包含用戶信息、狀態(tài)或其他依賴項。例如:

Python復制

from dataclasses import dataclass


@dataclass
class UserContext:
uid: str
is_pro_user: bool

agent = Agent[UserContext](
name="User-specific agent",
instructions="Help the user with their questions",
)

輸出類型(Output Types)

默認情況下,代理的輸出是純文本。如果你希望代理輸出特定類型的數據,可以使用output_type參數。例如,你可以使用Pydantic對象來定義輸出類型:

from pydantic import BaseModel

from agents import Agent

class CalendarEvent(BaseModel):
name: str
date: str
participants: list[str]

agent = Agent(
name="Calendar extractor",
instructions="Extract calendar events from text",
output_type=CalendarEvent,
)

任務交接(Handoffs) 任務交接允許代理將任務委托給其他代理。這在不同代理專注于不同任務的場景中非常有用。例如,一個客戶支持應用可以有多個代理,分別處理訂單狀態(tài)、退款和常見問題等。你可以通過handoffs參數指定這些代理:

from agents import Agent


booking_agent = Agent(name="Booking agent")
refund_agent = Agent(name="Refund agent")

triage_agent = Agent(
name="Triage agent",
instructions="Help the user with their questions. If they ask about booking, handoff to the booking agent. If they ask about refunds, handoff to the refund agent.",
handoffs=[booking_agent, refund_agent],
)

動態(tài)指令(Dynamic Instructions) 在某些情況下,你可能需要根據上下文動態(tài)生成指令。你可以通過一個函數來實現這一點。例如:


def dynamic_instructions(context, agent):

return f"The user's name is {context.context.name}. Help them with their questions."

agent = Agent(
name="Triage agent",
instructions=dynamic_instructions,
)

生命周期事件(Lifecycle Events) 你可以在代理的生命周期中插入自定義邏輯。例如,你可以在代理開始運行時記錄日志,或者在代理結束時清理資源。通過繼承AgentHooks類并重寫相關方法,你可以實現這些功能:

from agents.lifecycle import AgentHooks


class MyAgentHooks(AgentHooks):
async def on_start(self):
print("Agent is starting")

async def on_end(self):
print("Agent has finished")

安全防護(Guardrails) 安全防護是代理運行時并行執(zhí)行的檢查和驗證機制。你可以通過安全防護來過濾用戶輸入,確保代理不會執(zhí)行惡意任務。例如,你可以設置一個安全防護來檢測用戶是否在請求代理幫助他們做數學作業(yè):

from agents import Agent, input_guardrail

from pydantic import BaseModel

class MathHomeworkOutput(BaseModel):
is_math_homework: bool
reasoning: str

@input_guardrail
asyncdef math_guardrail(ctx, agent, input):
result = await Runner.run(guardrail_agent, input, context=ctx.context)
return GuardrailFunctionOutput(
output_info=result.final_output,
tripwire_triggered=result.final_output.is_math_homework,
)

agent = Agent(
name="Customer support agent",
instructions="Help customers with their questions",
input_guardrails=[math_guardrail],
)

克隆代理(Cloning Agents) 你可以通過clone()方法復制一個代理,并根據需要修改其屬性。例如:

pirate_agent = Agent(

name="Pirate",
instructions="Write like a pirate",
model="o3-mini",
)

robot_agent = pirate_agent.clone(
name="Robot",
instructions="Write like a robot",
)


請?zhí)峁┱鎸嵭畔⒁员阄覀兣c您聯系
公司信息
聯系人信息
留言及疑問