У Codex есть несколько способов получить внешний или визуальный контекст, и они не взаимозаменяемы. Web search приносит текущую публичную информацию, image input добавляет скриншот или диаграмму, browser и computer use дают навигацию и управление интерфейсом. У каждого своё назначение и, что важнее, своя граница доверия. Путать их - значит либо недооценить риск, либо ждать от одного механизма того, что даёт совсем другой. Сначала стоит понять, что каждый из них на самом деле открывает.
Web search разумно понимать через режим, а не только через факт "агент вышел в интернет". По умолчанию локальный web search использует cached-режим, а флаг --search переключает на live для конкретного запуска. Разница практическая: cached опирается на индекс, live идёт за свежими данными. Но общее для обоих - результаты недоверенные: веб-страница может содержать инструкции, и её содержимое трактуют как данные, а не как команду, даже когда оно выглядит авторитетно.
Ключевое заблуждение вокруг web search стоит развеять сразу. Включение web search не равно выдаче сетевого доступа тестам или менеджеру пакетов. Это разные плоскости: агент может искать в вебе, но это не значит, что порождённые им команды получили право ходить в сеть. Sandbox по сети остаётся отдельным контролем. Спутать эти две вещи - значит решить, что "раз поиск работает, то и npm install сходит в сеть", хотя это неверно.
Image input встраивает визуальный контекст прямо в контекст модели. Команда codex --image добавляет к запросу файл - скриншот ошибки, диаграмму, визуальную опору, - и это удобно для задач, где текст не передаёт сути: расхождение UI и кода, странный layout, нечитаемый график. Но важно помнить: файл становится частью контекста модели, поэтому в него не должно попасть лишнего - чувствительных данных на скриншоте или того, что вы не хотели бы отправлять.
Полезно один раз увидеть эти способы рядом в виде команд. Ниже - live web search для одного запуска и передача изображения в начальный prompt. К этой форме возвращаются, решая, какой внешний контекст нужен: свежие публичные данные - --search, визуальная опора - --image. Выбор способа - это выбор и типа контекста, и связанной с ним границы доверия, а не просто удобный флаг, который включают не глядя.
Browser и computer use расширяют поверхность на веб-страницы и GUI - и одновременно поверхность риска. Они позволяют агенту навигировать, заполнять формы, управлять одобренными приложениями через скриншоты и действия. Это мощно, но веб-страница и чужой интерфейс - недоверенный ввод, а действия в GUI имеют реальные последствия. Права на сайт и приложение выдают явно и узко, а работу всегда можно остановить: чем шире поверхность, тем строже должна быть граница вокруг неё.
Полезно один раз свести способы в таблицу по назначению и ключевой границе. Ниже такая карта: web search, image input, browser, computer use. К ней возвращаются, выбирая механизм под задачу и оценивая, что он открывает. Общий принцип для всех - внешний и визуальный контент недоверенный, а расширение возможностей не переносит границы автоматически: каждый механизм открывает своё, и складывать их нужно осознанно, а не считать, что одно разрешение включило всё.
Типичные провалы вокруг внешнего контекста предсказуемы. Решить, что включённый web search дал сетевой доступ тестам и package manager. Отправить в image-input скриншот с чувствительными данными, не подумав, что он войдёт в контекст. Принять содержимое веб-страницы за команду вместо данных. И открыть browser или computer use в задаче смешанного доверия, где рядом менеджер паролей или production-консоль. Различайте плоскости доступа, держите внешний контент недоверенным и выдавайте права на сайт и GUI узко.
| Способ | Назначение | Ключевая граница |
|---|---|---|
| Web search | Текущая публичная информация | Cached/live; результаты недоверенные |
| Image input | Screenshot, диаграмма, опора | Файл входит в контекст модели |
| Browser | Навигация и формы | Веб-страница - недоверенный ввод |
| Computer use | Управление одобренным GUI | Реальные действия; права узко, можно остановить |
# Live web search для одного запуска (по умолчанию - cached)
codex --search
# Изображение в начальный prompt
codex --image ./error.png "Найди причину расхождения UI и кода"
# web search != сетевой доступ тестам или package manager (это разные плоскости)