OpenAI Agents SDK
OpenAI Agents SDK
강력한 멀티 에이전트 워크플로우 모니터링을 위한 AgentOps와 OpenAI Agents SDK의 통합을 소개해요. 핵심 개념부터 설치, 사용법, 예제까지 알아볼게요.
출처: 문서
본문
영상 튜토리얼 (Video Tutorial)
OpenAI Agents Python은 Python으로 멀티 에이전트 워크플로우를 구축하기 위한 가볍지만 강력한 SDK예요. AgentOps는 이 워크플로우에 관측성을 제공하도록 원활하게 통합됩니다.
핵심 개념 (Core Concepts)
- Agents: 지시사항, 도구, 가드레일, 핸드오프로 구성된 LLM
- Handoffs: 에이전트가 특정 작업을 위해 다른 에이전트로 제어권을 이전
- Guardrails: 입력과 출력 검증을 위한 설정 가능한 안전 검사
- Tracing: 에이전트 실행의 내장 추적으로, 워크플로우를 보고 디버깅·최적화 가능
Python
설치 (Installation)
AgentOps, OpenAI Agents SDK, 그리고 API 키 관리용 python-dotenv를 설치하세요.
poetry add agentops openai-agents python-dotenv
uv pip install agentops openai-agents python-dotenv
API 키 설정 (Setting Up API Keys)
OpenAI Agents SDK를 AgentOps와 함께 사용하기 전에 API 키를 설정해야 해요:
- OPENAI_API_KEY: OpenAI Platform에서
- AGENTOPS_API_KEY: AgentOps Dashboard에서
이것들을 환경 변수나 .env 파일로 설정할 수 있어요.
OPENAI_API_KEY="your_openai_api_key_here"
AGENTOPS_API_KEY="your_agentops_api_key_here"
그리고 Python 코드에서 로드합니다.
from dotenv import load_dotenv
import os
load_dotenv()
AGENTOPS_API_KEY = os.getenv("AGENTOPS_API_KEY")
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
사용법 (Usage)
AgentOps는 초기화된 후 OpenAI Agents SDK를 자동으로 계측합니다. 그러면 에이전트를 만들고 실행하며 그 상호작용을 추적할 수 있어요.
import agentops
from agents import Agent, Runner
# Initialize AgentOps
agentops.init()
# Create an agent with instructions
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)
예제 (Examples)
agentops.init()
spanish_agent = Agent( name="Spanish agent", instructions="You only speak Spanish.", )
english_agent = Agent( name="English agent", instructions="You only speak English", )
triage_agent = Agent( name="Triage agent", instructions="Handoff to the appropriate agent based on the language of the request.", handoffs=[spanish_agent, english_agent], )
async def main(): result = await Runner.run(triage_agent, input="Hola, ¿cómo estás?") print(result.final_output) # Expected Output: ¡Hola! Estoy bien, gracias por preguntar. ¿Y tú, cómo estás?
if name == "main": asyncio.run(main())
```python Function Calling theme={null}
import asyncio
from agents import Agent, Runner, function_tool
import agentops
import os
agentops.init()
@function_tool
def get_weather(city: str) -> str:
return f"The weather in {city} is sunny."
agent = Agent(
name="Weather Agent",
instructions="You are a helpful agent that can get weather information.",
tools=[get_weather],
)
async def main():
result = await Runner.run(agent, input="What's the weather in Tokyo?")
print(result.final_output)
# Expected Output: The weather in Tokyo is sunny.
if __name__ == "__main__":
asyncio.run(main())