Перейти к основному содержимому

Справочник возможностей

Возможности — это атомарные действия, которые Gratis AI Agent может вызывать в вашей установке WordPress. Каждая возможность — это зарегистрированный класс PHP, который предоставляет JSON-схему — агент считывает эту схему во время выполнения, чтобы понять, какие параметры требуются и что возвращает возможность.

На этой странице описаны все возможности, поставляемые с Gratis AI Agent v1.9.0.


Пользовательские типы записей

Эти возможности управляют пользовательскими типами записей (CPT), зарегистрированными через агента. Регистрации сохраняются в таблицу опций WordPress, поэтому они сохраняются после деактивации и повторной активации plugin.

register_post_type

Регистрирует новый пользовательский тип записи.

Параметры

ПараметрТипОбязательныйОписание
slugstringДаКлюч типа записи (макс. 20 символов, без заглавных букв, без пробелов)
singular_labelstringДаЧеловекочитаемое имя в единственном числе, например Portfolio Item
plural_labelstringДаЧеловекочитаемое имя во множественном числе, например Portfolio Items
publicbooleanНетБудет ли тип записи публично доступен. По умолчанию true
supportsarrayНетПоддерживаемые функции: title, editor, thumbnail, excerpt, comments, revisions, custom-fields. По умолчанию ["title","editor"]
has_archivebooleanНетВключена ли архивная страница типа записи. По умолчанию false
menu_iconstringНетКласс Dashicons или URL для значка меню администратора. По умолчанию "dashicons-admin-post"
rewrite_slugstringНетURL slug для типа записи. По умолчанию используется slug

Пример

{
"slug": "portfolio",
"singular_label": "Portfolio Item",
"plural_label": "Portfolio Items",
"public": true,
"supports": ["title", "editor", "thumbnail"],
"has_archive": true,
"menu_icon": "dashicons-portfolio"
}

Возвращает { "success": true, "slug": "portfolio" }


list_post_types

Возвращает все пользовательские типы записей, зарегистрированные агентом.

Параметры — нет

Возвращает

{
"post_types": [
{
"slug": "portfolio",
"singular_label": "Portfolio Item",
"plural_label": "Portfolio Items",
"public": true
}
]
}

delete_post_type

Отменяет регистрацию пользовательского типа записи, ранее зарегистрированного агентом. Существующие записи этого типа остаются в базе данных, но больше недоступны через тип записи.

Параметры

ПараметрТипОбязательныйОписание
slugstringДаКлюч типа записи для удаления

Возвращает { "success": true, "slug": "portfolio" }


Пользовательские таксономии

Эти возможности управляют пользовательскими таксономиями. Как и CPT, регистрации таксономий сохраняются.

register_taxonomy

Регистрирует новую пользовательскую таксономию.

Параметры

ПараметрТипОбязательныйОписание
slugstringДаКлюч таксономии (макс. 32 символа)
singular_labelstringДаЧеловекочитаемое имя в единственном числе, например Project Category
plural_labelstringДаЧеловекочитаемое имя во множественном числе, например Project Categories
post_typesarrayДаSlug типов записей, к которым должна быть прикреплена эта таксономия
hierarchicalbooleanНетtrue для стиля категорий, false для стиля меток. По умолчанию true
publicbooleanНетБудут ли термины публично доступны. По умолчанию true
rewrite_slugstringНетURL slug для таксономии. По умолчанию используется slug

Пример

{
"slug": "project-category",
"singular_label": "Project Category",
"plural_label": "Project Categories",
"post_types": ["portfolio"],
"hierarchical": true
}

Возвращает { "success": true, "slug": "project-category" }


list_taxonomies

Возвращает все пользовательские таксономии, зарегистрированные агентом.

Параметры — нет

Возвращает

{
"taxonomies": [
{
"slug": "project-category",
"singular_label": "Project Category",
"post_types": ["portfolio"],
"hierarchical": true
}
]
}

delete_taxonomy

Отменяет регистрацию пользовательской таксономии, ранее зарегистрированной агентом.

Параметры

ПараметрТипОбязательныйОписание
slugstringДаКлюч таксономии для удаления

Возвращает { "success": true, "slug": "project-category" }


Система дизайна

Возможности системы дизайна изменяют визуальное представление сайта WordPress — от пользовательского CSS до паттернов блоков и логотипа сайта.

inject_custom_css

Добавляет CSS в <head> сайта через wp_add_inline_style. CSS хранится в опции gratis_ai_agent_custom_css и аккуратно снимается с очереди при сбросе возможности.

Параметры

ПараметрТипОбязательныйОписание
cssstringДаВалидный CSS для внедрения
labelstringНетЧеловекочитаемая метка для этого блока CSS, используется в журналах отладки. По умолчанию "agent-injected"
replacebooleanНетЕсли true, заменяет весь ранее внедренный CSS. По умолчанию false (добавляет)

Пример

{
"css": ":root { --primary: #1a1a2e; --accent: #e94560; } body { font-family: 'Inter', sans-serif; }",
"label": "brand-colours",
"replace": false
}

Возвращает { "success": true, "bytes": 96 }


add_block_pattern

Регистрирует переиспользуемый паттерн блоков в библиотеке паттернов WordPress.

Параметры

ПараметрТипОбязательныйОписание
slugstringДаИдентификатор паттерна, например gratis/hero-dark
titlestringДаЧеловекочитаемое название паттерна, отображаемое в редакторе
contentstringДаСериализованная разметка блоков (HTML) для паттерна
categoriesarrayНетSlug категорий паттерна, например ["featured", "hero"]
descriptionstringНетКраткое описание, отображаемое в средстве выбора паттернов
keywordsarrayНетКлючевые слова для поиска

Возвращает { "success": true, "slug": "gratis/hero-dark" }


list_block_patterns

Перечисляет все паттерны блоков, зарегистрированные агентом.

Параметры — нет

Возвращает

{
"patterns": [
{
"slug": "gratis/hero-dark",
"title": "Dark Hero",
"categories": ["hero"]
}
]
}

Устанавливает логотип сайта WordPress на указанный ID вложения или URL удалённого изображения. Если предоставлен URL, изображение загружается и импортируется в Media Library.

Параметры

ParameterTypeRequiredDescription
attachment_idintegerNoID существующего вложения Media Library
urlstringNoURL удалённого изображения для импорта и установки в качестве логотипа

Необходимо предоставить одно из attachment_id или url.

Возвращает { "success": true, "attachment_id": 42 }


apply_theme_json_preset

Применяет именованный пресет цветов/типографики к theme.json активной темы (или global-styles). Пресеты — это тщательно подобранные наборы, поддерживаемые командой Gratis AI Agent.

Параметры

ParameterTypeRequiredDescription
presetstringYesИмя пресета, например minimal-dark, warm-editorial, corporate-blue
mergebooleanNoЕсли true, объединить с существующими значениями вместо замены. По умолчанию false

Доступные пресеты

PresetDescription
minimal-darkПочти чёрный фон, белый текст, один акцентный цвет
warm-editorialТёплый не совсем белый фон, заголовки с засечками, землистые акцентные цвета
corporate-blueТёмно-синяя и белая палитра с профессиональной типографикой
vibrant-startupЯркие градиенты, скруглённые углы, современный шрифт без засечек
classic-blogНейтральные серые оттенки, комфортная высота строки, традиционные отступы макета

Возвращает { "success": true, "preset": "minimal-dark" }


Global Styles

Возможности Global Styles читают и записывают значения theme.json через WordPress Global Styles API, влияя на все блоки и шаблоны на всём сайте.

get_global_styles

Возвращает текущую конфигурацию глобальных стилей.

Параметры

ParameterTypeRequiredDescription
pathstringNoJSON-указатель на конкретное значение, например /color/palette или /typography/fontSizes. Если опущен, возвращает весь объект.

Возвращает полный объект глобальных стилей или значение по path.


set_global_styles

Обновляет одно или несколько значений в конфигурации глобальных стилей.

Параметры

ParameterTypeRequiredDescription
pathstringYesJSON-указатель на устанавливаемое значение, например /color/palette
valueanyYesНовое значение

Пример — добавить цвет в палитру

{
"path": "/color/palette",
"value": [
{ "slug": "primary", "color": "#1a1a2e", "name": "Primary" },
{ "slug": "accent", "color": "#e94560", "name": "Accent" }
]
}

Возвращает { "success": true, "path": "/color/palette" }


reset_global_styles

Сбрасывает все изменения глобальных стилей, применённые агентом, восстанавливая значения темы по умолчанию.

Параметры — нет

Возвращает { "success": true }


Возможности Navigation Menu создают и управляют навигационными меню WordPress и их элементами.

create_menu

Создаёт новое навигационное меню WordPress.

Параметры

ParameterTypeRequiredDescription
namestringYesИмя меню, например Primary Navigation
locationstringNoОбласть темы, к которой нужно назначить это меню, например primary

Возвращает { "success": true, "menu_id": 7 }


update_menu

Переименовывает меню или переназначает его на область темы.

Параметры

ParameterTypeRequiredDescription
menu_idintegerYesID меню для обновления
namestringNoНовое имя меню
locationstringNoОбласть темы для назначения или переназначения

Возвращает { "success": true, "menu_id": 7 }


add_menu_item

Добавляет элемент в существующее навигационное меню.

Параметры

ParameterTypeRequiredDescription
menu_idintegerYesID целевого меню
typestringYesТип элемента: custom, post_type или taxonomy
titlestringNoМетка элемента меню (обязательна для типа custom)
urlstringNoURL для элементов custom
object_idintegerNoID записи или ID термина для элементов post_type/taxonomy
parent_idintegerNoID элемента меню, под которым нужно вложить этот элемент
positionintegerNoПозиция в меню с отсчётом от нуля

Возвращает { "success": true, "item_id": 12 }


remove_menu_item

Удаляет элемент из навигационного меню.

Параметры

ParameterTypeRequiredDescription
item_idintegerYesID элемента меню для удаления

Возвращает { "success": true, "item_id": 12 }


list_menus

Перечисляет все навигационные меню WordPress, включая назначенные им области темы.

Параметры — нет

Возвращает

{
"menus": [
{
"menu_id": 7,
"name": "Primary Navigation",
"location": "primary",
"item_count": 5
}
]
}

Управление настройками

Возможности Options читают и записывают настройки WordPress через get_option / update_option. Встроенный блок-лист безопасности предотвращает случайное изменение критически важных настроек.

get_option

Читает настройку WordPress.

Параметры

ParameterTypeRequiredDescription
option_namestringYesКлюч настройки, например blogname

Возвращает { "option_name": "blogname", "value": "My Site" }

Возвращает ошибку, если option_name находится в блок-листе безопасности.


set_option

Записывает настройку WordPress.

Параметры

ParameterTypeRequiredDescription
option_namestringYesКлюч настройки
valueanyYesНовое значение (автоматически сериализуется для массивов/объектов)
autoloadstringNo"yes" или "no". По умолчанию сохраняет существующую настройку autoload

Возвращает ошибку, если option_name находится в безопасном блок-листе.

Возвращает { "success": true, "option_name": "blogname" }


delete_option

Удаляет опцию WordPress.

Параметры

ПараметрТипОбязательныйОписание
option_namestringДаКлюч опции для удаления

Возвращает ошибку, если option_name находится в безопасном блок-листе.

Возвращает { "success": true, "option_name": "my_custom_option" }


list_options

Выводит список опций WordPress, соответствующих шаблону.

Параметры

ПараметрТипОбязательныйОписание
patternstringНетШаблон SQL LIKE для фильтрации названий опций, например gratis_%. Возвращает все опции, если не указан (используйте с осторожностью на больших базах данных).
limitintegerНетМаксимальное количество результатов. По умолчанию 50, максимум 500

Возвращает

{
"options": [
{ "option_name": "gratis_ai_agent_version", "autoload": "yes" }
],
"total": 1
}

Управление содержимым

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

create_post

Создает новую запись WordPress, страницу или элемент пользовательского типа записей.

Параметры

ПараметрТипОбязательныйОписание
titlestringДаЗаголовок записи
contentstringНетТело записи — принимает обычный текст, HTML или сериализованную разметку блоков
statusstringНетdraft, publish, pending, private. По умолчанию draft
post_typestringНетСлаг типа записи, например post, page или любой зарегистрированный CPT. По умолчанию post
excerptstringНетКраткое описание, показываемое в архивах и результатах поиска
categoriesarrayНетМассив названий или ID рубрик для назначения
tagsarrayНетМассив названий или ID меток для назначения
authorintegerНетID пользователя WordPress, которого нужно установить автором записи. По умолчанию текущий пользователь
datestringНетДата публикации в формате ISO 8601, например 2026-05-01T09:00:00
page_templatestringНетФайл шаблона для назначения этой записи или странице, например page-full-width.php. Имеет смысл только когда post_typepage или CPT, поддерживающий шаблоны страниц.

Пример

{
"title": "Welcome to Our New Site",
"content": "<!-- wp:paragraph --><p>Hello world!</p><!-- /wp:paragraph -->",
"status": "publish",
"post_type": "page",
"page_template": "page-full-width.php"
}

Возвращает { "success": true, "post_id": 42, "permalink": "https://example.com/welcome/" }


update_post

Обновляет существующую запись или страницу WordPress.

Параметры

ПараметрТипОбязательныйОписание
post_idintegerДаID записи для обновления
titlestringНетНовый заголовок записи
contentstringНетНовое тело записи
statusstringНетНовый статус: draft, publish, pending, private
excerptstringНетНовая выдержка
categoriesarrayНетЗаменить полный список рубрик этим массивом названий или ID
tagsarrayНетЗаменить полный список меток этим массивом названий или ID
page_templatestringНетНовый файл шаблона для назначения этой записи или странице, например page-full-width.php. Передайте пустую строку, чтобы удалить назначение шаблона и вернуться к значению темы по умолчанию.

Пример — изменить шаблон после создания

{
"post_id": 42,
"page_template": "page-full-width.php"
}

Возвращает { "success": true, "post_id": 42 }


batch_create_posts

Создает несколько записей одним вызовом возможности, сокращая количество обращений при сборке сайта или массовом импорте содержимого. Записи создаются последовательно; если одна завершается ошибкой, остальные продолжают выполняться, а сбой сообщается в массиве результатов.

Параметры

ПараметрТипОбязательныйОписание
postsarrayДаМассив объектов записей, каждый из которых принимает те же параметры, что и create_post
stop_on_errorbooleanНетЕсли true, остановить обработку после первого сбоя. По умолчанию false

Пример

{
"posts": [
{
"title": "About Us",
"post_type": "page",
"status": "publish",
"page_template": "page-full-width.php"
},
{
"title": "Services",
"post_type": "page",
"status": "publish"
},
{
"title": "Contact",
"post_type": "page",
"status": "publish"
}
]
}

Возвращает

{
"created": 3,
"failed": 0,
"results": [
{ "success": true, "post_id": 42, "title": "About Us" },
{ "success": true, "post_id": 43, "title": "Services" },
{ "success": true, "post_id": 44, "title": "Contact" }
]
}

set_featured_image

Назначает избранное изображение (миниатюру записи) существующей записи или странице. Принимает ID существующего вложения из медиатеки или URL удаленного изображения; когда указан URL, изображение автоматически скачивается и импортируется.

Параметры

ПараметрТипОбязательныйОписание
post_idintegerДаID записи или страницы для обновления
attachment_idintegerНетID существующего вложения в медиатеке
urlstringНетURL удаленного изображения для импорта и установки в качестве избранного изображения
alt_textstringНетАльтернативный текст, который нужно применить к вложению, если оно импортируется из URL

Необходимо предоставить одно из attachment_id или url.

Возвращает { "success": true, "post_id": 42, "attachment_id": 17 }


create_contact_form

Создает контактную форму с помощью активного plugin форм (Contact Form 7, WPForms, Fluent Forms или Gravity Forms, в зависимости от того, что установлено). Возвращает шорткод, который можно встроить в любую запись или страницу.

Параметры

ПараметрТипОбязательноОписание
titlestringДаНазвание формы, отображаемое в админке plugin форм
fieldsarrayДаУпорядоченный список полей формы (см. объект поля ниже)
recipientstringНетАдрес электронной почты для получения отправленных данных. По умолчанию используется email администратора WordPress
subjectstringНетСтрока темы письма. Поддерживает заполнители [your-name] и [your-subject] при использовании Contact Form 7
confirmation_messagestringНетСообщение, отображаемое после успешной отправки. По умолчанию: "Thank you for your message. We'll be in touch soon."

Объект поля

КлючТипОбязательноОписание
namestringДаВнутреннее имя поля / машинный ключ
labelstringДаПонятная человеку метка, отображаемая в форме
typestringДаtext, email, tel, textarea, select, checkbox, radio, file, date
requiredbooleanНетДолжно ли поле быть заполнено перед отправкой. По умолчанию false
optionsarrayНетВарианты для полей select, checkbox и radio
placeholderstringНетТекст заполнителя для полей ввода текстового типа

Пример

{
"title": "Restaurant Booking Enquiry",
"fields": [
{ "name": "your-name", "label": "Name", "type": "text", "required": true },
{ "name": "your-email", "label": "Email", "type": "email", "required": true },
{ "name": "party-size", "label": "Party size", "type": "select", "options": ["1–2", "3–5", "6–10", "10+"] },
{ "name": "your-message", "label": "Special requests", "type": "textarea", "required": false }
],
"recipient": "[email protected]",
"subject": "New booking enquiry from [your-name]"
}

Возвращает

{
"success": true,
"form_id": 3,
"shortcode": "[contact-form-7 id=\"3\" title=\"Restaurant Booking Enquiry\"]"
}

Визуальная проверка

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

capture_screenshot

Делает скриншот страницы WordPress по заданному URL с использованием серверного headless-браузера. Изображение сохраняется в медиатеку, и возвращается CDN URL.

Параметры

ПараметрТипОбязательноОписание
urlstringДаПолный URL страницы для скриншота, например https://example.com/about/
widthintegerНетШирина области просмотра в пикселях. По умолчанию 1280
heightintegerНетВысота области просмотра в пикселях. По умолчанию 800
full_pagebooleanНетЗахватить всю прокручиваемую страницу вместо только области просмотра. По умолчанию false
delay_msintegerНетМиллисекунды ожидания после загрузки страницы перед захватом; полезно для анимированного содержимого. По умолчанию 500
labelstringНетПонятная человеку метка, сохраняемая вместе с вложением в медиатеке

Возвращает

{
"success": true,
"attachment_id": 88,
"url": "https://example.com/wp-content/uploads/2026/04/screenshot-about.png",
"width": 1280,
"height": 800
}

compare_screenshots

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

Параметры

ПараметрТипОбязательноОписание
before_urlstringДаURL страницы для захвата состояния «до»
after_urlstringДаURL страницы для захвата состояния «после». Может быть тем же URL при сравнении в разные моменты времени
widthintegerНетШирина области просмотра для обоих захватов. По умолчанию 1280
thresholdfloatНетПорог различия пикселей (0.0–1.0). Пиксели в пределах этого допуска считаются неизменёнными. По умолчанию 0.1

Возвращает

{
"success": true,
"diff_score": 0.04,
"changed_pixels": 2340,
"total_pixels": 1024000,
"diff_attachment_id": 91,
"diff_url": "https://example.com/wp-content/uploads/2026/04/diff-about.png"
}

diff_score равный 0.0 означает отсутствие видимых изменений; 1.0 означает, что изменился каждый пиксель.


review_page_design

Делает скриншот страницы и отправляет его языковой модели для визуального анализа. Возвращает структурированную оценку, охватывающую макет, типографику, использование цвета и проблемы доступности.

Параметры

ПараметрТипОбязательноОписание
urlstringДаПолный URL страницы для проверки
focusstringНетРазделённый запятыми список областей проверки, на которых нужно сделать акцент: layout, typography, colour, accessibility, mobile. По умолчанию: все области
widthintegerНетШирина области просмотра. По умолчанию 1280

Возвращает

{
"success": true,
"screenshot_url": "https://example.com/wp-content/uploads/2026/04/review-about.png",
"assessment": {
"overall": "The page structure is clean and readable. Two accessibility issues detected.",
"layout": "Good visual hierarchy. Hero section is prominent.",
"typography": "Body text is 15px — consider increasing to 16px for readability.",
"colour": "Contrast ratio on the CTA button (#fff on #4a90e2) is 3.1:1 — below the WCAG AA threshold of 4.5:1.",
"accessibility": ["Low contrast on CTA button", "Missing alt text on hero image"],
"suggestions": ["Darken the CTA button to #1a5cb0 to pass WCAG AA", "Add descriptive alt text to the hero image"]
}
}

Устанавливаемые возможности

Реестр устанавливаемых возможностей позволяет расширить агента дополнительными пакетами возможностей, распространяемыми как plugins WordPress. Каждый пакет регистрирует одну или несколько возможностей с использованием стандартного API возможностей.

list_available_abilities

Возвращает каталог пакетов возможностей, доступных для установки из реестра.

Параметры

ПараметрТипОбязательныйОписание
categorystringНетФильтровать по категории: ecommerce, seo, media, social, developer

Возвращает

{
"packs": [
{
"slug": "gratis-ai-agent-woocommerce",
"name": "WooCommerce Abilities",
"category": "ecommerce",
"version": "1.0.0",
"abilities": ["create_product", "update_pricing", "manage_inventory"],
"installed": false
}
]
}

install_ability

Загружает и активирует пакет способностей из реестра.

Параметры

ПараметрТипОбязательныйОписание
slugstringДаSlug плагина пакета способностей

Возвращает { "success": true, "slug": "gratis-ai-agent-woocommerce", "abilities_added": 3 }


recommend_plugin

Запрашивает реестр способностей, чтобы найти лучший плагин для описанного варианта использования, и, при необходимости, устанавливает его.

Параметры

ПараметрТипОбязательныйОписание
descriptionstringДаОписание желаемой функциональности на естественном языке
installbooleanНетЕсли true, немедленно устанавливает рекомендованный плагин. По умолчанию false

Пример

{
"description": "I need a contact form with file upload support and spam protection",
"install": false
}

Возвращает

{
"recommendation": {
"slug": "contact-form-7",
"name": "Contact Form 7",
"reason": "Widely adopted, supports file uploads, and integrates with Akismet for spam filtering.",
"alternatives": ["wpforms-lite", "fluent-forms"]
}
}