エージェントの概念

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 インターフェイスが機能します。 FoundryAgentA2AAgentGitHubCopilotAgentClaudeAgentなどの直接エージェントの種類は、代わりにマネージド エージェント ランタイムまたはリモート エージェント ランタイムに接続します。

使用可能な推論クライアントについては、「 モデル プロバイダー」を参照してください。

Go モデル プロバイダー パッケージは、プロバイダー固有のコンストラクターを使用して標準 *agent.Agent 型を構築します。 これにより、各プロバイダーがクライアントの初期化を所有している間、アプリケーション コードに一貫した実行、セッション、ツール、ミドルウェア、およびストリーミング インターフェイスが提供されます。

コンストラクターとインポート パスについては、「 モデル プロバイダー」を参照してください。

会話とメモリ

会話の概念 には、セッション、コンテキスト プロバイダー、ストレージ、圧縮、組み込みのチャット履歴メモリ プロバイダーが含まれます。

Middleware

ミドルウェアの概念 では、定義、スコープ、順序付け、共有状態、実行時コンテキスト、終了、エラー、および結果のオーバーライドについて説明します。

Safety

エージェントの安全性 は、エージェントの動作を制限し、運用上のリスクを軽減するための設計パターンを記述します。 FIDES を使用したセキュリティの適用は、引き続き エージェント機能です

次のステップ