Перейти к содержимому

Диагностировать агента

В этом руководстве показано, как выяснить, почему агент не выдаёт запуски.

Двигайтесь сверху вниз: сначала собственные запуски агента, затем его бэкенд, затем сервер, затем хост.

Настройки → Рабочее пространство → Агенты → выберите агента → Журнал.

Для каждого запуска показаны бейдж состояния, длительность («Running…», пока запуск выполняется), время начала и завершения, его PID и использованный адаптер. Просмотр открывает необработанный поток событий этого запуска. Остановить завершает выполняющийся процесс и помечает запуск как «Killed by user»; Прервать выполнение в заголовке делает то же для всех выполняющихся запусков этого агента.

Читайте это так:

  • Запусков нет вообще — диспетчеризация так и не произошла. Упоминания в композере — это @ плюс символы слова (буквы, цифры, подчёркивание). Сопоставление идёт по точному совпадению с именем агента или по префиксу, поэтому @code-reviewer разбирается как code и всё равно может разбудить агента с именем code-reviewer. Имя с пробелом нельзя упомянуть одним токеном. Тогда переходите к шагу 2.
  • Запуск, сразу завершившийся с ошибкой — откройте Просмотр. Сбой запуска бэкенда виден здесь как ошибка процесса.
  • Запуск, застрявший на «Running…» — остановите его, затем проверьте Таймаут тишины у агента на вкладке Настройки. Если таймаут не задан, используется значение по умолчанию для режима.
  • Завершённый запуск без полезного результата — статус в журнале запуска остаётся completed и у запуска, завершившегося без объявленного результата; честный сигнал — текст сводки, а не бейдж.

На вкладке «Журнал» стоимость не отображается. Чтобы увидеть расходы, воспользуйтесь таблицей по каждому агенту в разделе Наблюдаемость → Инсайты.

Настройки → Сервер → Провайдеры моделей (/settings/server/providers).

Список Обнаруженные раннеры показывает каждый адаптер с результатом пробы — установленную версию, «Проверка…» или «Не найдено» — а также найденный путь и метки возможностей для обнаруженного CLI. Нажмите Обновить в заголовке страницы, чтобы запустить пробу заново.

Проба выполняется на машине, где размещён cc_server, а не на той, которую вы видите перед собой. Если вы работаете в веб-клиенте или на привязанном устройстве, «Не найдено» означает, что CLI отсутствует на хосте сервера.

Два момента, которые стоит проверить:

  • Задан ли у агента адаптер вообще. Агент с пустым адаптером направляется в Control Center (built-in), и журнал запуска записывает cc-harness, поэтому в транскрипте указано, что именно выполнялось. Если и модели нет, он запрашивает у Anthropic модель по умолчанию — и это завершается ошибкой No credential for provider "anthropic", если вы не подключили аккаунт Anthropic. Поставляемые специалисты идут без адаптера.
  • Есть ли модель у встроенного адаптера. Его список моделей собирается на лету из провайдеров, подключённых ниже на этой же странице, поэтому провайдер без сохранённых учётных данных не даёт ни одной модели.

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

Настройки → Сервер → Подключение и состояние (/settings/server/connection) показывает, с каким сервером общается этот клиент и что он сообщает.

Для headless-сервера те же сведения даёт GET /healthz без клиента. Он не требует аутентификации и по замыслу открыт для CORS:

curl http://localhost:9030/healthz

Он возвращает статус сервера, время работы в секундах, число активных подключений, порт привязки, версию сборки и git SHA, версию схемы рабочего пространства, версию каталога RPC, идентификатор сервера, его имя и отпечаток идентичности, признак небезопасной привязки и блок codeGraph со счётчиками watching / indexing / pending. Когда к кэшу были обращения, он также включает блок caches; демонстрационный сервер добавляет demo: true.

Два момента, о которых стоит знать, когда изменение «работает в тестах, но не в приложении»:

  • Настольное приложение запускает собранный заранее бинарник cc_server, предпочитая его сборке из исходников. Новая операция RPC или инструмент MCP не появятся, пока бинарник не пересобран, а при запуске в журнал пишется предупреждение, если git SHA дочернего процесса отличается от SHA приложения.
  • Настольное приложение завершает порождённый сервер, который не вывел баннер готовности в течение 20 секунд, и переходит на экран ошибки.

Настройки → Сервер → Диагностика и конфиденциальность (/settings/server/diagnostics) — это страница уровня хоста. На ней есть:

  • Песочница — главный переключатель, обнаруженный бэкенд и подсказка об установке. От сервера приходит только обнаруженный бэкенд; см. предупреждение ниже. Элемента сброса нет.
  • Семантический поиск — жизненный цикл локальной модели эмбеддингов: установлена, скачивается с указанием процента, не установлена или ошибка установки. Пока она не установлена, поиск по памяти и по коду остаётся только по ключевым словам.
  • Поведение системы — не давать компьютеру засыпать, пока работают агенты.
  • Уровень журнала — повысьте его перед воспроизведением сбоя.
  • Конфиденциальность — можно ли передавать необработанное содержимое diff модели агента и отправляются ли отчёты о сбоях.

Запуск так и не начинается, а адаптер отображается как «Не найдено»

Заголовок раздела «Запуск так и не начинается, а адаптер отображается как «Не найдено»»

Установите CLI на хосте сервера, затем нажмите Обновить на странице «Провайдеры моделей». Или переключите агента на встроенный адаптер — ему CLI не нужен — и подключите провайдера на той же странице.

Агент не может отправить изменения или открыть pull request

Заголовок раздела «Агент не может отправить изменения или открыть pull request»

Посмотрите, что вывели git или агент. Control Center policy: … означает, что правило действия отклонило это или запрос на одобрение остался без ответа: проверьте Отправить в удалённый репозиторий и Открыть pull request в разделе Настройки → Рабочее пространство → Разрешения агента. Если git сообщает, что у Control Center нет учётных данных GitHub, способных сделать push, установите GitHub App в этот репозиторий или подключите GitHub.

Семантический поиск не даёт ничего полезного

Заголовок раздела «Семантический поиск не даёт ничего полезного»

Проверьте Настройки → Сервер → Диагностика и конфиденциальность → Семантический поиск. Пока модель эмбеддингов не установлена, поиск идёт только по ключевым словам. Строки, записанные до установки модели, никогда не дозаполняются, поэтому и после неё остаются только по ключевым словам.

Нативные библиотеки обязательны, и режима с ограниченной функциональностью нет. Из-за отсутствующей dylib cc_server отказывается запускаться и называет виновника в ошибке. Подготовьте нативные библиотеки с помощью scripts/natives/build_natives.sh и пересоберите бинарник сервера.

Решение ограничения prompt при отсутствии подключённого одобряющего отклоняется — так и задумано. Проверьте правила рабочего пространства в разделе Настройки → Рабочее пространство → Разрешения агента.