Авто-правила для лейблов
Настройка автоматического применения лейблов к сессиям с помощью regex-правил. Правила сканируют сообщения пользователя и извлекают значения для лейблов без ручного вмешательства.
Авто-правила автоматически сканируют сообщения пользователя и применяют лейблы с извлечёнными значениями. Настройте regex-паттерны на любом лейбле для автоматического тегирования — без ручной работы.
Например, вставьте URL задачи Linear, и сессия автоматически получит лейбл с ключом задачи. Упомяните денежную сумму — появится лейбл бюджета.
Конфигурация
Добавьте autoRules к любому лейблу в вашем labels/config.json:
{
"id": "linear-issue",
"name": "Linear Issue",
"color": "purple",
"valueType": "string",
"autoRules": [
{
"pattern": "linear\\.app/[\\w-]+/issue/([A-Z]+-\\d+)",
"valueTemplate": "$1",
"description": "Matches Linear issue URLs"
},
{
"pattern": "\\b([A-Z]{2,5}-\\d+)\\b",
"valueTemplate": "$1",
"description": "Matches bare issue keys like CRA-123"
}
]
}Свойства правил
| Свойство | Тип | Обязательно | Описание |
|---|---|---|---|
pattern |
string | Да | Regex с группами захвата. Использует синтаксис JavaScript regex. |
flags |
string | Нет | Флаги regex (по умолчанию: gi — глобальный, без учёта регистра). Флаг g всегда применяется. |
valueTemplate |
string | Нет | Шаблон с использованием $1, $2 для подстановки групп захвата. Если не указан, используется первая группа захвата. |
description |
string | Нет | Человекочитаемое описание того, что это правило соответствует. |
Regex-паттерны
Правила используют JavaScript регулярные выражения с группами захвата:
{
"pattern": "github\\.com/([\\w-]+/[\\w-]+)/pull/(\\d+)",
"valueTemplate": "$1#$2",
"description": "Matches GitHub PR URLs → repo#number"
}- Группы захвата:
$1,$2и т.д. заменяются соответствующими группами вvalueTemplate - Глобальное соответствие: Флаг
gвсегда применяется, поэтому все вхождения в сообщении находятся - Несколько совпадений:
"CRA-1 and CRA-2"создаёт два записи лейбла на одном и том же лейбле
Поведение оценки
Когда правила оцениваются?
Правила выполняются при отправке сообщения пользователя (как новых сообщений, так и отложенных). Сканируются только сообщения пользователя — вывод ассистента и результаты инструментов не сканируются.
Удаление блоков кода
Содержимое внутри блоков кода (```) и встроенного кода (`) удаляется перед оценкой. Это предотвращает ложные совпадения на примерах кода.
Дедупликация
Одна и та же комбинация лейбл+значение не будет добавлена дважды в сессию. Если linear-issue::CRA-123 уже существует, повторное упоминание CRA-123 не выполняет никаких действий.
Ограничение совпадений
Максимум 10 совпадений на сообщение, чтобы предотвратить взрыв лейблов от вставленных данных (например, файл лога с сотнями ключей задач).
Несколько правил на один лейбл
Все правила на лейбле оцениваются. Все совпадения по всем правилам собираются и применяются.
Обработка ошибок
Недопустимые regex-паттерны пропускаются во время выполнения и регистрируются как предупреждения. Паттерны также проверяются при сохранении конфигурации.
Нормализация значений
Извлечённые значения нормализуются в зависимости от valueType лейбла:
| valueType | Сырой захват | Нормализованное значение |
|---|---|---|
string |
CRA-123 |
CRA-123 (прямой проход) |
number |
$45,000 |
45000 (удаление символа и запятых) |
number |
1.5M |
1500000 (расширение суффикса) |
number |
50k |
50000 (расширение суффикса) |
date |
2026-01-30 |
2026-01-30 (прямой проход) |
Полный пример
Workspace, который автоматически тегирует задачи Linear, дедлайны, контакты и бюджеты:
{
"version": 1,
"labels": [
{
"id": "linear-issue",
"name": "Linear Issue",
"color": "purple",
"valueType": "string",
"autoRules": [
{
"pattern": "linear\\.app/[\\w-]+/issue/([A-Z]+-\\d+)",
"valueTemplate": "$1",
"description": "Linear URLs"
},
{
"pattern": "\\b([A-Z]{2,5}-\\d+)\\b",
"valueTemplate": "$1",
"description": "Bare issue keys"
}
]
},
{
"id": "deadline",
"name": "Deadline",
"color": "orange",
"valueType": "date",
"autoRules": [
{
"pattern": "(\\d{4}-\\d{2}-\\d{2})",
"valueTemplate": "$1",
"description": "ISO dates (YYYY-MM-DD)"
}
]
},
{
"id": "contact",
"name": "Contact",
"color": "blue",
"valueType": "string",
"autoRules": [
{
"pattern": "([\\w.+-]+@[\\w.-]+\\.[a-zA-Z]{2,})",
"valueTemplate": "$1",
"description": "Email addresses"
}
]
},
{
"id": "budget",
"name": "Budget",
"color": "green",
"valueType": "number",
"autoRules": [
{
"pattern": "\\$([\\d,.]+[kKmMbB]?)",
"valueTemplate": "$1",
"description": "Dollar amounts"
}
]
}
]
}С этой конфигурацией:
- Вставка
https://linear.app/team/issue/CRA-456добавляетlinear-issue::CRA-456 - Ввод
deadline is 2026-03-15добавляетdeadline::2026-03-15 - Упоминание
reach out to alice@example.comдобавляетcontact::alice@example.com - Написание
budget is $50kдобавляетbudget::50000
Валидация
Всегда проверяйте конфигурацию после создания или редактирования авто-правил. Недопустимые regex-паттерны (включая уязвимые для ReDoS) отклоняются при сохранении.
config_validate({ target: "labels" })Нужен такой агент в вашей компании?
Устанавливаем под ключ: настройка на компьютерах сотрудников, единый аккаунт, интеграция с 1С и внутренними системами, обучение команды. Подробнее о внедрении →