Бесплатный web search для ИИ-агентов
Неделю назад мой агент с уверенным лицом описывал трактат, которого не существует. С датой. С подписантами. С пафосом. Ноль записей в вебе.
Это и есть класс галлюцинаций, который убивает доверие к малым моделям: не заикания и не циклы, а уверенное выдумывание. Фикс простой: пусть модель проверит факт в вебе, прежде чем commit'ить ответ.
SIMURG (https://github.com/doofzoff/SIMURG), zero-leak стриминговый страж для вывода LLM который я писал в прошлой статье: ловит сбой декодирования прямо в потоке (репетитивные циклы, дрейф языка, мусор типа #REF!) и режет стрим до того, как пользователь увидит плохой токен. numpy единственный зависимости, работает с любым OpenAI-совместимым эндпоинтом (vLLM, llama.cpp, Ollama).
А в свежем v1.0.3 вышла та самая фича: бесплатный web search слой для агентов на TinyFish. В репо встроен бесплатный ключ, то есть нулевая настройка:
pip install simurg
python3 -m simurg.websearch "Что такое DTF?" --ground
Одна деталь, ради которой я это люблю: поисковик с удовольствием отдаст реальные доки на несуществующий субъект ("Zorbachian treaty of 1874" вернет реальные трактаты 1874 года). Поэтому ground() требует, чтобы сам субъект упомянут в evidence. Generic-хиты дают thin, а не бесплатную путевку в attested.
Цифры, которые важны: $0 на запрос, stdlib-only (urllib), на любые ошибки (таймаут, 429, битый JSON) отвечает пустым результатом, а не исключением. В наших внутренних замерах на фактологических промптах с этим слоем уровень галлюцинаций упал до 1-5%.
Код, примеры, тесты и 13-страничная paper: https://github.com/doofzoff/SIMURG
Дайте агенту интернет. Это бесплатно.