Agent Framework エージェントは、エージェントの抽象化、モデルまたはリモート エージェント接続、命令、ツール、ミドルウェア、コンテキスト プロバイダー、およびセッション状態を一貫した実行インターフェイスの背後に結合します。
ランタイムと実行
- 実行中のエージェント では、通常の実行とストリーミングの実行、実行オプション、応答、メッセージ、およびコンテンツについて説明します。
- エージェント パイプライン では、ミドルウェア、コンテキスト プロバイダー、モデル呼び出し、およびツールが実行にどのように参加するかを説明します。
エージェントの種類
- カスタム エージェント では、一般的なエージェント インターフェイスと、エージェントを直接実装するタイミングについて説明します。
- モデル プロバイダーは、 アプリケーション所有のエージェントを推論サービスに接続します。
- エージェント サービス は、マネージド エージェントまたはプロトコルベースのリモート エージェントに接続します。
チャット クライアント エージェント
チャット クライアント エージェントは、モデル推論クライアントによってサポートされるアプリケーション所有のエージェントです。 関数ツール、複数ターンの会話、プロバイダーホスト型ツール (使用可能な場合)、構造化された出力、ストリーミング、ミドルウェア、ローカルまたはサービスで管理される会話履歴をサポートします。
Microsoft.Extensions.AI.IChatClientを実装するすべての推論クライアントは、ChatClientAgentをバックできます。
using Microsoft.Agents.AI;
AIAgent agent = new ChatClientAgent(
chatClient,
instructions: "You are a helpful assistant.");
すべてのエージェント実装は AIAgent 抽象化を共有するため、アプリケーション コードとオーケストレーションは、1 つのインターフェイスを介してチャット クライアント エージェント、カスタム エージェント、およびリモート エージェント プロキシと連携できます。
プロバイダーの機能、会話履歴のサポート、SDK エンドポイントの選択については、「 モデル プロバイダー」を参照してください。
SupportsChatGetResponseを実装する任意のクライアントから標準Agentを作成します。
from agent_framework import Agent
agent = Agent(
client=client,
instructions="You are a helpful assistant.",
)
サポートされているモデル プロバイダー間で同じ Agent インターフェイスが機能します。
FoundryAgent、A2AAgent、GitHubCopilotAgent、ClaudeAgentなどの直接エージェントの種類は、代わりにマネージド エージェント ランタイムまたはリモート エージェント ランタイムに接続します。
使用可能な推論クライアントについては、「 モデル プロバイダー」を参照してください。
Go モデル プロバイダー パッケージは、プロバイダー固有のコンストラクターを使用して標準 *agent.Agent 型を構築します。 これにより、各プロバイダーがクライアントの初期化を所有している間、アプリケーション コードに一貫した実行、セッション、ツール、ミドルウェア、およびストリーミング インターフェイスが提供されます。
コンストラクターとインポート パスについては、「 モデル プロバイダー」を参照してください。
会話とメモリ
会話の概念 には、セッション、コンテキスト プロバイダー、ストレージ、圧縮、組み込みのチャット履歴メモリ プロバイダーが含まれます。
Middleware
ミドルウェアの概念 では、定義、スコープ、順序付け、共有状態、実行時コンテキスト、終了、エラー、および結果のオーバーライドについて説明します。
Safety
エージェントの安全性 は、エージェントの動作を制限し、運用上のリスクを軽減するための設計パターンを記述します。 FIDES を使用したセキュリティの適用は、引き続き エージェント機能です。