Narzędzie przypomnień dla agentów samodzielnie planujących

Important

Elementy oznaczone jako (wersja zapoznawcza) w tym artykule są aktualnie dostępne w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą nie być obsługiwane lub mogą mieć ograniczone możliwości. Aby uzyskać więcej informacji, zobacz Warunki dodatkowe korzystania z testowych wersji Microsoft Azure.

Narzędzie reminder_preview umożliwia hostowanym agentowi zaplanowanie ponownego uruchomienia w przyszłości. Użyj tego wzorca, gdy agent w trakcie działania uzna, że musi wrócić do sprawy później, na przykład aby ponownie sprawdzić stan długotrwałego zadania lub poprosić użytkownika o aktualizację statusu.

Gdy agent wywołuje narzędzie przypomnienia, określa opóźnienie w minutach. Po tym opóźnieniu Foundry ponownie wywołuje tego samego agenta w ramach tej samej konwersacji. Agent może następnie kontynuować pracę, sprawdzać systemy zewnętrzne lub monitować użytkownika.

Important

Narzędzie przypomnienia jest dostępne tylko dla hostowanych agentów. Nie można używać narzędzia przypomnień z agentami promptów. Aby użyć narzędzia przypomnienia, utwórz przybornik zawierający reminder_preview narzędzie, a następnie dołącz przybornik do hostowanego agenta.

Wymagania wstępne

Jak działa narzędzie przypomnienia

Narzędzie przypomnienia przyjmuje następujące argumenty:

Argument Typ Zakres Description
minutes liczba całkowita 1–43,200 Liczba minut oczekiwania przed ponownym wywołaniem agenta.
input ciąg Instrukcje dotyczące działań, które agent musi wykonać po wywołaniu przez przypomnienie.

Gdy agent wywołuje narzędzie, na podstawie własnego rozumowania decyduje, jak długie ma być opóźnienie. Program Foundry tworzy następnie zaplanowaną procedurę , która jest uruchamiana po określonym opóźnieniu i ponownie wywołuje tego samego hostowanego agenta w tej samej konwersacji. Takie podejście zachowuje kontekst między wywołaniami, w przeciwieństwie do zwykłych procedur, które rozpoczynają nowe konwersacje.

Dodaj narzędzie przypomnienia do przybornika

Narzędzie przypomnienia jest bez połączenia. Nie musisz konfigurować żadnej usługi zewnętrznej ani uwierzytelniania.

Zrzut ekranu przedstawiający narzędzie reminder_preview w zestawie narzędzi portalu Foundry.

  1. W portalu Foundry przejdź do projektu.
  2. W lewym okienku wybierz pozycję Kompilacja i dostosowywanie>Przyborniki.
  3. Wybierz pozycję + Nowy , aby utworzyć przybornik lub wybierz istniejący przybornik do edycji.
  4. W edytorze zestawu narzędzi wybierz + Dodaj narzędzie.
  5. W obszarze Narzędzia wbudowane wybierz pozycję Przypomnienie (wersja zapoznawcza).
  6. Skonfiguruj nazwę i opis narzędzia, a następnie wybierz pozycję Dodaj.
  7. Wybierz Zapisz, aby zapisać zestaw narzędzi.

Na stronie szczegółów przybornika jest wyświetlany punkt końcowy MCP. Skopiuj adres punktu końcowego, aby połączyć się ze swoim hostowanym agentem.

from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import ReminderPreviewToolboxTool

# Create Foundry project client
endpoint = "https://<your-foundry-account>.services.ai.azure.com/api/projects/<your-project>"
project = AIProjectClient(
    endpoint=endpoint,
    credential=DefaultAzureCredential(),
)

# Create toolbox version with reminder tool
toolbox_version = project.toolboxes.create_version(
    name="reminder-toolbox",
    description="Built-in reminder tool for a self-scheduling agent",
    tools=[
        ReminderPreviewToolboxTool(
            name="schedule_reminder",
            description="Schedule a reminder that re-invokes this agent at a future time.",
        ),
    ],
)
print(f"Created toolbox: {toolbox_version.name}, version: {toolbox_version.version}")
print(f"MCP endpoint: {toolbox_version.mcp_endpoint}")
using Azure.Identity;
using Azure.AI.Projects;

// Create Foundry project client
var projectEndpoint = "https://<your-foundry-account>.services.ai.azure.com/api/projects/<your-project>";
AIProjectClient projectClient = new(new Uri(projectEndpoint), new DefaultAzureCredential());

// Create toolbox version with reminder tool
var reminderTool = new ReminderPreviewToolboxTool
{
    Name = "schedule_reminder",
    Description = "Schedule a reminder that re-invokes this agent at a future time."
};

ToolboxVersionObject toolboxVersion = await projectClient.Toolboxes.CreateVersionAsync(
    name: "reminder-toolbox",
    tools: [reminderTool],
    description: "Built-in reminder tool for a self-scheduling agent"
);
Console.WriteLine($"Created toolbox: {toolboxVersion.Name}, version: {toolboxVersion.Version}");
Console.WriteLine($"MCP endpoint: {toolboxVersion.McpEndpoint}");
import { DefaultAzureCredential } from "@azure/identity";
import { AIProjectClient } from "@azure/ai-projects";

// Create Foundry project client
const projectEndpoint = "https://<your-foundry-account>.services.ai.azure.com/api/projects/<your-project>";
const project = new AIProjectClient(projectEndpoint, new DefaultAzureCredential());

const toolboxVersion = await project.toolboxes.createVersion(
  "reminder-toolbox",
  [
    {
      type: "reminder_preview",
      name: "schedule_reminder",
      description: "Schedule a reminder that re-invokes this agent at a future time.",
    },
  ],
  {
    description: "Built-in reminder tool for a self-scheduling agent",
  },
);
console.log(`Created toolbox: ${toolboxVersion.name}, version: ${toolboxVersion.version}`);
console.log(`MCP endpoint: ${toolboxVersion.mcpEndpoint}`);
POST https://{project_endpoint}/toolboxes/reminder-toolbox/versions?api-version=v1
Authorization: Bearer {token}
Content-Type: application/json

{
  "description": "Built-in reminder tool for a self-scheduling agent",
  "tools": [
    {
      "type": "reminder_preview",
      "name": "schedule_reminder",
      "description": "Schedule a reminder that re-invokes this agent at a future time."
    }
  ]
}

Note

Użyj zakresu tokenu https://ai.azure.com/.default podczas pobierania tokenu Bearer.

Odpowiedź zawiera element mcp_endpoint. Połącz hostowanego agenta z tym punktem końcowym.

Utwórz plik manifestu zestawu narzędzi:

# reminder-toolbox.yaml
description: Built-in reminder tool for a self-scheduling agent
tools:
  - type: reminder_preview
    name: schedule_reminder
    description: Schedule a reminder that re-invokes this agent at a future time.

Utwórz zestaw narzędzi:

azd ai toolbox create reminder-toolbox --from-file reminder-toolbox.yaml

Polecenie wyświetla punkt końcowy MCP zestawu narzędzi. Połącz hostowanego agenta z tym punktem końcowym.

Konfigurowanie hostowanego agenta

Po utworzeniu zestawu narzędzi skonfiguruj hostowanego agenta tak, aby z niego korzystał. W manifeście agenta dodaj punkt końcowy zestawu narzędzi pod elementem resources:

# agent.yaml
name: reminder-agent
model_deployment: gpt-4.1
instructions: |
  You are a helpful assistant. When the user asks you to follow up later,
  use the schedule_reminder tool to re-invoke yourself after the specified time.
resources:
  - kind: toolbox
    url: https://{project-endpoint}/agents/toolboxes/reminder-toolbox/mcp?version=1

Przykładowy scenariusz: Sondowanie pod kątem ukończenia zadania

Typowym scenariuszem jest cykliczne odpytywanie zewnętrznego systemu w celu sprawdzenia, czy zadanie zostało ukończone. W tym wzorcu agent:

  1. Odbiera żądanie użytkownika, aby uruchomić długotrwałe zadanie.
  2. Wywołuje zewnętrzny interfejs API, aby uruchomić zadanie i odebrać identyfikator zadania.
  3. Używa narzędzia przypomnienia, aby zaplanować kontynuację w ciągu 15 minut.
  4. Gdy przypomnienie się uruchomi, agent sprawdza stan zadania.
  5. Jeśli zadanie jest nadal uruchomione, agent planuje kolejne przypomnienie.
  6. Po zakończeniu zadania agent powiadamia użytkownika.

Aby włączyć to zachowanie, dołącz instrukcje w manifeście agenta:

# agent.yaml
name: task-monitor
model_deployment: gpt-4.1
instructions: |
  You help users monitor long-running tasks.
  
  When a user asks you to start a task:
  1. Call the start_task tool with the user's parameters.
  2. Note the task_id in your response.
  3. Use the schedule_reminder tool to check back in 15 minutes.
  
  When you're re-invoked by a reminder:
  1. Call the check_status tool with the task_id.
  2. If the task is still running, schedule another reminder for 10 minutes.
  3. If the task is complete, summarize the results for the user.
resources:
  - kind: toolbox
    url: https://{project-endpoint}/agents/toolboxes/my-toolbox/mcp?version=1

Model decyduje, kiedy i jak używać narzędzia przypomnienia na podstawie tych instrukcji. Nie musisz pisać kodu, aby obsłużyć wywołanie przypomnienia.

Limitations

  • Tylko hostowani agenci. Narzędzie przypomnienia jest dostępne tylko dla hostowanych agentów. Nie można tego używać z agentami promptów.
  • Ta sama rozmowa. Przypomnienia ponownie wywołują agenta w tej samej konwersacji. Nie rozpoczynają nowych konwersacji.
  • Minimalne opóźnienie. Minimalne opóźnienie wynosi 1 minutę.
  • Maksymalne opóźnienie. Maksymalne opóźnienie wynosi 43 200 minut (30 dni).