Создание самосовершенствующихся налоговых агентов с помощью Codex

Авторы: члены технического штата Аравинд Сринивасан и Самай Шамдасани (Thrive Holdings), Артур Фернандес Араужо и Джон де Вассейг (OpenAI)

Как компании Thrive Holdings и OpenAI совместно разработали налоговый искусственный интеллект для бухгалтеров Crete, объединив опыт практиков с циклом на базе Codex

Реальные системы ведут себя в продакшне иначе, чем в лаборатории, давая сбои, которые трудно предусмотреть до развертывания. Команды часто обнаруживают такие ошибки уже после запуска, а затем тратят недели на изучение пограничных случаев, корректировку промптов и преобразование отзывов из продакшна в долгосрочные улучшения продукта. Этот цикл обратной связи является ручным и медленным, и система совершенствуется только тогда, когда в процесс вмешивается инженер. Но сегодня, благодаря продуманной инфраструктуре оценок (evals), прямому доступу к практикам и реальным средам, а также передовым агентским возможностям Codex, вы можете создавать агентов, способных к самосовершенствованию.

В этой статье мы подробно расскажем, как мы использовали Codex для создания такого агента. За последние шесть месяцев инженеры и исследователи компании OpenAI, работающие на передовой, совместно с инженерами Thrive Holdings создали Tax AI вместе и для Crete — сети, объединяющей более 30 бухгалтерских фирм, чтобы помочь в подготовке все более сложных налоговых деклараций. Вместо того чтобы полагаться на инженеров при поиске и устранении каждого сбоя, Tax AI использует Codex для превращения данных об использовании в продакшене в структурированные сигналы, которые подпитывают автономное улучшение.

Специалисты Crete ежесезонно готовят десятки тысяч налоговых деклараций, что требует обработки миллионов исходных документов. Для документов средней и высокой степени сложности только ввод данных может занимать до восьми часов на одну декларацию. Часто это связано с неструктурированными источниками, документами за прошлые годы, а также ручным извлечением данных и расчетами. Они указали нам на подготовку налогов как на серьезнейшее «узкое место» в самый напряженный период налогового сезона.

Чтобы решить эту проблему, Tax AI обработал 7 000 налоговых деклараций в фирмах Crete, участвовавших в пилотном проекте в этом налоговом сезоне. Система автоматизирует значительную часть трудоемкого процесса подготовки налоговых деклараций по формам 1040 и 1041, но еще более впечатляющим, чем рост эффективности, является то, что сама система стала заметно лучше версии, развернутой три месяца назад.

Измеримое самосовершенствование

В Tax AI практики загружают исходные файлы вместе со всеми примечаниями по конкретным клиентам. Затем Tax AI создает проект налогового расчета, готовый к проверке. Это экономит специалистам около трети времени на подготовку налогов, позволяет составлять декларации с точностью до 97% и увеличивает пропускную способность примерно на 50%, освобождая больше времени для общения с клиентами.

Мы можем количественно оценить это улучшение, поняв, насколько точно Tax AI может заполнить декларацию без последующей необходимости исправлений. Мы измеряем точность, проверяя, какая доля деклараций достигает 75%, 90% или 100% правильного заполнения полей. На момент запуска лишь четверть деклараций имела 75% правильно заполненных полей, но в течение шести недель этот показатель достиг 86%. Система продемонстрировала еще более быстрый рост на уровнях 90% и 100% правильного заполнения полей. Эти пороговые значения дают нам практическое представление о том, насколько сильно различные декларации все еще требуют доработки со стороны специалистов.

На раннем этапе Tax AI справлялся с более простыми задачами, такими как формы W-2 и 1099. По мере развития сезона система перешла к более сложным декларациям с формами K-1, приложениями и сложными пограничными случаями. Каждая новая функция экономила больше времени на одну декларацию по сравнению с предыдущей, поскольку решаемые задачи были сложнее и отнимали больше времени при выполнении вручную. Мы продолжаем видеть постоянный прогресс и сегодня.

Далее мы расскажем, как наши команды совместно проектировали Tax AI, чтобы сделать его самосовершенствующимся, опираясь на три ключевых столпа: 1) обратная связь от экспертов-практиков, 2) продакшн-трейсы (структурированная история от входных данных до финального результата) и 3) цикл итераций на базе Codex, основанный на специально настроенных оценках для обеспечения непрерывного и более быстрого развития продукта. Мы надеемся, что наш опыт будет полезен другим разработчикам в областях, где экспертные знания практиков имеют решающее значение для формирования качества всей системы в целом и проходящих через нее данных.

По мере расширения Tax AI на более сложные формы отчетности доля оцененных деклараций, достигших 75%, 90% и полного заполнения, продолжала расти в течение всего налогового сезона.

Проблема

По мере перехода к более сложным аспектам подготовки налогов (формы K-1, приложения по аренде недвижимости и налоговые формы, где значения необходимо сверять по нескольким исходным файлам) стало очевидно, что реальная проблема заключается в том, сможет ли продукт сделать сбои в продакшене видимыми, понятными и пригодными для устранения.

На ранних этапах существования продукта большая часть исправлений выполнялась вручную. Практики могли исправлять ошибки системы, но продукт не фиксировал полный контекст: измененное перед подачей значение могло отражать реальную ошибку извлечения, проблему сопоставления, отсутствие поддержки в продукте или ожидаемый шум в рабочем процессе. Разбор этих случаев по-прежнему требовал участия инженерной команды. Инженеры могли использовать агентов по программированию, но система еще не была спроектирована так, чтобы осмысленно применять ИИ внутри цикла улучшений. У нас не было сигнала для определения правильного направления движения.

Наш подход: трехкомпонентный цикл

Это привело нас к созданию системы на основе трех принципов:

  1. Будьте ближе к практикам: Люди, выполняющие эту работу, должны направлять обучение продукта. Их интуиция и понимание показывают, какие ошибки имеют значение, и помогают определить, на каких частях рабочего процесса стоит сосредоточиться в следующий раз.
  2. Создавайте продукт так, чтобы продакшн генерировал фактуру: Продукт должен фиксировать не только входные и выходные данные; он должен отражать весь путь от исходного материала до извлеченных полей и происхождения данных, а также последующей отправки и экспертной корректировки.
  3. Создайте цикл улучшений на базе Codex: Как только проблемы в продакшене становятся видимыми и структурированными, они могут превратиться в результаты анализа, целевые тесты (evals) и задачи для инженеров с определенным объемом работ. Затем Codex может помочь в проведении расследований, предложении изменений, их проверке с помощью целевых тестов и тестов на регрессию, а также в продвижении продукта вперед гораздо быстрее, чем при чисто ручном цикле итераций.

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

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

Доход от сдачи недвижимости в аренду указывается в Приложении E (Schedule E) индивидуальной налоговой декларации. С инженерной точки зрения задачу извлечения этих данных легко описать, но сложно качественно выполнить. Система должна прочитать неструктурированные исходные материалы (рукописные заметки, электронные письма, электронные таблицы и другие файлы клиента), извлечь поля арендной недвижимости, которые система может с уверенностью сопоставить с налоговым движком, и сохранить достаточно доказательств, чтобы специалист мог утвердить или скорректировать результат. Упрощенный пример ниже показывает, как могут выглядеть такие исходные файлы и извлеченные данные.

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

1. Исправление специалиста выявляет сбой

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

Поскольку мы могли детально видеть эти исправления, мы превратили процесс проверки из терминального этапа после сбоя в цикл непрерывного обучения. Мы спроектировали рабочий процесс так, чтобы фиксировать действия экспертов в виде структурированных данных. Теперь каждое вмешательство подпитывает цикл совершенствования продукта, точно регистрируя, что предложил Tax AI, что изменил специалист и что в конечном итоге попало в поданную декларацию.

2. Трейсы продукта превращают исправления в оценки

Для такого сложного рабочего процесса, как аренда недвижимости, система должна сохранять то, что происходит между исходными файлами и поданной декларацией. На этом пути документы организуются, разделяются и классифицируются; поля арендуемой недвижимости извлекаются со ссылками на исходный материал; эти значения сопоставляются с налоговым движком, и специалисты все еще могут исправить их перед подачей. Такие трейсы на уровне продукта позволяют исследовать, где именно произошел сбой. Чтобы превратить исправления практиков в полезные цели для оценки, система обрабатывает их в три этапа:

  • Захват расхождений: Результат работы Tax AI сравнивается с поданной декларацией для создания строк проверки на уровне полей, которые фиксируют ожидаемое значение, прогнозируемое значение и то, является ли разница существенной для исправления.
  • Группировка связанных сбоев: Аналогичные строки проверки группируются, чтобы отделить повторяющиеся ошибки продукта от ожидаемого шума в рабочем процессе. Например, повторяющиеся исправления специалистов могут показать, что Tax AI часто пропускает поля дней справедливой аренды, неправильно обрабатывает «прочие расходы» или путает несколько объектов недвижимости в одном исходном пакете.
  • Превращение повторяющихся паттернов в цели для оценки: После рассмотрения и измерения повторяющиеся проблемы становятся четкими целями для оценки (eval targets), которые Codex должен улучшить.

Строки проверки арендуемого имущества отделяют повторяющиеся сбои в продукте от ожидаемого шума, после чего превращают применимые на практике случаи в цели для оценки, которые дают Codex стимул к развитию.

3. Полученный результат становится новой высотой для Codex

Третий столп — это создание инженерного цикла, способного реагировать на эти новые оценки. Именно здесь Codex оказывается в самом центре.

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

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

  • Исследование конвейера: изучение исходных пакетов, схем извлечения, поведения сопоставителя (маппера) и путей кода для определения того, является ли проблема неподдерживаемым полем, пропущенным паттерном извлечения, проблемой выбора источника, пробелом в маппере или ошибкой оценщика.
  • Внедрение целевых испровлений: расширение схемы извлечения, улучшение выбора источников для документов об аренде имущества, обновление маппера налогового движка или доработка оценщика, если ожидаемый рабочий шум засчитывается как сбой.
  • Проверка и предложение: повторный запуск целевой оценки, запуск более широких пакетов регрессионных тестов и подготовка кандидатного пул-реквеста для инженерного обзора.
  • Замыкание цикла: превращение повторяющейся коррекции со стороны специалиста в измеримую инженерную задачу. Если доказательства неоднозначны или их нельзя безопасно автоматизировать, кейс возвращается в продукте-команду вместо того, чтобы продавливаться через этот цикл.

Сквозной цикл самосовершенствования: производственные трассировки выявляют повторяющиеся исправления на уровне полей, которые становятся сигналами сбоев, доступными для анализа Codex наряду с трассировкой, оценками, репозиторием и навыками. Шаблоны, поддающиеся обработке, превращаются в ограниченные оценки и кандидатные изменения продукта; неоднозначные кейсы направляются инженерам на рассмотрение. Каждое выпущенное улучшение создает новые производственные данные для следующего цикла.

Как использовать Codex для построения этого цикла

Пример с арендой недвижимости символизирует более широкий многоразовый паттерн: использование производственных артефактов и трассировок для улучшения возможностей агента. Получив в качестве входных данных проверенные выводы из производственных данных, исходные трассировки, ожидаемый вывод налогового движка, соответствующие примеры кода и команды оценки, Codex может существенно повысить производительность и точность в течение недель и месяцев. Это опирается на принципы, описанные в наших работах по инженерии обвязки (harness engineering) и Symphony, в которых подробно рассказывается, как делать задачи понятными для Codex, предоставлять ограниченный контекст и инструменты, а также сохранять валидацию и экспертную оценку человека частью среды. 

Эти данные не превращаются в задачу для Codex автоматически. Корректировка специалиста может отражать пропуск извлечения, проблему сопоставления, неподдерживаемое поведение продукта, налоговое заключение или ожидаемый рабочий шум. Только после того, как повторяющиеся различия будут рассмотрены и сгруппированы в конкретный вывод, система превращает их в ограниченную задачу с четким условием успеха.

Мы применяем эту автоматизацию к ограниченному слою продукта. Этот слой выполняет извлечение и отображает исходные документы в налоговые рабочие процессы. Инженеры по-прежнему несут ответственность за архитектуру, продуктовые решения и релизы. Специалисты управляют циклом улучшений посредством той работы, которую они делают и так: исправляя извлеченные значения, проверяя декларации и утверждая окончательные отчеты.

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

Обычный текст

1
/candidates/FIND-RENTAL-0042/
2
3
├── repo/ [1]
4
│ └── branch: codex/fix-rental-0042
5
│ │
6
│ ├── AGENTS.md
7
│ │
8
│ ├── tasks/FIND-RENTAL-0042/
9
│ │ ├── task.yaml
10
│ │ ├── EXEC_PLAN.md
11
│ │ └── RESULTS.md
12
│ │
13
│ ├── app/tax-ai/rental-income/ [2]
14
│ │ ├── agent.ts
15
│ │ ├── schema.ts
16
│ │ ├── provenance.ts
17
│ │ └── mapper.ts
18
│ │
19
│ ├── evals/ [3]
20
│ │ ├── datasets/fair-rental-days.yaml
21
│ │ ├── suites/fair-rental-days.yaml
22
│ │ ├── suites/rental-income-regression.yaml
23
│ │ └── graders/rental-income.yaml
24
│ │
25
│ ├── skills/ [4]
26
│ │ ├── eval-runner/
27
│ │ └── tax-field-docs/
28
│ │
29
│ └── docs/ [4]
30
│ ├── architecture/
31
│ └── task-environments/
32
33
└── scoped-tools/ [5]
34
├── production-trace
35
├── source-artifacts
36
└── tax-engine-docs

Ограниченная среда задач Codex отделяет доступное для записи рабочее дерево [1] от доступного только для чтения производственного контекста [5]. Рабочее дерево содержит ограниченную поверхность продукта, которую Codex может проверять или изменять [2], целевые и регрессионные оценки, определяющие успех [3], а также многоразовые навыки/документы, кодирующие то, как выполнять задачу и учитывать предыдущие решения [4]. Контекст «только для чтения» предоставляет производственную трассировку, исходные документы, предсказание Tax AI, финализированную декларацию и документацию по полям налогового движка, чтобы Codex мог исследовать сбой без изменения исходных данных.

Масштабирование на новые домены

Тот же цикл применим и за пределами аренды недвижимости. На достижение 90% точности и полноты (precision and recall) для арендуемой недвижимости ушло около шести недель и потребовался значительный инженерный надзор, но эта работа принесла многоразовые абстракции, артефакты обзора, соглашения об оценке и шаблоны реализации, которые облегчили поддержку столь же сложных графиков, таких как Приложение C (Schedule C) и Приложение A (Schedule A).

Tax AI доказывает путь к созданию самосовершенствующихся агентов. Специалисты генерируют ценные сигналы обратной связи в процессе оказания услуг. Продуктовые рабочие процессы сохраняют эти сигналы в качестве структурированных данных. Инженерные системы на базе оценок проверяют улучшения до того, как они попадут в продакшен, а управляемый агентом цикл поддерживает непрерывный поток самосовершенствования системы. 

Структура Thrive Holdings позволяет нам тиражировать эту среду в конкретных отраслях. Holdings выступает одновременно владельцем и оператором, поэтому наши объединенные инженерные команды могут работать напрямую со специалистами и производственными данными изнутри таких бизнесов, как Crete, не как вендоры, а как партнеры. Это означает, что технология, продукт и сервис находятся под одной крышей, помогая нам двигаться быстрее и создавать исключительные продукты.

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

Совместно наши команды используют трехчастный дизайн Tax AI в качестве чертежа для построения рабочих процессов в других областях по всей экосистеме Thrive Holdings; бухгалтерских рабочих процессов, таких как ведение бухгалтерии и аудит, а также операционных процессов вроде автоматизации ИТ-поддержки. В разных доменах и индустриях более широкое обещание самосовершенствующихся агентов остается в силе. Лучшими агентами управляют люди, помогая им становиться более способными, заслуживающими доверия и ценными с течением времени.

Чтобы узнать больше о команде OpenAI, работавшей над этим проектом, свяжитесь с нами.

Автор

Аравинд Сринивасан, Самай Шамдасани, Артур Фернандес Араужо, Джон де Вассейж

Полный текст статьи читайте на OpenAI