Короткий ответ
Агент DeepSeek Harness (dsh) не просто болтает — он вызывает набор настоящих инструментов: читает и пишет файлы, выполняет команды, порождает субагентов и ищет в интернете. Инструменты приходят из плагинов; вот самые распространённые в стандартном пресете:
| Инструмент | Назначение | Типичное применение |
|---|---|---|
bash |
Выполнение команд оболочки | Читать файлы, запускать тесты, ставить зависимости |
| Чтение и запись файлов | Чтение / запись / правка файлов | Править код, писать отчёты |
subagent |
Порождение субагентов | Распараллеливать подзадачи |
web_search / web_fetch |
Поиск / загрузка страниц | Искать документацию, получать свежую информацию |
ask_user_question |
Пауза и вопрос пользователю | Подтверждать критичные решения |
lsp |
Запросы к языковому серверу | Типы, навигация, автодополнение |
Разберитесь с ними — и станет понятно, чем dsh отличается от чат-бота: каждый вызов инструмента — это реальное чтение, запись или выполнение.
bash: руки агента
bash позволяет модели выполнять команды оболочки — это основа сценария «запусти тесты, поставь зависимости, прочитай репозиторий»:
List the current directory, then run the test suite and tell me the result.
Агент выполняет ls, читает файлы, запускает команду тестов, читает stdout и решает, что делать дальше. Важно: bash означает, что у агента есть права вашего текущего пользователя, — не разрешайте опасные команды в директориях, в которых вы не уверены.
Чтение и запись файлов: здесь правится код
Файловые инструменты позволяют агенту читать и писать файлы в рабочей директории. В связке с bash это ядро цикла «правки кода»: прочитать → понять → исправить → запустить тесты → поправить по результатам.
В стандартный пресет обычно входит ещё и поиск по файлам через glob/grep, чтобы агент мог найти, «в каком файле определена эта функция», а не читать вслепую весь репозиторий.
subagent: распараллеливание подзадач
subagent позволяет агенту порождать субагентов под отдельные подзадачи и собирать их результаты. Типичный пример:
Main task: fix three unrelated bugs.
Агент может запустить трёх субагентов, по одному на баг, а затем свести результаты воедино. На длинных задачах это сокращает реальное время выполнения — особенно когда узкое место звучит как «много независимых мелких работ».
web_search / web_fetch: доступ в сеть
web_search и web_fetch позволяют агенту искать и загружать страницы — для случаев «найди актуальную документацию», «найди issue с такой же ошибкой» или «узнай текущую сигнатуру API», когда обучающих данных недостаточно.
Если доступ в сеть не нужен (например, репозиторий полностью локальный), просто не подключайте эти инструменты — агент получится более управляемым и дешёвым. В этом и состоит настраиваемый набор возможностей dsh (см. Архитектура плагинов).
ask_user_question: подтверждение в критических точках
ask_user_question останавливает агента в ключевой точке и ждёт вашего ответа. Используйте его для ситуаций вроде «это удаление необратимо — подтверждаете?», чтобы агент на автомате не довёл дело до ошибки.
lsp: интеллект на уровне языка
Инструмент lsp открывает возможности языкового сервера: запросы типов, переход к определению, автодополнение. Ему нужен зарегистрированный провайдер (например, dsh-lsp-stdio); без него инструмент не падает, а возвращает структурированную ошибку.
Запускаем эти инструменты на бесплатном тарифе
Сами инструменты бесплатны; денег стоит вызов модели, стоящий за каждым циклом обращения к инструменту. Если подключить TeamoRouter, бесплатного тарифа хватает на целый день:
export DEEPSEEK_API_KEY="sk-teamo-your-key"
export DEEPSEEK_BASE_URL="https://api.teamorouter.com/v1"
export DEEPSEEK_DEFAULT_MODEL="deepseek-v4-pro-free"
deepseek-v4-pro-free даёт 200 запросов в день, и каждый цикл обращения к инструменту считается за один запрос: лёгкую работу отправляйте на deepseek-v4-flash-free (тоже 200 в день), сложную — на Pro (см. 200 запросов в день).
FAQ
Все эти инструменты доступны по умолчанию?
Зависит от загруженного пресета агента. В стандартный пресет входят bash, чтение и запись файлов и glob/grep; web_search, subagent и lsp зависят от пресета или конфигурации, которые можно урезать или расширить.
Будет ли агент сам выполнять опасные команды?
В принципе bash даёт ему такое право. Подстрахуйтесь: запускайте агента в ограниченной рабочей директории, используйте ask_user_question перед критичными действиями и не открывайте порт dsh в интернет.
Расходуют ли вызовы инструментов бесплатную квоту?
Да. Каждый цикл обращения к инструменту — это один запрос из 200 в день. Чем глубже циклы работы с инструментами, тем быстрее уходит квота: поэтому сложная работа заслуживает Pro, а лёгкая остаётся на Flash.
Как добавить собственный инструмент?
Напишите плагин Cordis, который регистрируется в ctx.tools, или подключите его в пресете. Это сердце расширяемости dsh (см. Архитектура плагинов).
Могут ли файловые инструменты писать по любому пути?
Они ограничены рабочей директорией и правами доступа. По умолчанию они действуют внутри рабочей директории агента; точная граница зависит от загруженного fs-провайдера.
Чтобы опробовать этот набор инструментов на практике, получите ключ на TeamoRouter, настройте dsh и дайте агенту задачу «прочитать репозиторий + запустить тесты + отчитаться».