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

Основы

Рабочее пространство агента

Рабочее пространство — это дом агента. Это единственный рабочий каталог, используемый для файловых инструментов и для контекста рабочего пространства. Храните его в тайне и относитесь к нему как к памяти. Оно отделено от ~/.openclaw/, где хранятся конфигурация, учетные данные и сессии. Важно: рабочее пространство — это рабочий каталог по умолчанию (cwd), а не строгая песочница. Инструменты разрешают относительные пути относительно рабочего пространства, но абсолютные пути всё ещё могут получить доступ к другим местам на хосте, если не включена песочница. Если вам нужна изоляция, используйте agents.defaults.sandbox (и/или конфигурацию песочницы для каждого агента). Когда песочница включена и workspaceAccess не "rw", инструменты работают внутри песочницы в каталоге ~/.openclaw/sandboxes, а не в вашем основном рабочем пространстве на хосте.

Расположение по умолчанию​

  • По умолчанию: ~/.openclaw/workspace
  • Если установлена переменная OPENCLAW_PROFILE и её значение не "default", то расположением по умолчанию становится ~/.openclaw/workspace-.
  • Переопределите в ~/.openclaw/openclaw.json:
{
agent: {
workspace: "~/.openclaw/workspace",
},
}

Команды openclaw onboard, openclaw configure или openclaw setup создадут рабочее пространство и добавят файлы начальной загрузки, если они отсутствуют. При копировании в песочницу принимаются только обычные файлы внутри рабочего пространства; символические/жёсткие ссылки, указывающие за пределы исходного рабочего пространства, игнорируются. Если вы уже самостоятельно управляете файлами рабочего пространства, вы можете отключить создание файлов начальной загрузки:

{ agent: { skipBootstrap: true } }

Дополнительные папки рабочего пространства​

В более старых установках мог быть создан каталог ~/openclaw. Наличие нескольких каталогов рабочего пространства может привести к путанице с аутентификацией или расхождению состояния, поскольку одновременно активно только одно рабочее пространство. Рекомендация: используйте одно активное рабочее пространство. Если вы больше не используете дополнительные папки, архивируйте их или переместите в Корзину (например, trash ~/openclaw). Если вы намеренно храните несколько рабочих пространств, убедитесь, что agents.defaults.workspace указывает на активное. openclaw doctor предупреждает, когда обнаруживает дополнительные каталоги рабочего пространства.

Карта файлов рабочего пространства (значение каждого файла)​

Это стандартные файлы, которые OpenClaw ожидает найти внутри рабочего пространства:

  • AGENTS.md
    • Операционные инструкции для агента и то, как он должен использовать память.
    • Загружается в начале каждой сессии.
    • Хорошее место для правил, приоритетов и деталей «как себя вести».
  • SOUL.md
    • Персона, тон и границы.
    • Загружается каждую сессию.
  • USER.md
    • Кто пользователь и как к нему обращаться.
    • Загружается каждую сессию.
  • IDENTITY.md
    • Имя агента, его стиль и эмодзи.
    • Создаётся/обновляется во время ритуала начальной загрузки.
  • TOOLS.md
    • Заметки о ваших локальных инструментах и соглашениях.
    • Не управляет доступностью инструментов; это только руководство.
  • HEARTBEAT.md
    • Необязательный краткий контрольный список для heartbeat-запусков.
    • Держите его коротким, чтобы избежать расхода токенов.
  • BOOT.md
    • Необязательный контрольный список запуска, выполняемый при перезапуске шлюза, когда включены внутренние хуки.
    • Держите его коротким; используйте инструмент сообщений для исходящих отправок.
  • BOOTSTRAP.md
    • Ритуал однократного первого запуска.
    • Создаётся только для совершенно нового рабочего пространства.
    • Удалите его после завершения ритуала.
  • memory/YYYY-MM-DD.md
    • Ежедневный журнал памяти (один файл в день).
    • Рекомендуется читать сегодняшний и вчерашний файлы при запуске сессии.
  • MEMORY.md (опционально)
    • Курированная долгосрочная память.
    • Загружается только в основной, приватной сессии (не в общих/групповых контекстах).

См. Память для рабочего процесса и автоматической очистки памяти.

  • skills/ (опционально)
    • Навыки, специфичные для рабочего пространства.
    • Переопределяют управляемые/встроенные навыки при совпадении имён.
  • canvas/ (опционально)
    • Файлы пользовательского интерфейса Canvas для отображения узлов (например, canvas/index.html).

Если какой-либо файл начальной загрузки отсутствует, OpenClaw добавляет в сессию маркер «файл отсутствует» и продолжает работу. Большие файлы начальной загрузки обрезаются при добавлении; настройте лимиты с помощью agents.defaults.bootstrapMaxChars (по умолчанию: 20000) и agents.defaults.bootstrapTotalMaxChars (по умолчанию: 150000). openclaw setup может воссоздать отсутствующие файлы по умолчанию без перезаписи существующих.

Что НЕ находится в рабочем пространстве​

Эти элементы находятся в ~/.openclaw/ и НЕ должны попадать в репозиторий рабочего пространства:

  • ~/.openclaw/openclaw.json (конфигурация)
  • ~/.openclaw/credentials/ (OAuth-токены, API-ключи)
  • ~/.openclaw/agents//sessions/ (транскрипты сессий + метаданные)
  • ~/.openclaw/skills/ (управляемые навыки)

Если вам нужно перенести сессии или конфигурацию, скопируйте их отдельно и не добавляйте в систему контроля версий.

Резервное копирование Git (рекомендуется, приватное)​

Относитесь к рабочему пространству как к приватной памяти. Поместите его в приватный git-репозиторий, чтобы он был резервной копией и мог быть восстановлен. Выполните эти шаги на машине, где работает Шлюз (там и находится рабочее пространство).

1) Инициализация репозитория​

Если git установлен, новые рабочие пространства инициализируются автоматически. Если это рабочее пространство ещё не является репозиторием, выполните:

cd ~/.openclaw/workspace
git init
git add AGENTS.md SOUL.md TOOLS.md IDENTITY.md USER.md HEARTBEAT.md memory/
git commit -m "Add agent workspace"

2) Добавление приватного удалённого репозитория (варианты для начинающих)​

Вариант A: Веб-интерфейс GitHub

  1. Создайте новый приватный репозиторий на GitHub.
  2. Не инициализируйте его с README (чтобы избежать конфликтов слияния).
  3. Скопируйте HTTPS URL удалённого репозитория.
  4. Добавьте удалённый репозиторий и выполните push:
git branch -M main
git remote add origin <https-url>
git push -u origin main

Вариант B: GitHub CLI (gh)

gh auth login
gh repo create openclaw-workspace --private --source . --remote origin --push

Вариант C: Веб-интерфейс GitLab

  1. Создайте новый приватный репозиторий на GitLab.
  2. Не инициализируйте его с README (чтобы избежать конфликтов слияния).
  3. Скопируйте HTTPS URL удалённого репозитория.
  4. Добавьте удалённый репозиторий и выполните push:
git branch -M main
git remote add origin <https-url>
git push -u origin main

3) Регулярные обновления​

git status
git add .
git commit -m "Update memory"
git push

Не коммитьте секреты​

Даже в приватном репозитории избегайте хранения секретов в рабочем пространстве:

  • API-ключи, OAuth-токены, пароли или приватные учетные данные.
  • Всё, что находится в ~/.openclaw/.
  • Необработанные дампы чатов или конфиденциальные вложения.

Если вам необходимо хранить ссылки на чувствительные данные, используйте заглушки, а сами секреты храните в другом месте (менеджер паролей, переменные окружения или ~/.openclaw/). Пример стартового .gitignore:

.DS_Store
.env
**/*.key
**/*.pem
**/secrets*

Перенос рабочего пространства на новую машину​

  1. Клонируйте репозиторий в желаемый путь (по умолчанию ~/.openclaw/workspace).
  2. Установите agents.defaults.workspace на этот путь в ~/.openclaw/openclaw.json.
  3. Запустите openclaw setup --workspace , чтобы добавить отсутствующие файлы.
  4. Если вам нужны сессии, скопируйте ~/.openclaw/agents//sessions/ со старой машины отдельно.

Продвинутые заметки​

  • Маршрутизация для нескольких агентов может использовать разные рабочие пространства для каждого агента. См. Маршрутизация каналов для конфигурации маршрутизации.
  • Если включён agents.defaults.sandbox, неосновные сессии могут использовать рабочие пространства песочницы для каждой сессии в agents.defaults.sandbox.workspaceRoot.

КонтекстOAuth