SIMS Twins
Содержание

Правила и ограничения

Эти правила заложены в сервер и не настраиваются клиентом. Они определяют, что вы получите в ответ и чего получить нельзя.

Роли, а не люди#

  • Сервер отвечает про роли и очереди. «Кто отвечает за…» возвращает роль или очередь, а не фамилию.
  • Карточки знаний о конкретных людях по MCP не выдаются.
  • Маршрут «кого спросить» ведёт к роли или очереди.

Отказы на вопросы о людях#

Сервер проверяет каждый свободный текст на входе (about в twins_who, question в twins_ask, query в других инструментах) до поиска. Отказ получают:

  • вопросы об оценке людей: «кто работает лучше всех», рейтинг сотрудников, эффективность или надёжность конкретного человека, «кому можно доверять»;
  • вопросы о дисциплине и кадровых мерах: выговор, увольнение, штраф, премия, понижение;
  • вопросы, где названа конкретная персона: имя, «Имя Фамилия», фамилия или имена, которые известны тенанту.

Ответ на отказ — verdict: "refused" (в twins_who и twins_ask) или пустой список, nohit_reason: "person_question" и текст Не знаю: я отвечаю по утверждениям о процессах, правилах и решениях, не о людях.

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

Модель не используется для оценки сотрудников, вознаграждения, дисциплины и увольнения. Не используйте ответы сервера для этих целей в вашей системе.

Порог k#

Порог k — минимальное число людей в роли, при котором роль можно называть. По умолчанию k = 5; значение тенанта приходит в поле k каждого ответа.

Если в роли меньше k человек:

  • twins_who не называет роль: role_id и title равны null, small_role: true, возвращается только очередь (queue_title) или непрозрачный ключ. Если очереди нет, ответ — «Не знаю»;
  • цитата утверждения, которое рассказала такая роль, заменяется на [claim <id>];
  • идентификаторы шагов малых ролей выдаются непрозрачными ключами; ключ, полученный от сервера, можно подставлять обратно во входные аргументы;
  • агрегаты по роли не выдаются нигде, включая twins_health;
  • фильтр, который сужает выборку до малой роли, даёт nohit_reason: "small_role".

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

Статусы утверждений#

Таблица: Статусы утверждений
СтатусЧто значитВыдаётся ли
proposedпредложено, не подтверждено. Извлечено из источника, но не проверено тем, о ком утверждениеда, с пометкой «предложено, не подтверждено»
confirmedподтвержденода
disputedоспореноникогда. Спор блокирует использование
rejectedотклоненоникогда

Если утверждение стало disputed или rejected, оно пропадает из ответов, а в ленте twins_changes_since появляется withdraw. Клиент обязан удалить копию и перестать его цитировать. twins_resolve для такого утверждения вернёт unavailable.

extraction_reviewed: true означает только, что извлечение проверено. Статус при этом остаётся proposed, пока утверждение не подтвердит тот, о ком оно.

Не показывайте пользователю proposed как установленный факт: сообщайте статус вместе с утверждением.

Якоря#

У каждого утверждения есть источник, locator и цитата-якорь. Утверждение без якоря в двойнике не сохраняется, поэтому любой элемент ответа можно проверить по источнику. Показывая утверждение пользователю, показывайте его quote и locator, а не собственный пересказ.

Цитата маскируется на выходе: персональные данные заменяются, а для малых ролей цитата скрыта целиком. Если у источника asr: true, это машинная расшифровка речи, в ней возможны искажения терминов и аббревиатур.

Время#

Утверждение действует с valid_from до valid_to (если null, действует до сих пор). recorded_at — когда оно записано. twins_decisions и twins_rules принимают as_of, чтобы посмотреть состояние на прошлую дату. Отменённые решения и правила помечены superseded.

Честное «Не знаю»#

Пустой результат — нормальный ответ, а не ошибка. Сервер возвращает verdict: "unknown" (где есть) и nohit_reason:

Таблица: Честное «Не знаю»
nohit_reasonПричина
no_matchпо запросу в утверждениях ничего нет
below_thresholdнайденное слишком далеко от вопроса
out_of_scopeтакого контекста у вас нет (или курсор чужой)
person_questionвопрос о человеке или оценка людей
small_roleфильтр сузил выборку до роли меньше k
filters_excluded_allзаданные фильтры исключили все утверждения

Сервер никогда не отвечает догадкой. Не заменяйте «Не знаю» собственным ответом модели от имени SIMS Twins. Чужой и несуществующий контекст неразличимы: существование чужих данных не раскрывается.

ИИ и раскрытие (ст. 50 Регламента ЕС об ИИ)#

  • Первая строка content[0].text каждого текстового ответа и поле disclosure в каждом структурированном ответе сообщают, что отвечает ИИ-помощник SIMS Twins.
  • Ответы только извлекающие: сервер не генерирует факты, события процессов, оценки тона или эмоций.
  • Ваша система, которая показывает ответы пользователю, должна сохранить это раскрытие.

Тексты как недоверенный ввод#

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

Копии и кэш#

Режим по умолчанию — живой вызов: задайте вопрос и показывайте ответ, не храня текст утверждений дольше одного ответа. Если вы держите ссылки twins://…, синхронизируйте их через twins_changes_since и проверяйте перед показом через twins_resolve. По withdraw удалите копию и перестаньте цитировать в течение 24 часов.