Microsoft Agent Framework는 C# 및 Python 두 가지 OpenAI 클라이언트 유형인 응답 및 채팅 완료를 지원합니다. 응답은 권장되는 기본 클라이언트입니다. 최신 OpenAI 응답 API를 대상으로 하며 호스트된 도구(코드 인터프리터, 파일 검색, 웹 검색, 호스트된 MCP, 이미지 생성)의 전체 집합을 지원합니다. 광범위한 모델 호환성이 필요하거나 기존 Chat Completions 통합을 계속 유지해야 하는 경우에는 Chat Completion을 사용하세요.
| 클라이언트 유형 | API | 적합한 대상 |
|---|---|---|
| 응답 (권장) | 응답 API | 호스트된 도구가 있는 전체 기능 에이전트(코드 인터프리터, 파일 검색, 웹 검색, 호스트된 MCP) |
| 채팅 완료 | 채팅 완료 API | 간단한 에이전트, 광범위한 모델 지원 |
메모
OpenAI Assistants API는 OpenAI에서 더 이상 사용되지 않습니다. 새 코드는 응답 클라이언트를 사용해야 합니다. 기존 Assistants 기반 앱에서 마이그레이션하는 경우 의미 체계 커널 마이그레이션 가이드 참조하세요.
시작하기
필요한 NuGet 패키지를 프로젝트에 추가합니다.
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
응답 클라이언트
응답 클라이언트는 권장되는 기본 클라이언트이며 코드 인터프리터, 파일 검색, 웹 검색 및 호스트된 MCP를 비롯한 가장 풍부한 도구 지원을 제공합니다.
using Microsoft.Agents.AI;
using OpenAI;
OpenAIClient client = new OpenAIClient("<your_api_key>");
var responsesClient = client.GetResponseClient("gpt-4o-mini");
AIAgent agent = responsesClient.AsAIAgent(
instructions: "You are a helpful coding assistant.",
name: "CodeHelper");
Console.WriteLine(await agent.RunAsync("Write a Python function to sort a list."));
지원되는 도구: 함수 도구, 도구 승인, 코드 인터프리터, 파일 검색, 웹 검색, 호스트된 MCP, 로컬 MCP 도구.
채팅 완료 클라이언트
채팅 완료 클라이언트는 채팅 완료 API를 사용하여 에이전트를 만드는 간단한 방법을 제공합니다. 광범위한 모델 호환성이 필요하거나 기존 채팅 완료 통합이 필요한 경우 사용합니다.
using Microsoft.Agents.AI;
using OpenAI;
OpenAIClient client = new OpenAIClient("<your_api_key>");
var chatClient = client.GetChatClient("gpt-4o-mini");
AIAgent agent = chatClient.AsAIAgent(
instructions: "You are good at telling jokes.",
name: "Joker");
Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));
지원되는 도구: 함수 도구, 웹 검색, 로컬 MCP 도구.
지원 도우미 클라이언트
메모
OpenAI Assistants API는 OpenAI에서 더 이상 사용되지 않습니다. 에이전트 프레임워크는 더 이상 Assistants 클라이언트를 문서화하지 않습니다. 위의 응답 클라이언트를 새 코드에 사용합니다. 기존 앱을 마이그레이션하려면 의미 체계 커널 마이그레이션 가이드 참조하세요.
에이전트 사용
두 클라이언트 유형 모두 동일한 에이전트 작업(스트리밍, 스레드, 미들웨어)을 지원하는 표준을 AIAgent 생성합니다.
자세한 내용은 시작 자습서를 참조하세요.
Tools
OpenAI .NET 클라이언트는 대상 API에 따라 다른 도구 화면을 노출합니다. 동일한 행렬은 Azure OpenAI 공급자 페이지 일치하는 Azure OpenAI 클라이언트에 적용됩니다.
| Tool | 응답 | 채팅 완료 |
|---|---|---|
| 함수 도구 | ✅ | ✅ |
| 도구 승인 | ✅ | ✅ |
| 코드 해석기 | ✅ | ❌ |
| 파일 검색 | ✅ | ❌ |
| 웹 검색 | ✅ | ✅ |
| 호스트된 MCP 도구 | ✅ | ❌ |
| 로컬 MCP 도구 | ✅ | ✅ |
메모
도구 승인 은 프레임워크의 함수 호출 채팅 클라이언트에서 제공되므로 기본 API에 관계없이 모든 함수 도구 호출에서 작동합니다.
메모
OpenAI Assistants API는 OpenAI에서 더 이상 사용되지 않으며, Python 더 이상 Assistants 호환성 클라이언트/공급자를 제공하지 않습니다. 응답에는 OpenAIChatClient를 사용하고 채팅 완성에는 OpenAIChatCompletionClient를 사용합니다. 이전 에이전트 프레임워크 Python 릴리스에서 마이그레이션하는 경우 Python 중요한 변경 내용 가이드 참조하세요. 의미 체계 커널 마이그레이션하는 경우 의미 체계 커널 마이그레이션 가이드 참조하세요.
팁 (조언)
Python에서 Azure OpenAI는 이제 여기에 표시된 동일한 agent_framework.openai 클라이언트를 사용합니다. Azure 라우팅을 원하는 경우와 같은 credentialazure_endpoint 명시적 Azure 라우팅 입력을 전달한 다음 사용하려는 Azure API 화면에 대해 설정합니다 api_version .
OPENAI_API_KEY이(가) 구성된 경우, 제네릭 클라이언트는 AZURE_OPENAI_* 변수가 있는 경우에도 OpenAI에 계속 유지됩니다. 이미 전체 .../openai/v1 URL이 있는 경우 base_url 대신 azure_endpoint을 사용합니다. Microsoft Foundry 프로젝트 엔드포인트 및 Foundry 에이전트 서비스의 경우 Microsoft Foundry 공급자 페이지를 참조하세요. 로컬 런타임은 Foundry 로컬을 참조하십시오.
설치
pip install agent-framework-openai
agent-framework-openai 는 직접 OpenAI 및 Azure OpenAI 사용량 모두에 대한 선택적 Python 공급자 패키지입니다.
구성 / 설정
Python OpenAI 채팅 클라이언트는 다음과 같은 환경 변수 패턴을 사용합니다.
OPENAI_API_KEY="your-openai-api-key"
OPENAI_CHAT_MODEL="gpt-4o-mini"
# Optional shared fallback:
# OPENAI_MODEL="gpt-4o-mini"
일반적인 기능
이러한 클라이언트 유형은 다음 표준 에이전트 기능을 지원합니다.
함수 도구
from agent_framework import tool
@tool
def get_weather(location: str) -> str:
"""Get the weather for a given location."""
return f"The weather in {location} is sunny, 25°C."
async def example():
agent = OpenAIChatClient().as_agent(
instructions="You are a weather assistant.",
tools=get_weather,
)
result = await agent.run("What's the weather in Tokyo?")
print(result)
다단계 대화
async def thread_example():
agent = OpenAIChatClient().as_agent(
instructions="You are a helpful assistant.",
)
session = await agent.create_session()
result1 = await agent.run("My name is Alice", session=session)
print(result1)
result2 = await agent.run("What's my name?", session=session)
print(result2) # Remembers "Alice"
스트리밍
async def streaming_example():
agent = OpenAIChatClient().as_agent(
instructions="You are a creative storyteller.",
)
print("Agent: ", end="", flush=True)
async for chunk in agent.run("Tell me a short story about AI.", stream=True):
if chunk.text:
print(chunk.text, end="", flush=True)
print()
에이전트 사용
모든 클라이언트 형식은 동일한 작업을 지원하는 표준을 Agent 생성합니다.
자세한 내용은 시작 자습서를 참조하세요.
Tools
Python OpenAI 클라이언트는 기본 API에 따라 다른 도구 화면을 노출합니다.
OpenAIChatClient (응답)은 client.get_*_tool(...)를 통해 호스팅된 도구 팩토리를 제공합니다 — get_code_interpreter_tool, get_file_search_tool, get_web_search_tool, get_image_generation_tool, get_shell_tool, 및 get_mcp_tool.
OpenAIChatCompletionClient만 노출합니다.get_web_search_tool 둘 다 함수 도구와 로컬 MCP 서버에서 작동합니다.
이러한 클라이언트를 Azure OpenAI를 가리키면 동일한 행렬이 적용됩니다. Azure OpenAI 참조하세요.
| Tool |
OpenAIChatClient (응답) |
OpenAIChatCompletionClient (채팅 완료) |
|---|---|---|
| 함수 도구 | ✅ | ✅ |
| 도구 승인 | ✅ | ✅ |
| 코드 해석기 | ✅ | ❌ |
| 파일 검색 | ✅ | ❌ |
| 웹 검색 | ✅ | ✅ |
| 이미지 생성 |
✅(get_image_generation_tool) |
❌ |
| 호스팅된 셸 |
✅(get_shell_tool) |
❌ |
| 호스트된 MCP 도구 | ✅ | ❌ |
| 로컬 MCP 도구 | ✅ | ✅ |
메모
도구 승인 은 프레임워크의 함수 호출 채팅 클라이언트에 의해 처리되므로 기본 API에 관계없이 모든 함수 도구 호출에서 작동합니다.