Основы

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

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

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

  • По умолчанию: ~/.openclaw/workspace
  • Если установлена переменная OPENCLAW_PROFILE и её значение не "default", то расположением по умолчанию становится ~/.openclaw/workspace-<profile>.
  • Переопределите в ~/.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/<agentId>/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 <path>, чтобы добавить отсутствующие файлы.
  4. Если вам нужны сессии, скопируйте ~/.openclaw/agents/<agentId>/sessions/ со старой машины отдельно.

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

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

КонтекстOAuth