Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Microsoft Agent Framework mendukung tiga jenis klien OpenAI yang berbeda, masing-masing menargetkan permukaan API yang berbeda dengan kemampuan alat yang berbeda:
| Tipe Klien | API | Terbaik untuk |
|---|---|---|
| Penyelesaian Percakapan | API Penyelesaian Obrolan | Agen sederhana, dukungan model luas |
| Responses | API Respons | Agen berfitur lengkap dengan alat yang dihosting (penerjemah kode, pencarian file, pencarian web, MCP yang dihosting) |
| Asisten | API Asisten | Agen yang dikelola server dengan penerjemah kode dan pencarian file |
Petunjuk / Saran
Untuk setara Azure OpenAI (AzureOpenAIChatClient, , AzureOpenAIResponsesClientAzureOpenAIAssistantsClient), lihat halaman penyedia Azure OpenAI. Dukungan untuk alat ini identik.
Memulai Langkah Awal
Tambahkan paket NuGet yang diperlukan ke proyek Anda.
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Klien Penyelesaian Percakapan
Klien Penyelesaian Obrolan menyediakan cara mudah untuk membuat agen menggunakan ChatCompletion 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."));
Alat yang didukung: Alat fungsi, pencarian web, alat MCP lokal.
Respons Klien
Klien Respons menyediakan dukungan alat terkaya termasuk penerjemah kode, pencarian file, pencarian web, dan MCP yang dihosting.
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."));
Alat yang didukung: Alat fungsi, persetujuan alat, penerjemah kode, pencarian file, pencarian web, MCP yang dihosting, alat MCP lokal.
Klien Asisten
Klien Asisten membuat agen yang dikelola server dengan penerjemah kode bawaan dan pencarian file.
using Microsoft.Agents.AI;
using OpenAI;
OpenAIClient client = new OpenAIClient("<your_api_key>");
var assistantsClient = client.GetAssistantClient();
// Assistants are managed server-side
AIAgent agent = assistantsClient.AsAIAgent(
instructions: "You are a data analysis assistant.",
name: "DataHelper");
Console.WriteLine(await agent.RunAsync("Analyze trends in the uploaded data."));
Alat yang didukung: Alat fungsi, penerjemah kode, pencarian file, alat MCP lokal.
Petunjuk / Saran
Lihat sampel .NET untuk contoh lengkap yang dapat dijalankan.
Menggunakan Agen
Ketiga jenis klien menghasilkan standar AIAgent yang mendukung operasi agen yang sama (streaming, utas, middleware).
Untuk informasi selengkapnya, lihat tutorial Memulai.
Penginstalan
pip install agent-framework --pre
Konfigurasi
Setiap jenis klien menggunakan variabel lingkungan yang berbeda:
Selesaikan Obrolan
OPENAI_API_KEY="your-openai-api-key"
OPENAI_CHAT_MODEL_ID="gpt-4o-mini"
Responses
OPENAI_API_KEY="your-openai-api-key"
OPENAI_RESPONSES_MODEL_ID="gpt-4o-mini"
Assistants
OPENAI_API_KEY="your-openai-api-key"
OPENAI_CHAT_MODEL_ID="gpt-4o-mini"
Klien Penyelesaian Percakapan
OpenAIChatClient menggunakan API Penyelesaian Obrolan — opsi paling sederhana dengan dukungan model yang luas.
import asyncio
from agent_framework.openai import OpenAIChatClient
async def main():
agent = OpenAIChatClient().as_agent(
name="HelpfulAssistant",
instructions="You are a helpful assistant.",
)
result = await agent.run("Hello, how can you help me?")
print(result)
asyncio.run(main())
Alat yang didukung: Alat fungsi, pencarian web, alat MCP lokal.
Pencarian Web dengan Penyelesaian Percakapan
async def web_search_example():
client = OpenAIChatClient()
web_search = client.get_web_search_tool()
agent = client.as_agent(
name="SearchBot",
instructions="You can search the web for current information.",
tools=web_search,
)
result = await agent.run("What are the latest developments in AI?")
print(result)
Respons Klien
OpenAIResponsesClient menggunakan API Respons — opsi paling kaya fitur dengan alat yang dihosting.
import asyncio
from agent_framework.openai import OpenAIResponsesClient
async def main():
agent = OpenAIResponsesClient().as_agent(
name="FullFeaturedAgent",
instructions="You are a helpful assistant with access to many tools.",
)
result = await agent.run("Write and run a Python script that calculates fibonacci numbers.")
print(result)
asyncio.run(main())
Alat yang didukung: Alat fungsi, persetujuan alat, penerjemah kode, pencarian file, pencarian web, MCP yang dihosting, alat MCP lokal.
Alat yang Dihosting dengan Respons Klien
Klien Respons menyediakan get_*_tool() metode untuk setiap jenis alat yang dihosting:
async def hosted_tools_example():
client = OpenAIResponsesClient()
# Each tool is created via a client method
code_interpreter = client.get_code_interpreter_tool()
web_search = client.get_web_search_tool()
file_search = client.get_file_search_tool(vector_store_ids=["vs_abc123"])
mcp_tool = client.get_mcp_tool(
name="GitHub",
url="https://api.githubcopilot.com/mcp/",
approval_mode="never_require",
)
agent = client.as_agent(
name="PowerAgent",
instructions="You have access to code execution, web search, files, and GitHub.",
tools=[code_interpreter, web_search, file_search, mcp_tool],
)
result = await agent.run("Search the web for Python best practices, then write a summary.")
print(result)
Klien Asisten
OpenAIAssistantProvider menggunakan Assistants API — agen yang dikelola server dengan penerjemah kode bawaan dan pencarian file. Penyedia mengelola siklus hidup asisten secara otomatis.
import asyncio
from agent_framework.openai import OpenAIAssistantProvider
from openai import AsyncOpenAI
async def main():
client = AsyncOpenAI()
provider = OpenAIAssistantProvider(client)
agent = await provider.create_agent(
name="DataAnalyst",
model="gpt-4o-mini",
instructions="You analyze data using code execution.",
)
try:
result = await agent.run("Calculate the first 20 prime numbers.")
print(result)
finally:
await provider.delete_agent(agent.id)
asyncio.run(main())
Alat yang didukung: Alat fungsi, penerjemah kode, pencarian file, alat MCP lokal.
Fitur Umum
Ketiga jenis klien mendukung fitur agen standar ini:
Perangkat Fungsional
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 = OpenAIResponsesClient().as_agent(
instructions="You are a weather assistant.",
tools=get_weather,
)
result = await agent.run("What's the weather in Tokyo?")
print(result)
Percakapan dengan Banyak Putaran
async def thread_example():
agent = OpenAIResponsesClient().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"
Siaran Langsung
async def streaming_example():
agent = OpenAIResponsesClient().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()
Menggunakan Agen
Semua jenis klien menghasilkan standar Agent yang mendukung operasi yang sama.
Untuk informasi selengkapnya, lihat tutorial Memulai.