Перейти к содержимому
arckep.ru — все нейросети в одном месте без VPN Перейти
>AISTUDY_
Поддержать
AUTHORСвежий выпуск №024 → Куда внедрять агентов: фронт или тыл
Авторская колонка · перевод текста с проверкой фактовСЕРИЯ 019
Авторская колонка · выпуск №019

Перевод текста
с проверкой фактов

Как переложить массив из 268 разноязычных источников на русский конвейером из трёх ИИ-агентов и проверить каждую запись, чтобы модель не переврала датировки, атрибуцию источников и медицинские факты.

naidiyogu.ru — социальная сеть для людей, вовлечённых в йогу. Проекту понадобился энциклопедический раздел: массив из 268 записей про асаны, дыхательные практики, замки, философию, школы — собранный из разноязычных источников и переложенный на русский моделью Claude Opus 4.8. Модель переводит гладко, но на фактах уверенно врёт. Разбор — как прогнать массив текста через ИИ и проверить факты на каждой записи, а не поверить модели на слово.
Раздел 01

Задача

naidiyogu.ru — социальная сеть для людей, вовлечённых в йогу: преподаватели, ученики, студии, расписания. В какой-то момент проекту понадобился собственный энциклопедический раздел — асаны, пранаямы, замки, шаткармы, философские термины, школы, первоисточники. Не подборка ссылок на чужие сайты, а свой свод, собранный из проверенных источников на разных языках (санскритские первоисточники, английская академическая литература, русские переводы) и переложенный на русский. Двести шестьдесят восемь статей.

Из этих 268 примерно половина — про здоровье. У каждой асаны есть раздел «чем полезна» и раздел «когда стоит воздержаться». Это меняет всю постановку задачи. Справочный контент о здоровье бьёт по двум порогам сразу.

Двойная цена ошибки Читатель с грыжей диска делает позу, которую ему «полезно» по статье, и получает обострение. Отдельно — поисковик: и Google, и Яндекс держат фильтры против массового недостоверного контента о здоровье, и один такой раздел утягивает в санкцию весь домен, включая коммерческие страницы преподавателей, ради которых площадка и работает.

Перекладывать эти 268 записей на русский руками — месяцы работы редактора, знающего и санскрит, и анатомию. Opus 4.8 переводит и переписывает запись за секунды, с санскритским именем, датировкой трактата и списком источников. Но на фактах уровня «в каком именно трактате впервые описана эта поза» модель галлюцинирует: уверенно ставит не тот текст, не ту дату, тащит противопоказание с коммерческого сайта, который сам его переписал у другого. В статье про здоровье, под которой стоит имя площадки, это источник обеих бед сразу.

Поэтому реальная задача — не просто перевести массив на русский, а проверить, что при переводе факты не переврались. Причём проверку проходят две инстанции, и работают они по-разному. Сначала фактам должен поверить человек, который эти факты знает, — читатель и преподаватель. Потом разделу должен поверить поисковик, который приведёт туда читателя. Первая половина текста — как переводили массив с проверкой каждой записи. Вторая — самая тонкая проверка, медицинских фактов, чтобы раздел о здоровье не улетел в бан.

Раздел 02

Один проход модели не годится

Наивная схема — дать модели список из 268 названий и промпт «напиши статью про каждое». На выходе 268 гладких текстов, из которых порядка 250 верны. Проблема в остальных: они выглядят так же уверенно, как верные. Модель не помечает, где сомневается, — весь текст одинаково убедителен. Именно эти невидимые полтора-два десятка статей и есть тот риск, ради которого всё затевалось.

Значит, тексту нельзя доверять от того же агента, что его написал. Нужна редакция: автор пишет, независимый скептик ищет ошибки, автор правит по замечаниям. Все три роли играет Opus 4.8, но разными вызовами с разными задачами, а склеивает их скрипт-оркестратор.

Раздел 03

Конвейер: три роли, Workflow, Opus 4.8

Оркестрация построена на Workflow — это механизм Claude Code, где скрипт на JS запускает субагентов, каждый со своим промптом и своей схемой ответа. Скелет конвейера — три фазы на статью:

export const meta = {
  name: 'glossary-batch',
  phases: [
    { title: 'Написание' },
    { title: 'Проверка' },
    { title: 'Исправление' },
  ],
}

const CHUNK = 4

async function runOne(item) {
  const entry = await agent(writePrompt(item),  { schema: ENTRY_SCHEMA,   phase: 'Написание' })
  const v     = await agent(verifyPrompt(entry), { schema: VERDICT_SCHEMA, phase: 'Проверка' })
  if (v.facts_ok === false && v.issues.length) {
    const fix = await agent(fixPrompt(entry, v), { schema: ENTRY_SCHEMA,   phase: 'Исправление' })
    return { entry: fix, fixed: true }
  }
  return { entry, fixed: false }
}

agent() — вызов субагента на модели сессии, то есть на Opus 4.8. schema заставляет его вернуть строго структурированный ответ. Третий вызов — исправление — запускается только если проверка вернула facts_ok: false с непустым списком проблем. Никакого прямого HTTP к API из скрипта нет: субагенты ходят в модель и в веб через сам харнесс Claude Code, а для сверки фактов у них есть встроенные веб-поиск и загрузка страниц.

Схема 1Конвейер трёх фаз на статью

Запускался конвейер не сразу на всех 268, а пачками — датасет разбит на 10 партий по 15–30 записей, сгруппированных по темам (топовые асаны, термины ямы-ниямы и чакры, стили и школы, пранаямы, мудры и замки, первоисточники). Каждая партия — отдельный прогон:

Workflow(scriptPath: 'pipeline/glossary-batch.js',
         args: { inputDir: '<сырьё>', batchName: 'batch7', items: [...] })
Раздел 04

Два промпта, на которых всё держится

Промпт автора. Ценность не в «напиши хорошо», а в жёстко заданных источниках — именно на источниках модель и врёт:

Ты редактор энциклопедии йоги. Аудитория: преподаватели и ученики, не специалисты.
Пиши простым языком, своими словами.

Источники, обязательно:
- термины и этимология, из словаря Монье-Вильямса и первоисточников (Йога-сутры,
  Упанишады, Гита) в проверенных переводах;
- история асан, из академического Roots of Yoga (Маллинсон и Синглтон) и самих
  трактатов (Хатха-Йога Прадипика, Гхеранда Самхита). Не путай трактаты, точно
  указывай, в каком тексте описана поза, это самая частая ошибка;
- техника и польза, минимум два авторитетных источника; коммерческие йога-сайты
  нельзя как единственный источник.

Через веб-поиск проверь 2-3 самых рискованных утверждения (датировки, авторы, номера
стихов), не распыляйся на очевидное.

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

Строчка про «не путай трактаты» — не перестраховка. Атрибуция первоисточника (в какой книге впервые описана поза) — ровно то, на чём Opus 4.8 галлюцинирует чаще всего, и именно она чаще всего требовала ручной доводки в конце.

Промпт проверяющего. Установка принципиально другая:

Адверсариальная проверка статьи энциклопедии йоги. Цель: найти ошибки, не одобрить.

Материал: <JSON статьи>

1. Факты. Возьми 1-2 НЕЗАВИСИМЫХ источника, которых НЕТ в списке у статьи (первоисточник,
   Монье-Вильямс, академический Roots of Yoga). Проверь рискованное: датировки, авторов,
   атрибуцию трактатов, номера сутр, этимологию, медицинские противопоказания.
2. Уникальность. Не является ли русский текст замаскированным переводом источника.

Верни: facts_ok (да/нет), issues (конкретные проблемы), uniqueness_ok, independent_sources.
При обоснованном сомнении: facts_ok = нет, с пояснением.

Два слова здесь несут всю нагрузку. «Адверсариальная» — проверяющий настроен опровергать, а не подтверждать, иначе он штампует «сойдёт». «Независимых» — сверка идёт по источникам, которых у автора не было, иначе проверка сводится к перечитыванию тех же ссылок и ничего не ловит.

Раздел 05

Схема ответа и оркестрация

И автор, и проверяющий отвечают не прозой, а строго по JSON-схеме. У статьи:

ENTRY_SCHEMA = {
  required: ['slug', 'section', 'name_ru', 'lead', 'sections',
             'sources_verified', 'needs_check'],
  sections:         [{ heading, body }],
  sources_verified: [{ name, url }],   // минимум один источник не-энциклопедия
  needs_check:      Boolean,           // true, если надёжного первоисточника по сути нет
}

У вердикта — свои поля: facts_ok, issues[], uniqueness_ok, independent_sources[].

Смысл жёсткой схемы прикладной. Свободный ответ модели надо парсить и угадывать, где кончилась статья и началась болтовня. Схема проверяется автоматически на выходе: если модель вернула не тот формат, вызов повторяется, пока не сойдётся. Это превращает капризный вывод в предсказуемые данные, которые скрипт кладёт в свод без ручного разбора. 268 статей нельзя собрать вручную из вольных ответов — из структурированных можно.

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

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

for (let i = 0; i < items.length; i += CHUNK) {
  const slice = items.slice(i, i + CHUNK)
  const res = await parallel(slice.map((it) => () => runOne(it)))
  // ...сложить результаты, залогировать прогресс
}
const missing = items.filter((it) => !done[it.slug])
if (missing.length) await sweep(missing)   // второй заход по упавшим

Упавшие статьи (сеть моргнула, модель не уложилась в схему) собирались после основного прохода и прогонялись повторно. Между большими пачками — строго последовательно: параллельный запуск нескольких партий ловил всплеск лимита, и падало больше, чем экономилось.

Раздел 06

Что дал конвейер, где споткнулся, и картинки

По своду: 49 статей поправлено автоматически на фазе проверки (facts_ok: false → фикс), ещё 4 доведены руками, когда даже проверяющий не поймал тонкость. Все четыре — про атрибуцию трактатов: в одной стойку на руках приписали не тому тексту, в статье про позу кошки притянули источники, которых там быть не могло, в третьей датировку трактата поставили на век мимо. Ошибки такого рода не «выглядят» ошибками — текст вокруг гладкий; их видно только при сверке по первоисточнику.

Грабля: доступ к научным базам Лучшие данные по медицинским противопоказаниям лежат в PubMed, PMC, Springer, и часть из них отдавала субагенту капчу или отлуп вместо страницы. Несколько самых авторитетных рецензируемых работ агент честно не цитировал — не потому что их нет, а потому что не смог открыть. Вывод обратный ожидаемому: реальная доступность источников выше той, что видит headless-агент, и для серьёзного медслоя нужен нормальный доступ к базам, а не то, что отдаётся боту.

Картинки — отдельный трек. Иллюстрации к асанам (90 штук) генерились отдельным Python-скриптом через google-genai, вне текстового конвейера:

from google import genai
from google.genai import types
client = genai.Client(api_key=os.environ['GKEY'])

resp = client.models.generate_content(
    model='gemini-3.1-flash-image',
    contents=prompt,
    config=types.GenerateContentConfig(
        temperature=0.35,
        response_modalities=['IMAGE'],
        image_config=types.ImageConfig(aspect_ratio='4:3'),
    ),
)

Единый стиль — винтажная литография в духе старинного индийского трактата, промпт и настройки вынесены в один конфиг, чтобы не расходились между позами. Скрипт с чекпоинтом: пропускает уже сгенерированные файлы, дорисовывает только недостающие, три попытки на картинку. Пол в позах распределён вручную — 60 мужских, 30 женских.

Итог первой части: 268 статей, где расхождения не «наверное где-то есть», а найдены и закрыты поимённо; спорное помечено флагом. Достоверность как факт — есть. Дальше её надо предъявить тому, кто про этот факт ничего не знает.

Раздел 07 · Часть II — предъявление поиску

YMYL: почему справочник о здоровье под особым прицелом

Google выделяет класс тем YMYL — «твои деньги или твоя жизнь»: финансы, право, здоровье, всё, где плохой совет вредит человеку напрямую. Йога с «пользой» и «противопоказаниями» попадает в «здоровье» целиком, и для этого класса планка доверия к автору поднята в разы: обычной странице хватает быть полезной, странице о здоровье надо ещё доказать, что за ней стоит кто-то, кому есть основания верить.

Две интуиции здесь заводят прямо в фильтр. Первая: кажется, что выкатывать сотни страниц разом опасно, безопаснее «капать». Наоборот. Представитель Google формулирует прямо: массовая публикация сама по себе — норма, а искусственное растягивание «создаёт больше проблем, чем решает». Разом — правильнее. Вторая, важнее: кажется, что санкция бьёт по ИИ-контенту. Она бьёт по бесполезности — по тексту без ценности, с низкой уникальностью, без редактуры, сделанному ради манипуляции выдачей. Метод не при чём: тот же текст, написанный человеком наспех, попадёт под тот же фильтр. Поэтому уникальность и сверка по источникам из первой части — не перфекционизм, а входной билет. У Яндекса своя версия того же фильтра — АГС, против авто-сгенерированного бесполезного контента.

Как проверяли уникальность

Раз уникальность — входной билет, её мерили инструментально, а не на глаз. Каждую готовую статью прогоняли через сторонний сервис проверки (text.ru) по его API: сервис сравнивает текст с проиндексированным вебом и возвращает процент оригинальности. Пакет на сервисе покупается символами и списывается с пробелами, а весь свод — 787 537 символов; закупленного пакета хватило на 179 статей из 268, на остатке квота кончилась.

РазделСредняя уникальностьРовно 100%
Термины и философия99.6%64
Стили и школы100%все проверенные
Асаны97.5%68
Весь свод (179 из 268)98.6%154 статьи

Все статьи ниже 90% оказались именно асанами (одна из балансовых поз стоя — 78.65%). Это не плагиат, а структурное свойство: раздел «как выполнять» у любой позы — конечная последовательность одних и тех же шагов, и на всех йога-сайтах она описана похоже. Уникальны вводка, польза и история; техника объективно совпадает. Поэтому технику не переписывали ради процентов, а остаток квоты не докупали — по проверенным разделам картина уже ясна, средняя под 99% держит контент на безопасной стороне фильтра.

Раздел 08

Авторство без фейка

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

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

Легальный путь — не подделка, а понижение планки того, что именно ты утверждаешь. Три рычага, работающие вместе:

01Авторство площадки вместо персоны«Материал подготовлен редакцией по проверенным источникам» — честно, так и есть, и это даёт авторство без 140 фальшивых подписей. Институциональное авторство поисковик принимает, если за ним реальная страница о проекте и реальные преподаватели.
02Дисклеймер вместо мед-экспертизыПротивопоказания подаются как общая справка, а не персональная рекомендация, и тогда не обязаны быть выверены врачом построчно. Текст в духе «это общие предостережения, а не медицинский совет; при травмах, хронических болезнях, беременности или сомнениях обсудите позу с врачом или преподавателем» — на каждой статье, где есть противопоказания.
03Именная проверка точечно«Проверено преподавателем таким-то» — сильнейший сигнал, но только там, где правда проверено: топ-20–30 самых искомых поз, которые реальный преподаватель реально просмотрел. Не 140, а столько, сколько честно закрывается.

Разница между этими рычагами и фейковой подписью — это разница между «предъявить то, что есть» и «нарисовать то, чего нет». Первое движок вознаграждает, второе карает.

Раздел 09

Чистка мифов: самое неочевидное место работы

Главная угроза достоверности медсправочника — не там, где источников не хватает, а там, где источник вроде есть, но неверный. Традиционные «противопоказания» кочуют по всем йога-сайтам, звучат авторитетно, а наукой либо не подтверждаются, либо прямо опровергаются. Пилот на пяти «опасных» позах показал трёхуровневую картину.

Схема 2Три уровня противопоказаний

Уровень 1 — серьёзные противопоказания, у которых источники есть. Для перевёрнутых поз, переразгибания шеи, силовых нагрузок нашлись рецензируемые работы, часть — поимённо. Глаукома при инверсиях подтверждена сильнее всего: систематический обзор побочек йоги 2013 года в PLOS One называет стойку на плечах прямо, отдельное исследование меряет рост внутриглазного давления в позе плуга — с 18 до 22.5. Это оставляют и подкрепляют.

Уровень 2 — мифы, которые наука опровергает. Это важнее источников, потому что это правка самого контента. «Нельзя перевёрнутые при менструации» — авторитетные источники прямо опровергают, идёт это из традиции одной школы, не из медицины. «Поза стимулирует щитовидку» — миф без научной основы. Глаукома, приписанная позе, которая вообще не инверсия, — перенос факта не туда. Оставить в справочнике о здоровье медицински опровергнутое — ровно тот сигнал недостоверности, за который прилетает. По этому уровню отдельный агентский проход прошёл по 44 статьям и внёс 38 правок — убрал неподтверждённые противопоказания. Не вслепую: сохранил обоснованные (реальный механизм — вакуум живота в определённых практиках, прямое давление на горло в некоторых позах, сильные инверсии при мигрени), сохранил пользу и не тронул ни одного упоминания беременности.

Уровень 3 — бытовая осторожность лёгких поз. Источников не требует, закрывается тем самым общим дисклеймером.

Достоверность медконтента — не только «добавить источники», но и «убрать ложные утверждения, которые все переписывают друг у друга не глядя». Второе тоньше и важнее.
Раздел 10

Как достоверность показана на странице

Последний слой — обвязка, чтобы поисковик всё это увидел. На каждой статье микроразметка Schema.org: разметка определения термина и разметка статьи плюс хлебные крошки — машиночитаемое «это справочная статья с таким определением и такими источниками». Источники, по которым сверялись, показаны прямо на странице. Дисклеймер выводится автоматически на тех и только тех статьях, где есть блок противопоказаний.

Схема 3Перелинковка хаб-и-спицы

Перелинковка — «хаб и спицы»: витрина, связанные статьи и, ключевое, связка каждой статьи с каталогом преподавателей (статья про стиль ведёт на тех, кто его ведёт). Это убирает страницы-сироты, которые плохо индексируются, и гонит ссылочный вес на коммерческие страницы, ради которых справочник и делали.

Раздел 11

Промпты, которые можно забрать

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

P01 · Автор статьи справочника

Ты редактор справочника по <теме>. Аудитория: практики, не специалисты.
Пиши простым языком, своими словами.

Источники, обязательно:
- бери из первоисточников и академических работ, не только из энциклопедий общего профиля;
- коммерческие тематические сайты нельзя как единственный источник;
- через веб-поиск проверь 2-3 самых рискованных утверждения (датировки, авторство,
  точные ссылки), не распыляйся на очевидное.

Открытый раздел, нужна уникальность: никаких переводов и близких пересказов.

Верни строго по схеме: название, лид, блоки {заголовок, тело}, источники {название, ссылка},
пометка needs_check (true, если надёжного первоисточника по сути нет). Без текста вне схемы.

P02 · Адверсариальный проверяющий

Адверсариальная проверка статьи. Цель: найти ошибки, не одобрить.
Материал: <JSON статьи>

1. Факты. Возьми 1-2 НЕЗАВИСИМЫХ источника, которых нет в списке у статьи. Проверь
   рискованное: датировки, авторство, точные ссылки, спорные утверждения о здоровье.
2. Уникальность. Не замаскированный ли это перевод или близкий пересказ.

Верни строго по схеме: facts_ok (да/нет), issues (конкретные проблемы), uniqueness_ok,
independent_sources. При обоснованном сомнении: facts_ok = нет, с пояснением.

P03 · Чеклист запуска раздела о здоровье (YMYL)

Перед публикацией массового справочного раздела о здоровье проверь:
- авторство площадки указано (редакция + страница о проекте), персональных фейк-подписей нет;
- дисклеймер "общая справка, не медицинский совет" на каждой статье с противопоказаниями;
- именная проверка специалистом только там, где реально проверено (топ запросов);
- мифические противопоказания вычищены, обоснованные и беременность сохранены;
- источники показаны на странице;
- микроразметка (определение термина, статья, хлебные крошки);
- перелинковка хаб-и-спицы + связка с коммерческим разделом, страниц-сирот нет;
- выкат целиком, не по частям.
Раздел 12

Чем это живёт дальше

Раздел на проде: 268 статей, у асан — литографии в едином стиле. Достоверность здесь оказалась не свойством модели, а свойством конструкции вокруг неё: три роли на статью вместо одного прохода, адверсариальная проверка вместо самооценки, узаконенный флаг «не знаю источник» вместо выдумки, и отдельно — предъявление этой достоверности поисковику, где главной работой была не добавка источников, а чистка чужих мифов.

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

Перевод, которому можно верить, отличается от просто перевода именно этим — он не прячет, где заканчивается проверенное.
Выпуск №019 · опубликовано 08.07.2026
Авторская колонка AIStudy · выпуск №019 · перевод текста с проверкой фактов

// Обсуждение

Можно писать анонимно. Укажите email, чтобы получать уведомления об ответах.