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

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

Возможности — это атомарные действия, которые 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_type — page или 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"]
}
}