Taxbit запустил ИИ-ассистента для налоговиков: 55% пользователей возвращаются с новым вопросом
Taxbit встроил в дашборд ИИ-ассистента Assist на Amazon Bedrock AgentCore. Он отвечает только по документации, дает ссылки на источники и проверяет, есть ли у пользователя права на нужный раздел. Главный урок: качество ответа определил не выбор модели, а подготовка базы знаний и проверки вокруг нее. Более 55% пользователей задают второй вопрос в течение суток.
AI-обработка оригинала AWS Machine Learning Blog; редакция Hamidun News
Если вы делали чат-бота для поддержки, то знаете, как это обычно выглядит. Бот уверенно отвечает, ссылается непонятно на что, а потом отправляет пользователя на страницу, к которой у него нет доступа. В налоговой сфере такая ошибка стоит дорого: люди принимают решения о подаче деклараций. Команда Taxbit, платформы налогового учета для криптобирж и брокеров, рассказала, как собрала ассистента Assist, которому можно доверять в регулируемой среде.
Какие требования задали архитектуру
У ассистента четыре жестких ограничения. Каждый ответ должен ссылаться на источник, который пользователь может открыть, а если ответа нет, бот обязан об этом сказать. Бот учитывает роль и организацию: сотрудника поддержки нельзя отправлять в админский сценарий. Он не дает налоговых советов: объяснить, как Taxbit считает себестоимость, можно, а посоветовать, какой метод выбрать, нельзя. И наконец, данные должны оставаться в своем регионе.
Агент работает на Strands Agents SDK внутри AgentCore Runtime. Это небольшое Python-приложение: системный промпт, модель и восемь узких инструментов. Среди них поиск по базе знаний, две проверки доступа и четыре инструмента для работы с тикетами поддержки. К налоговым данным клиентов у агента доступа нет вообще.
Ключевое решение по безопасности: модель не работает с идентичностью. Email, ID организации и роли приходят от доверенного сервиса и вшиваются в инструменты через замыкание. Модель может решить, проверять ли права, но не может выбрать, чьи права проверять. Пользовательский ввод санитизируется, так что промпт-инъекция не подделает доверенный контекст.
Где на самом деле выиграли качество
Большую часть усилий команда потратила на базу знаний: Amazon Bedrock Knowledge Bases поверх S3 Vectors с эмбеддингами Cohere Embed English v3. Три источника: публичный сайт с документацией и help-center, документация, сгенерированная из исходного кода продукта, и вручную написанные статьи.
Первый неожиданный выигрыш дала чистка корпуса. В sitemap около 400 URL, но для ответов годятся примерно 70. Более 300 страниц из /blogs/ были маркетингом, и он конкурировал с help-center за роль источника в ответах на compliance-вопросы. Исключение блога заняло минуты и не требовало работы с моделью.
Второй, самый мощный выигрыш дал контекстный чанкинг. Фрагмент из середины документа теряет информацию о том, к чему он относится. Абзац про правила для не-американских режимов отчетности опасно возвращать на вопрос про форму IRS 1099. Поэтому Lambda на этапе POST_CHUNKING добавляет к каждому чанку H1-заголовок документа и лид-абзац, около 128 токенов. Тело чанка ограничили 384 токенами, чтобы все влезло в окно эмбеддера на 512. Проверка на продакшене показала, что около 28% чанков попадали в диапазон 385–512 токенов, и их хвосты молча обрезались бы.
Поиск устроен как воронка: 75 кандидатов из вектора, реранк Cohere Rerank 3.5 в том же вызове Retrieve, топ-12, не более двух чанков на документ и пять лучших в модель. Широкий пул нужен потому, что нужные статьи часто стоят на 20–50 местах векторной выдачи и поднимаются только после реранка. Цитировать можно только публичные источники, и это правило зашито в коде, а не в промпте.
Безопасность и контроль качества
Bedrock Guardrails проверяет каждое входящее сообщение отдельным вызовом ApplyGuardrail только по текущей реплике. Пароли, коды CVV и облачные ключи блокируются. SSN, ITIN, банковские реквизиты и IBAN маскируются на месте, так что агент помогает с процессом, не видя значения. Для истории диалога критично, что actor ID приходит от вызывающего сервиса: рантайм работает под одной сервисной ролью, и иначе история всех пользователей легла бы в один раздел.
Качество измеряют на живом трафике, не блокируя ответы. AgentCore online evaluations сэмплируют 10% сессий и оценивают их шестью встроенными LLM-судьями: полезность, вредность, связность, следование инструкциям, выбор инструментов и точность их параметров. Поверх этого работают собственные судьи: отдельно faithfulness (верность источникам) и relevance (релевантность найденного). Их разделяют сознательно: ответ может быть верен источникам, которые вообще не стоило доставать, и тогда виновата не модель, а поиск. Отдельный классификатор следит, не сползает ли ответ в налоговый совет.
Что из этого взять себе
Первое: сначала чистите корпус, потом тюньте модель. Маркетинговые страницы в индексе ломают ответы лучше любого промпта. Второе: если чанк не знает, к чему он относится, добавьте ему заголовок и область применения. Третье: все, что касается прав и идентичности, держите вне зоны решений модели. Четвертое: разделяйте метрики поиска и генерации, иначе вы будете чинить не то.
Ограничения тоже стоит учитывать. Цифра в 55% повторных вопросов взята из внутренней аналитики Taxbit, и это показатель вовлеченности, а не точности. Решение жестко привязано к стеку AWS. Агент пока ничего не читает из данных клиента, поэтому на задачи вроде «почему у меня расчет такой» он ответить не сможет. Но как шаблон для ИИ-помощника в любой регулируемой области, будь то финансы, медицина или юриспруденция, разбор очень практичный.
- 8 нояб. 2026 г.OpenPetCam: камеру за $12 с опенсорсной прошивкой научили следить за собакой
- 8 нояб. 2026 г.AWS связала 3 ИИ-агента для проверки замены авиационных компонентов
- 8 нояб. 2026 г.Crawl4AI очищает веб-страницы для RAG и ограничивает обход 25 документами
- 8 нояб. 2026 г.AgentCore сохраняет права пользователя при вызове ServiceNow без самописного обмена токенов
Вопросы и ответы по материалу
Что известно по теме: какие требования задали архитектуру?
У ассистента четыре жестких ограничения. Каждый ответ должен ссылаться на источник, который пользователь может открыть, а если ответа нет, бот обязан об этом сказать. Бот учитывает роль и организацию: сотрудника поддержки нельзя отправлять в админский сценарий. Он не дает налоговых советов: объяснить, как Taxbit считает себестоимость, можно, а посоветовать, какой метод выбрать, нельзя. И наконец, данные должны оставаться в своем регионе. Агент работает на Strands Agents SDK внутри AgentCore Runtime.
Что известно по теме: где на самом деле выиграли качество?
Большую часть усилий команда потратила на базу знаний: Amazon Bedrock Knowledge Bases поверх S3 Vectors с эмбеддингами Cohere Embed English v3. Три источника: публичный сайт с документацией и help-center, документация, сгенерированная из исходного кода продукта, и вручную написанные статьи. Первый неожиданный выигрыш дала чистка корпуса. В sitemap около 400 URL, но для ответов годятся примерно 70.
Что известно по теме: безопасность и контроль качества?
Bedrock Guardrails проверяет каждое входящее сообщение отдельным вызовом ApplyGuardrail только по текущей реплике. Пароли, коды CVV и облачные ключи блокируются. SSN, ITIN, банковские реквизиты и IBAN маскируются на месте, так что агент помогает с процессом, не видя значения. Для истории диалога критично, что actor ID приходит от вызывающего сервиса: рантайм работает под одной сервисной ролью, и иначе история всех пользователей легла бы в один раздел. Качество измеряют на живом трафике, не блокируя ответы.
Внедряйте ИИ быстрее рынка вместе с инженерами и фаундерами
Внутри Vibe Club (hamidun.com/club): еженедельные живые мастермайнды и разборы архитектуры с Жемалом Хамидуном, закрытый Tech Radar, LMS и обновляемая база из 370+ боевых скиллов.
Главное из мира ИИ — раз в неделю
7 ключевых событий недели, отобранных вручную. Без шума, репостов и пресс-релизов.
Готово! Проверьте почту — мы отправили подтверждение.