wip(docs): i18n (#12681)
This commit is contained in:
379
packages/web/src/content/docs/ru/tools.mdx
Normal file
379
packages/web/src/content/docs/ru/tools.mdx
Normal file
@@ -0,0 +1,379 @@
|
||||
---
|
||||
title: Инструменты
|
||||
description: Управляйте инструментами, которые может использовать LLM.
|
||||
---
|
||||
|
||||
Инструменты позволяют LLM выполнять действия в вашей кодовой базе. OpenCode поставляется с набором встроенных инструментов, но вы можете расширить его с помощью [пользовательских инструментов](/docs/custom-tools) или [MCP-серверов](/docs/mcp-servers).
|
||||
|
||||
По умолчанию все инструменты **включены** и не требуют разрешения для запуска. Вы можете контролировать поведение инструмента через [permissions](/docs/permissions).
|
||||
|
||||
---
|
||||
|
||||
## Настроить
|
||||
|
||||
Используйте поле `permission` для управления поведением инструмента. Вы можете разрешить, запретить или потребовать одобрения для каждого инструмента.
|
||||
|
||||
```json title="opencode.json"
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"permission": {
|
||||
"edit": "deny",
|
||||
"bash": "ask",
|
||||
"webfetch": "allow"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Вы также можете использовать подстановочные знаки для одновременного управления несколькими инструментами. Например, чтобы потребовать одобрения всех инструментов с сервера MCP:
|
||||
|
||||
```json title="opencode.json"
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"permission": {
|
||||
"mymcp_*": "ask"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
[Подробнее](/docs/permissions) о настройке разрешений.
|
||||
|
||||
---
|
||||
|
||||
## Встроенный
|
||||
|
||||
Вот все встроенные инструменты, доступные в OpenCode.
|
||||
|
||||
---
|
||||
|
||||
### бить
|
||||
|
||||
Выполняйте команды оболочки в среде вашего проекта.
|
||||
|
||||
```json title="opencode.json" {4}
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"permission": {
|
||||
"bash": "allow"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Этот инструмент позволяет LLM запускать команды терминала, такие как `npm install`, `git status` или любую другую команду оболочки.
|
||||
|
||||
---
|
||||
|
||||
### редактировать
|
||||
|
||||
Измените существующие файлы, используя точную замену строк.
|
||||
|
||||
```json title="opencode.json" {4}
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"permission": {
|
||||
"edit": "allow"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Этот инструмент выполняет точное редактирование файлов, заменяя точные совпадения текста. Это основной способ изменения кода в LLM.
|
||||
|
||||
---
|
||||
|
||||
### писать
|
||||
|
||||
Создавайте новые файлы или перезаписывайте существующие.
|
||||
|
||||
```json title="opencode.json" {4}
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"permission": {
|
||||
"edit": "allow"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Используйте это, чтобы позволить LLM создавать новые файлы. Он перезапишет существующие файлы, если они уже существуют.
|
||||
|
||||
:::примечание
|
||||
Инструмент `write` контролируется разрешением `edit`, которое распространяется на все модификации файлов (`edit`, `write`, `patch`, `multiedit`).
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
### читать
|
||||
|
||||
Прочитайте содержимое файла из вашей кодовой базы.
|
||||
|
||||
```json title="opencode.json" {4}
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"permission": {
|
||||
"read": "allow"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Этот инструмент читает файлы и возвращает их содержимое. Он поддерживает чтение определенных диапазонов строк для больших файлов.
|
||||
|
||||
---
|
||||
|
||||
### grep
|
||||
|
||||
Поиск содержимого файла с помощью регулярных выражений.
|
||||
|
||||
```json title="opencode.json" {4}
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"permission": {
|
||||
"grep": "allow"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Быстрый поиск контента по вашей кодовой базе. Поддерживает полный синтаксис регулярных выражений и фильтрацию шаблонов файлов.
|
||||
|
||||
---
|
||||
|
||||
### шарик
|
||||
|
||||
Найдите файлы по шаблону.
|
||||
|
||||
```json title="opencode.json" {4}
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"permission": {
|
||||
"glob": "allow"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Ищите файлы, используя шаблоны glob, например `**/*.js` или `src/**/*.ts`. Возвращает соответствующие пути к файлам, отсортированные по времени изменения.
|
||||
|
||||
---
|
||||
|
||||
### список
|
||||
|
||||
Список файлов и каталогов по заданному пути.
|
||||
|
||||
```json title="opencode.json" {4}
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"permission": {
|
||||
"list": "allow"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Этот инструмент отображает содержимое каталога. Он принимает шаблоны glob для фильтрации результатов.
|
||||
|
||||
---
|
||||
|
||||
### лсп (экспериментальный)
|
||||
|
||||
Взаимодействуйте с настроенными серверами LSP, чтобы получить функции анализа кода, такие как определения, ссылки, информация о наведении и иерархия вызовов.
|
||||
|
||||
:::примечание
|
||||
Этот инструмент доступен только при `OPENCODE_EXPERIMENTAL_LSP_TOOL=true` (или `OPENCODE_EXPERIMENTAL=true`).
|
||||
:::
|
||||
|
||||
```json title="opencode.json" {4}
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"permission": {
|
||||
"lsp": "allow"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Поддерживаемые операции включают `goToDefinition`, `findReferences`, `hover`, `documentSymbol`, `workspaceSymbol`, `goToImplementation`, `prepareCallHierarchy`, `incomingCalls` и `outgoingCalls`.
|
||||
|
||||
Чтобы настроить серверы LSP, доступные для вашего проекта, см. [LSP Servers](/docs/lsp).
|
||||
|
||||
---
|
||||
|
||||
### пластырь
|
||||
|
||||
Применяйте патчи к файлам.
|
||||
|
||||
```json title="opencode.json" {4}
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"permission": {
|
||||
"edit": "allow"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Этот инструмент применяет файлы исправлений к вашей кодовой базе. Полезно для применения различий и патчей из различных источников.
|
||||
|
||||
:::примечание
|
||||
Инструмент `patch` контролируется разрешением `edit`, которое распространяется на все модификации файлов (`edit`, `write`, `patch`, `multiedit`).
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
### навык
|
||||
|
||||
Загрузите [skill](/docs/skills) (файл `SKILL.md`) и верните его содержимое в диалог.
|
||||
|
||||
```json title="opencode.json" {4}
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"permission": {
|
||||
"skill": "allow"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### todowrite
|
||||
|
||||
Управляйте списками дел во время сеансов кодирования.
|
||||
|
||||
```json title="opencode.json" {4}
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"permission": {
|
||||
"todowrite": "allow"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Создает и обновляет списки задач для отслеживания прогресса во время сложных операций. LLM использует это для организации многоэтапных задач.
|
||||
|
||||
:::примечание
|
||||
По умолчанию этот инструмент отключен для субагентов, но вы можете включить его вручную. [Подробнее](/docs/agents/#permissions)
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
### todoread
|
||||
|
||||
Прочтите существующие списки дел.
|
||||
|
||||
```json title="opencode.json" {4}
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"permission": {
|
||||
"todoread": "allow"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Считывает текущее состояние списка дел. Используется LLM для отслеживания задач, ожидающих или завершенных.
|
||||
|
||||
:::примечание
|
||||
По умолчанию этот инструмент отключен для субагентов, но вы можете включить его вручную. [Подробнее](/docs/agents/#permissions)
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
### веб-загрузка
|
||||
|
||||
Получить веб-контент.
|
||||
|
||||
```json title="opencode.json" {4}
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"permission": {
|
||||
"webfetch": "allow"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Позволяет LLM получать и читать веб-страницы. Полезно для поиска документации или исследования онлайн-ресурсов.
|
||||
|
||||
---
|
||||
|
||||
### веб-поиск
|
||||
|
||||
Найдите информацию в Интернете.
|
||||
|
||||
:::примечание
|
||||
Этот инструмент доступен только при использовании поставщика OpenCode или когда для переменной среды `OPENCODE_ENABLE_EXA` установлено любое истинное значение (например, `true` или `1`).
|
||||
|
||||
Чтобы включить при запуске OpenCode:
|
||||
|
||||
```bash
|
||||
OPENCODE_ENABLE_EXA=1 opencode
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
```json title="opencode.json" {4}
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"permission": {
|
||||
"websearch": "allow"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Выполняет поиск в Интернете с помощью Exa AI для поиска соответствующей информации в Интернете. Полезно для исследования тем, поиска текущих событий или сбора информации, выходящей за рамки данных обучения.
|
||||
|
||||
Ключ API не требуется — инструмент подключается напрямую к сервису MCP, размещенному на Exa AI, без аутентификации.
|
||||
|
||||
:::кончик
|
||||
Используйте `websearch`, когда вам нужно найти информацию (обнаружение), и `webfetch`, когда вам нужно получить контент с определенного URL-адреса (извлечение).
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
### вопрос
|
||||
|
||||
Задавайте вопросы пользователю во время выполнения.
|
||||
|
||||
```json title="opencode.json" {4}
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"permission": {
|
||||
"question": "allow"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Этот инструмент позволяет LLM задавать вопросы пользователю во время выполнения задачи. Это полезно для:
|
||||
|
||||
- Сбор предпочтений или требований пользователей
|
||||
- Уточнение двусмысленных инструкций
|
||||
- Получение решений по вариантам реализации
|
||||
- Предлагая выбор, в каком направлении двигаться
|
||||
|
||||
Каждый вопрос включает заголовок, текст вопроса и список вариантов. Пользователи могут выбрать один из предложенных вариантов или ввести собственный ответ. Если вопросов несколько, пользователи могут перемещаться между ними, прежде чем отправлять все ответы.
|
||||
|
||||
---
|
||||
|
||||
## Пользовательские инструменты
|
||||
|
||||
Пользовательские инструменты позволяют вам определять собственные функции, которые может вызывать LLM. Они определены в вашем файле конфигурации и могут выполнять произвольный код.
|
||||
|
||||
[Подробнее](/docs/custom-tools) о создании собственных инструментов.
|
||||
|
||||
---
|
||||
|
||||
## MCP-серверы
|
||||
|
||||
Серверы MCP (Model Context Protocol) позволяют интегрировать внешние инструменты и сервисы. Сюда входит доступ к базе данных, интеграция API и сторонние сервисы.
|
||||
|
||||
[Подробнее](/docs/mcp-servers) о настройке серверов MCP.
|
||||
|
||||
---
|
||||
|
||||
## Внутренности
|
||||
|
||||
Внутренне такие инструменты, как `grep`, `glob` и `list`, используют [ripgrep](https://github.com/BurntSushi/ripgrep). По умолчанию ripgrep учитывает шаблоны `.gitignore`, что означает, что файлы и каталоги, перечисленные в вашем `.gitignore`, будут исключены из поиска и списков.
|
||||
|
||||
---
|
||||
|
||||
### Игнорировать шаблоны
|
||||
|
||||
Чтобы включить файлы, которые обычно игнорируются, создайте файл `.ignore` в корне вашего проекта. Этот файл может явно разрешать определенные пути.
|
||||
|
||||
```text title=".ignore"
|
||||
!node_modules/
|
||||
!dist/
|
||||
!build/
|
||||
```
|
||||
|
||||
Например, этот файл `.ignore` позволяет ripgrep выполнять поиск в каталогах `node_modules/`, `dist/` и `build/`, даже если они указаны в `.gitignore`.
|
||||
Reference in New Issue
Block a user