Поделиться через


Добавление навыков в декларативный агент, созданный с помощью microsoft 365 Agents Toolkit

Вы можете улучшить способности агента, добавив навыки. Навыки можно добавить либо путем включения встроенных возможностей, таких как генератор изображений или интерпретатор кода, либо путем добавления подключаемых модулей API в качестве пользовательских действий.

Важно!

В этом руководстве предполагается, что вы выполнили руководство по созданию декларативных агентов с помощью microsoft 365 Agents Toolkit .

Добавление генератора образов в агент

Возможность генератора образов позволяет агентам создавать образы на основе запросов пользователей.

  1. appPackage/declarativeAgent.json Откройте файл и добавьте GraphicArt запись в capabilities массив.

    {
      "name": "GraphicArt"
    }
    

    Дополнительные сведения см. в разделе Графический объект.

  2. Выберите Подготовить в области Жизненный цикл набора средств агентов.

После перезагрузки страницы декларативный агент сможет создавать образы.

Снимок экрана: ответ декларативного агента, который содержит созданные графические рисунки

Добавление интерпретатора кода в агент

Интерпретатор кода — это расширенный инструмент, предназначенный для решения сложных задач с помощью кода Python.

  1. appPackage/declarativeAgent.json Откройте файл и добавьте CodeInterpreter запись в capabilities массив.

    {
      "name": "CodeInterpreter"
    }
    

    Дополнительные сведения см. в разделе Объект интерпретатора кода.

  2. Выберите Подготовить в области Жизненный цикл набора средств агентов.

После перезагрузки страницы декларативный агент будет иметь возможность интерпретатора кода.

Снимок экрана: ответ декларативного агента, который содержит сгенерированный граф

Снимок экрана: код Python, используемый для создания запрошенного графа

Добавление подключаемого модуля API в качестве настраиваемого действия в агент

Подключаемые модули API добавляют новые возможности агента, позволяя агенту взаимодействовать с REST API.

Прежде чем приступить к работе, создайте файл с именем posts-api.yml и добавьте код из документа описание API публикации OpenAPI.

  1. Выберите Добавить действие в области Разработка набора средств агентов.

  2. Выберите Начать с документа описания OpenAPI.

  3. Выберите Обзор и перейдите к файлу posts-api.yml .

  4. Выберите все доступные API, а затем нажмите кнопку ОК.

    Снимок экрана: диалоговое окно выбора API в Visual Studio Code

  5. Выберите manifest.json.

  6. Просмотрите предупреждение в диалоговом окне. Когда вы будете готовы продолжить, нажмите кнопку Добавить.

  7. Выберите Подготовить в области Жизненный цикл набора средств агентов.

Декларативный агент будет иметь доступ к содержимому подключаемого модуля для создания ответов после перезагрузки страницы.

Снимок экрана: ответ декларативного агента, который содержит содержимое подключаемого модуля API

Документ описания API OpenAPI для публикации

Следующее описание OpenAPI предназначено для API JSONPlaceHolder— бесплатного REST API, который можно использовать всякий раз, когда вам нужны поддельные данные.

openapi: '3.0.2'
info:
  title: Posts API
  version: '1.0'
servers:
- url: https://jsonplaceholder.typicode.com/

components:
  schemas:
    post:
      type: object
      properties:
        userId:
          type: integer
          description: The ID of the user that authored the post.
        id:
          type: integer
        title:
          type: string
        body:
          type: string
    user:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        username:
          type: string
        email:
          type: string
        phone:
          type: string
        website:
          type: string
        address:
          $ref: '#/components/schemas/address'
        company:
          $ref: '#/components/schemas/company'
    address:
      type: object
      properties:
        street:
          type: string
        suite:
          type: string
        city:
          type: string
        zipcode:
          type: string
        geo:
          $ref: '#/components/schemas/coordinates'
    coordinates:
      type: object
      properties:
        lat:
          type: string
          description: The latitude of the location
        lng:
          type: string
          description: The longitude of the location
    company:
      type: object
      properties:
        name:
          type: string
        catchPhrase:
          type: string
        bs:
          type: string
  parameters:
    post-id:
      name: post-id
      in: path
      description: 'key: id of post'
      required: true
      style: simple
      schema:
        type: integer
    user-id:
      name: user-id
      in: path
      description: 'key: id of user'
      required: true
      style: simple
      schema:
        type: integer

paths:
  /posts:
    get:
      description: Get posts
      operationId: GetPosts
      parameters:
      - name: userId
        in: query
        description: Filter results by user ID
        required: false
        style: form
        schema:
          type: integer
          maxItems: 1
      - name: title
        in: query
        description: Filter results by title
        required: false
        style: form
        schema:
          type: string
          maxItems: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/post'
    post:
      description: 'Create post'
      operationId: CreatePost
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/post'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/post'
  /posts/{post-id}:
    get:
      description: 'Get post by ID'
      operationId: GetPostById
      parameters:
      - $ref: '#/components/parameters/post-id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/post'
    patch:
      description: 'Update post'
      operationId: UpdatePost
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/post'
      parameters:
      - $ref: '#/components/parameters/post-id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/post'
    delete:
      description: 'Delete post'
      operationId: DeletePost
      parameters:
      - $ref: '#/components/parameters/post-id'
      responses:
        '200':
          description: OK
  /users:
    get:
      summary: Get users
      description: Returns details about users
      operationId: GetUsers
      parameters:
      - name: name
        in: query
        description: The user's real name
        schema:
          type: string
      - name: username
        in: query
        description: The user's login name
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/user'
  /users/{user-id}:
    get:
      description: 'Get user by ID'
      operationId: GetUserById
      parameters:
      - $ref: '#/components/parameters/user-id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/user'

Вы завершили декларативное руководство по агенту для Microsoft 365 Copilot. Теперь, когда вы знакомы с возможностями декларативного агента, вы можете узнать больше о декларативных агентах в следующих статьях.