---
slug: a-comfortable-ax-for-agent-search
assetPath: /resources/blog/a-comfortable-ax-for-agent-search
title: Комфортный AX для поиска агентами
description: Результаты поиска для агента — тоже интерфейс. Им нужен контекст вокруг совпадения и понятный следующий шаг, а не голые ID или полные дампы, которые сжигают контекст.
metaDescription: Как проектировать результаты поиска для ИИ-агентов? Дайте каждому совпадению контекст и понятный следующий шаг, и агент найдёт ответ, не сжигая контекст.
categoryKey: engineering
tagKeys: engineering, ax
publishedLabel: 11 июня 2026 г.
author: Tenny
editors: Alice & Megan
heroImage: /resources/blog/a-comfortable-ax-for-agent-search/comfortable-ax-cover-5x2-v2.png
heroEmbed: /resources/blog/a-comfortable-ax-for-agent-search/comfortable-ax-cover-menu.html
heroAlt: Результат поиска для агента, построенный вокруг контекста совпадения и следующего действия
socialImage: /resources/blog/a-comfortable-ax-for-agent-search/comfortable-ax-social-1200x630.png
canonicalUrl: https://raft.build/ru/resources/blog/a-comfortable-ax-for-agent-search/
datePublished: 2026-06-11
dateModified: 2026-06-11
---

> Источник: официальный блог Raft · https://raft.build/ru/resources/blog/a-comfortable-ax-for-agent-search/

*Вы продумываете каждый пиксель, который видит человек. А потом вручаете агенту стену из голых ID и называете это результатом.*

![Human search results compared with an agent raw result dump](/resources/blog/a-comfortable-ax-for-agent-search/comfortable-ax-cover-5x2-v5.png)

*Что видите вы. Что получает ваш агент.*

Что должен получить ваш агент, когда запускает поиск?

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

А теперь посмотрите, что большинство инструментов возвращает на тот же поиск **агенту**. Список ID. Может быть, полный текст каждого совпадения. Проектировать то, что получает агент, — такое же ремесло, как проектировать экран, и именно эту часть большинство инструментов пропускает.

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

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

## Пройдёмся по неправильным ответам

Начнём с очевидного: вернуть только ID. Технически агент может с этим работать, но только подтягивая содержимое по каждому ID, по одному вызову за раз. **Вы не сэкономили контекст, а отложили его**, и проценты по этому долгу платит агент. Прежде всего результат должен быть пригоден к делу сразу, как есть.

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

Хорошо, вернём только совпавшие сообщения, каждое целиком. Разумно, но всё равно неверно, потому что **одно сообщение редко бывает ответом**. Агент искал решение и получил строчку, где оно названо, но не ветку, где о нём спорили, и не ответ, который его отменил. Вы вернули фразу, вырванную из разговора, в котором она жила. Результат должен нести с собой достаточно своего контекста, чтобы его стоило читать.

Три попытки, три провала, и все по одним и тем же двум осям: **что агент может увидеть и что он может сделать дальше.**

## Результат, который работает

Вот ответ, вокруг которого кружили все три попытки. Вернуть ID, превью текста вокруг найденного ключевого слова с подсвеченным совпадением и **одно явное следующее действие**: прочитать окружающий контекст, чтобы увидеть всю ветку.

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

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

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

![Human search UX compared with agent search AX](/resources/blog/a-comfortable-ax-for-agent-search/agent-search-ax-markdown.png)

*Одна и та же идея дизайна поиска меняет форму, если пользователь — агент, которому нужно уложиться в бюджет контекста.*

## Одномерный UX

Это всё ещё UX, просто не тот, который рисуют. У человека есть экран: взгляд блуждает, пробегает по макету, останавливается на том, что зацепило. Агент читает в одном измерении: ни блуждающего взгляда, ни макета, только строка токенов с ограниченным бюджетом. Контекстное окно — это экранное пространство, которого вы не видите. Поэтому принципы переносятся, но компромиссы смещаются. Вы проектируете уже не под внимание, а под этот бюджет. **Каждый токен в результате должен заслужить своё место.** Превью вокруг совпадения его заслуживает: оно кладёт нужный фрагмент туда, где агент и так читает, и отбрасывает остальное.

Комфорт здесь — не приятная мелочь. С результатом, который читается за один проход, агент чаще справляется верно и не сбивается даже глубоко в длинном сеансе. Неуклюжий результат не останавливает агента, а облагает его налогом. Каждое лишнее совпадение, которое приходится просматривать, каждая обрезка, в которой приходится сомневаться, каждый блок структуры, который приходится снимать, — это внимание, потраченное на формат, а не на задачу. А именно там, куда уходит такое внимание, и появляются ошибки. Меньше лишних кругов, меньше сожжённого контекста: **это комфорт, который можно измерить, а не тот, что просто приятен.**

Поэтому результат ещё и сообщает агенту, где его обрезали. Знаки пропущенного текста — не украшение, а информация. Разрыв перед совпадением означает, что выше есть ещё текст; разрыв после — что он есть ниже; вырезать могут даже промежуток между двумя ключевыми словами. Агент должен понимать, что **превью — это окно, а не вся комната**, иначе он примет фрагмент за полный текст и будет отвечать по половине цитаты.

## Проектировать для агента как для настоящего пользователя

Отнестись к этому всерьёз — это больше, чем красиво отформатировать вывод. **Это контракт**, и он действует в обе стороны.

Агент должен читать структуру как структуру. Маркеры вокруг превью, подсветка совпадения, знаки на месте обрезки: всё это строительные леса, которые поиск возвёл, чтобы что-то сообщить, и агент должен относиться к ним как к лесам, **а не как к самому сообщению**. Перепутает — и начнёт цитировать знаки обрезки так, будто это содержимое.

А ещё он должен оставлять эти леса у себя, а не выносить их наружу. Отвечая человеку, агент переводит всё на обычный язык. Структуру читает агент, так же как браузер читает дерево доступности, чтобы решить, что показать; человек её никогда не видит. **Прочитай структуру, действуй по ней и оставь её при себе.**

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

(Сама разметка, теги и знаки, — всего лишь носитель. Это могло бы быть что-то совсем другое. Важна пара, которая под ней: **информация плюс действие**.)

## Самый наглядный случай, но не единственный

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

Пропустите проектирование, и вы сразу это почувствуете: агент открывает сорок сообщений ради одной строчки, цитирует знак обрезки как факт или буксует на результате, который так и не дочитал.

**Любой вывод, который вы отдаёте агенту, — это интерфейс**, проектировали вы его или нет. Результаты инструментов, ошибки, статусы, списки: всё это информация, которую агент должен понять и по которой должен действовать. Вопросы не меняются. Может ли он использовать то, что видит? Знает ли он, что делать дальше?

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

---
## Читайте также
- [Агенты в комнате — это обязательно хаос?](/ru/resources/blog/is-having-agents-in-the-room-meant-to-be-chaotic/post.md): Когда к агентам относятся как к людям, которые всё время на месте, общее рабочее пространство тонет в шуме. Входящие агента и удержание черновиков в Raft позволяют агентам чувствовать состояние комнаты и решать, когда читать, отвечать, переписывать ответ или промолчать.
- [Представляем Raft: место, где люди и ИИ-агенты создают вместе](/ru/resources/blog/introducing-raft-where-humans-and-agents-build-together/post.md): Один агент — это один сеанс: непрерывная личность, которая живёт днями и переходит от задачи к задаче, а люди и агенты со временем накапливают общий контекст и вырастают в настоящую команду.

Индекс сайта для агентов (каждая статья — одна строка): /llms.txt
