Chuyển tới nội dung chính

Di chuyển từ OpenClaw``Hermes claw migrate

` nhập thiết lập OpenClaw (hoặc ClawdBot/Moldbot cũ) của bạn vào Hermes. Hướng dẫn này trình bày chính xác những gì sẽ được di chuyển, ánh xạ khóa cấu hình và những gì cần xác minh sau khi di chuyển.

Bắt đầu nhanh


# Preview then migrate (always shows a preview first, then asks to confirm)
Hermes claw migrate

# Preview only, no changes
Hermes claw migrate --dry-run

# Full migration including API keys, skip confirmation
Hermes claw migrate --preset full --migrate-secrets --yes

`
``Quá trình di chuyển luôn hiển thị bản xem trước đầy đủ về những gì sẽ được nhập trước khi thực hiện bất kỳ thay đổi nào. Xem lại danh sách, sau đó xác nhận để tiếp tục.

Đọc từ

~/.OpenClaw/
` theo mặc định. Các thư mục

~/.ClawdBot/
` hoặc

~/.MoltBot/
` kế thừa được phát hiện tự động. Tương tự đối với tên tệp cấu hình cũ (
`ClawdBot.JSON

,
`MoltBot.JSON

).

## Tùy chọn

| Tùy chọn | Mô tả |
|--------|-------------|
|

--dry-run
` | Chỉ xem trước - dừng lại sau khi hiển thị những gì sẽ được di chuyển. |
|

--preset <name
` |
`full
` (tất cả cài đặt tương thích) hoặc
`user-data
` (không bao gồm cấu hình cơ sở hạ tầng). Theo mặc định, không cài đặt trước nào nhập bí mật - chuyển

--migrate-secrets
` một cách rõ ràng. |
|

--overwrite
` | Ghi đè các tập tin Hermes hiện có về xung đột (mặc định: từ chối áp dụng khi kế hoạch có xung đột). |
|

--migrate-secrets
` | Bao gồm các khóa API. Được yêu cầu ngay cả trong

--preset full

- không có cài đặt trước nào nhập bí mật một cách âm thầm. |
|

--no-backup
` | Bỏ qua ảnh chụp nhanh zip trước khi di chuyển của

~/.Hermes/
` (theo mặc định, một kho lưu trữ điểm khôi phục duy nhất được ghi trước khi áp dụng, dưới

~/.Hermes/backups/pre-migration-*.zip

; có thể khôi phục bằng
`Hermes import

). |
|

--source <path
` | Thư mục OpenClaw tùy chỉnh. |
|

--workspace-target <path
` | Nơi đặt
`AGENTS.md

. |
|

--skill-conflict <mode
` |
`skip
` (mặc định),
`overwrite
` hoặc
`rename

. |
|

--yes
` | Bỏ qua lời nhắc xác nhận sau khi xem trước. |

## Những gì được di chuyển

### Persona, bộ nhớ và hướng dẫn

| Cái gì | Nguồn OpenClaw | Điểm đến Hermes | Ghi chú |
|------|-------|-------------------|-------|
| Nhân cách |

workspace/SOUL.md
` |

~/.Hermes/SOUL.md
` | Sao chép trực tiếp |
| Hướng dẫn về không gian làm việc |

workspace/AGENTS.md
` |
`AGENTS.md
` trong

--workspace-target
` | Yêu cầu cờ

--workspace-target
` |
| Trí nhớ dài hạn |

workspace/MEMORY.md
` |

~/.Hermes/memories/MEMORY.md
` | Được phân tích cú pháp thành các mục, hợp nhất với hiện có, loại bỏ. Sử dụng dấu phân cách

§

. |
| Hồ sơ người dùng |

workspace/USER.md
` |

~/.Hermes/memories/USER.md
` | Logic hợp nhất mục nhập tương tự như bộ nhớ. |
| Tập tin bộ nhớ hàng ngày |

workspace/memory/*.md
` |

~/.Hermes/memories/MEMORY.md
` | Tất cả các tập tin hàng ngày được sáp nhập vào bộ nhớ chính. |

Các tệp không gian làm việc cũng được kiểm tra tại
`workspace.default/
`
`workspace-main/
` dưới dạng đường dẫn dự phòng (OpenClaw đã đổi tên
`workspace/
` thành
`workspace-main/
` trong các phiên bản gần đây và sử dụng
`workspace-\{agentId}
` để thiết lập nhiều tác nhân).

### Kỹ năng (4 nguồn)

| Nguồn | Vị trí OpenClaw | Điểm đến Hermes |
|--------|-------------------|-------------------|
| Kỹ năng không gian làm việc |

workspace/skills/
` |

~/.Hermes/skills/OpenClaw-imports/
` |
| Kỹ năng quản lý/chia sẻ |

~/.OpenClaw/skills/
` |

~/.Hermes/skills/OpenClaw-imports/
` |
| Dự án chéo cá nhân |

~/.agents/skills/
` |

~/.Hermes/skills/OpenClaw-imports/
` |
| Chia sẻ cấp dự án |

workspace/.agents/skills/
` |

~/.Hermes/skills/OpenClaw-imports/
` |

Xung đột kỹ năng được xử lý bởi

--skill-conflict

:
`skip
` rời khỏi kỹ năng Hermes hiện có,
`overwrite
` thay thế nó,
`rename
` tạo bản sao

-imported

.

### Cấu hình mô hình và nhà cung cấp

| Cái gì | Đường dẫn cấu hình OpenClaw | Điểm đến Hermes | Ghi chú |
|------|----------------------|-------------------|-------|
| Mô hình mặc định |

agents.defaults.model
` |
`config.yaml
`
`model
` | Có thể là một chuỗi hoặc đối tượng

\{primary, fallbacks}
` |
| Nhà cung cấp tùy chỉnh |

models.providers.*
` |
`config.yaml
`
`custom_providers
` | Maps
`baseUrl

,
`APIType

/
`API
` — xử lý cả giá trị ngắn ("OpenAI", "Anthropic") và gạch nối ("OpenAI-completions", "Anthropic-messages", "Google-generative-ai") |
| Khóa API của nhà cung cấp |

models.providers.*.APIKey
` |

~/.Hermes/.env
` | Yêu cầu

--migrate-secrets

. Xem [API key resolution](#API-key-resolution) bên dưới. |

### Hành vi của đại lý| Cái gì | Đường dẫn cấu hình OpenClaw | Đường dẫn cấu hình Hermes | Lập bản đồ |
|------|----------------------|-------------------|--------|
| Lượt quay tối đa |

agents.defaults.timeoutSeconds
` |
`agent.max_turns
` |
`timeoutSeconds / 10

, giới hạn ở mức 200 |
| Chế độ dài dòng |

agents.defaults.verboseDefault
` |
`agent.verbose
` | "tắt" / "bật" / "đầy" |
| Nỗ lực lý luận |

agents.defaults.thinkingDefault
` |
`agent.reasoning_effort
` | "luôn luôn"/"cao"/"xhigh""cao", "tự động"/"trung bình"/"thích ứng""trung bình", "tắt"/"thấp"/"không"/"tối thiểu""thấp" |
| Nén |

agents.defaults.compaction.mode
` |
`compression.enabled
` | "tắt" → sai, bất cứ điều gì khác → đúng |
| Mô hình nén |

agents.defaults.compaction.model
` |
`compression.summary_model
` | Sao chép chuỗi trực tiếp |
| Sự chậm trễ của con người |

agents.defaults.humanDelay.mode
` |
`human_delay.mode
` | "tự nhiên" / "tùy chỉnh" / "tắt" |
| Thời gian trễ của con người |

agents.defaults.humanDelay.minMs
` /

.maxMs
` |
`human_delay.min_ms
` /

.max_ms
` | Sao chép trực tiếp |
| Múi giờ |

agents.defaults.userTimezone
` |
`timezone
` | Sao chép chuỗi trực tiếp |
| Thời gian chờ thực thi |

tools.exec.timeoutSec
` |
`terminal.timeout
` | Sao chép trực tiếp (trường là
`timeoutSec

, không phải
`timeout

) |
| Hộp cát Docker |

agents.defaults.sandbox.backend
` |
`terminal.backend
` | "Docker""Docker" |
| Hình ảnh Docker |

agents.defaults.sandbox.Docker.image
` |
`terminal.Docker_image
` | Sao chép trực tiếp |

### Chính sách đặt lại phiên

| Đường dẫn cấu hình OpenClaw | Đường dẫn cấu hình Hermes | Ghi chú |
|----------------------|-------------------|-------|
|
`session.reset.mode
` |
`session_reset.mode
` | "hàng ngày", "nhàn rỗi" hoặc cả hai |
|
`session.reset.atHour
` |
`session_reset.at_hour
` | Giờ (0–23) để đặt lại hàng ngày |
|
`session.reset.idleMinutes
` |
`session_reset.idle_minutes
` | Phút không hoạt động |

Lưu ý: OpenClaw còn có
`session.resetTriggers
` (một mảng chuỗi đơn giản như

["daily", "idle"]

). Nếu không có
`session.reset
` có cấu trúc thì quá trình di chuyển sẽ quay lại suy luận từ
`resetTriggers

.

### máy chủ MCP

| Trường OpenClaw | Cánh đồng Hermes | Ghi chú |
|-------|-------------|-------|
|
`MCP.servers.*.command
` |
`MCP_servers.*.command
` | Vận tải Stdio |
|
`MCP.servers.*.args
` |
`MCP_servers.*.args
` | |
|
`MCP.servers.*.env
` |
`MCP_servers.*.env
` | |
|
`MCP.servers.*.cwd
` |
`MCP_servers.*.cwd
` | |
|
`MCP.servers.*.url
` |
`MCP_servers.*.url
` | Vận chuyển HTTP/SSE |
|
`MCP.servers.*.tools.include
` |
`MCP_servers.*.tools.include
` | Lọc công cụ |
|
`MCP.servers.*.tools.exclude
` |
`MCP_servers.*.tools.exclude
` | |

### TTS (chuyển văn bản thành giọng nói)

Cài đặt TTS được đọc từ **hai** vị trí cấu hình OpenClaw với mức độ ưu tiên sau:
1.
`messages.tts.providers.\{provider}.*
` (vị trí chuẩn)
2.
`talk.providers.\{provider}.*
` cấp cao nhất (dự phòng)
3. Phím phẳng kế thừa
`messages.tts.\{provider}.*
` (định dạng cũ nhất)

| Cái gì | Điểm đến Hermes |
|------|-------------------|
| Tên nhà cung cấp |

config.yaml
`
`tts.provider
` |
| ID giọng nói ElevenLabs |

config.yaml
`
`tts.elevenlabs.voice_id
` |
| ID mô hình ElevenLabs |

config.yaml
`
`tts.elevenlabs.model_id
` |
| Mô hình OpenAI |

config.yaml
`
`tts.OpenAI.model
` |
| Giọng nói OpenAI |

config.yaml
`
`tts.OpenAI.voice
` |
| Giọng nói Edge TTS |

config.yaml
`
`tts.edge.voice
` (OpenClaw đã đổi tên "edge" thành "Microsoft" — cả hai đều được công nhận) |
| Tài sản TTS |

~/.Hermes/tts/
` (bản sao tệp) |

### Nền tảng nhắn tin| Nền tảng | Đường dẫn cấu hình OpenClaw | Biến Hermes

.env
` | Ghi chú |
|----------|----------------------|----------------------|-------|
| Telegram |

channels.Telegram.botToken
` hoặc

.accounts.default.botToken
` |
`Telegram_BOT_TOKEN
` | Mã thông báo có thể là chuỗi hoặc [SecretRef](#secretref-handling). Hỗ trợ cả bố cục phẳng và tài khoản. |
| Telegram |

credentials/Telegram-default-allowFrom.JSON
` |
`Telegram_ALLOWED_USERS
` | Được nối bằng dấu phẩy từ mảng
`allowFrom[]
` |
| Discord |

channels.Discord.token
` hoặc

.accounts.default.token
` |
`Discord_BOT_TOKEN
` | |
| Discord |

channels.Discord.allowFrom
` hoặc

.accounts.default.allowFrom
` |
`Discord_ALLOWED_USERS
` | |
| Chần chừ |

channels.Slack.botToken
` hoặc

.accounts.default.botToken
` |
`Slack_BOT_TOKEN
` | |
| Chần chừ |

channels.Slack.appToken
` hoặc

.accounts.default.appToken
` |
`Slack_APP_TOKEN
` | |
| Chần chừ |

channels.Slack.allowFrom
` hoặc

.accounts.default.allowFrom
` |
`Slack_ALLOWED_USERS
` | |
| WhatsApp |

channels.WhatsApp.allowFrom
` hoặc

.accounts.default.allowFrom
` |
`WhatsApp_ALLOWED_USERS
` | Xác thực thông qua ghép nối Baileys QR - yêu cầu ghép nối lại sau khi di chuyển |
| Tín hiệu |

channels.Signal.account
` hoặc

.accounts.default.account
` |
`Signal_ACCOUNT
` | |
| Tín hiệu |

channels.Signal.httpUrl
` hoặc

.accounts.default.httpUrl
` |
`Signal_HTTP_URL
` | |
| Tín hiệu |

channels.Signal.allowFrom
` hoặc

.accounts.default.allowFrom
` |
`Signal_ALLOWED_USERS
` | |
| Ma trận |

channels.Matrix.accessToken
` hoặc

.accounts.default.accessToken
` |
`Matrix_ACCESS_TOKEN
` | Sử dụng
`accessToken
` (không phải
`botToken

) |
| Quan trọng nhất |

channels.Mattermost.botToken
` hoặc

.accounts.default.botToken
` |
`Mattermost_BOT_TOKEN
` | |

### Cấu hình khác

| Cái gì | Đường dẫn OpenClaw | Con đường Hermes | Ghi chú |
|------|-------------|-------------|-------|
| Chế độ phê duyệt |

approvals.exec.mode
` |
`config.yaml
`
`approvals.mode
` | "tự động""tắt", "luôn luôn""thủ công", "thông minh""thông minh" |
| Danh sách cho phép lệnh |

exec-approvals.JSON
` |
`config.yaml
`
`command_allowlist
` | Các mẫu được hợp nhất và loại bỏ |
| URL CDP của trình duyệt |

browser.cdpUrl
` |
`config.yaml
`
`browser.cdp_url
` | |
| Trình duyệt không đầu |

browser.headless
` |
`config.yaml
`
`browser.headless
` | |
| Phím tìm kiếm dũng cảm |

tools.web.search.brave.APIKey
` |

.env
`
`BRAVE_API_KEY
` | Yêu cầu

--migrate-secrets
` |
| Mã thông báo xác thực cổng |

gateway.auth.token
` |

.env
`
`Hermes_GATEWAY_TOKEN
` | Yêu cầu

--migrate-secrets
` |
| Thư mục làm việc |

agents.defaults.workspace
` |

.env
`
`MESSAGING_CWD
` | |

### Đã lưu trữ (không có tương đương trực tiếp với Hermes)

Chúng được lưu vào

~/.Hermes/migration/OpenClaw/<timestamp/archive/
` để xem xét thủ công:

| Cái gì | Lưu trữ tập tin | Cách tái tạo trong Hermes |
|------|-------------|--------------------------|
|
`IDENTITY.md
` |
`archive/workspace/IDENTITY.md
` | Hợp nhất vào
`SOUL.md
` |
|
`TOOLS.md
` |
`archive/workspace/TOOLS.md
` | Hermes có hướng dẫn sử dụng công cụ tích hợp |
|
`HEARTBEAT.md
` |
`archive/workspace/HEARTBEAT.md
` | Sử dụng cron jobs cho các tác vụ định kỳ |
|
`BOOTSTRAP.md
` |
`archive/workspace/BOOTSTRAP.md
` | Sử dụng các tệp hoặc kỹ năng ngữ cảnh |
| Công việc định kỳ |

archive/cron-config.JSON
` | Tái tạo bằng
`Hermes cron create
` |
| Plugin |

archive/plugins-config.JSON
` | Xem [plugins guide](/docs/user-guide/features/hooks) |
| Móc/webhooks |

archive/hooks-config.JSON
` | Sử dụng
`Hermes webhook
` hoặc móc cổng |
| Phụ trợ bộ nhớ |

archive/memory-backend-config.JSON
` | Định cấu hình qua
`Hermes Honcho
` |
| Đăng ký kỹ năng |

archive/skills-registry-config.JSON
` | Sử dụng
`Hermes skills config
` |
| Giao diện người dùng/danh tính |

archive/ui-identity-config.JSON
` | Sử dụng lệnh

/skin
` |
| Ghi nhật ký |

archive/logging-diagnostics-config.JSON
` | Đặt trong phần ghi nhật ký
`config.yaml
` |
| Danh sách đa đại lý |

archive/agents-list.JSON
` | Sử dụng hồ sơ Hermes |
| Ràng buộc kênh |

archive/bindings.JSON
` | Thiết lập thủ công cho mỗi nền tảng |
| Kênh phức tạp |

archive/channels-deep-config.JSON
` | Cấu hình nền tảng thủ công |

## Độ phân giải khóa API

Khi

--migrate-secrets
` được bật, các khóa API được thu thập từ **bốn nguồn** theo thứ tự ưu tiên:
1. **Giá trị cấu hình** — Khóa nhà cung cấp
`models.providers.*.APIKey
` và TTS trong
`OpenClaw.JSON

2. **Tệp môi trường** —

~/.OpenClaw/.env
` (các khóa như
`OpenRouter_API_KEY

,
`Anthropic_API_KEY

, v.v.)
3. **Cấu hình đối tượng con env** —
`OpenClaw.JSON
`

"env"
` hoặc

"env"."vars"
` (một số thiết lập lưu trữ khóa tại đây thay vì tệp

.env
` riêng biệt)
4. **Hồ sơ xác thực** —

~/.OpenClaw/agents/main/agent/auth-profiles.JSON
` (thông tin xác thực cho mỗi tác nhân)

Giá trị cấu hình được ưu tiên. Mỗi nguồn tiếp theo sẽ lấp đầy mọi khoảng trống còn lại.

### Các mục tiêu chính được hỗ trợ
`OpenRouter_API_KEY

,
`OpenAI_API_KEY

,
`Anthropic_API_KEY

,
`DeepSeek_API_KEY

,
`Gemini_API_KEY

,
`ZAI_API_KEY

,
`MiniMax_API_KEY

,
`ELEVENLABS_API_KEY

,
`Telegram_BOT_TOKEN

,
`VOICE_TOOLS_OpenAI_KEY
``Các khóa không có trong danh sách cho phép này sẽ không bao giờ được sao chép.

## Xử lý SecretRef

Giá trị cấu hình OpenClaw cho mã thông báo và khóa API có thể ở ba định dạng:

``` json
// Plain string
"channels": { "Telegram": { "botToken": "123456:ABC-DEF..." } }`// Environment template
"channels": { "Telegram": { "botToken": "$\{Telegram_BOT_TOKEN}" } }`// SecretRef object
"channels": { "Telegram": { "botToken": { "source": "env", "id": "Telegram_BOT_TOKEN" } } }

`
``Quá trình di chuyển giải quyết cả ba định dạng. Đối với các mẫu env và các đối tượng SecretRef có
`source: "env"

, nó tra cứu giá trị trong

~/.OpenClaw/.env
` và đối tượng con env
`OpenClaw.JSON

. Không thể tự động giải quyết các đối tượng SecretRef có
`source: "file"
` hoặc
`source: "exec"
` — quá trình di chuyển sẽ cảnh báo về những điều này và các giá trị đó phải được thêm vào Hermes theo cách thủ công thông qua
`Hermes config set

.

## Sau khi di chuyển
1. **Kiểm tra báo cáo di chuyển** — được in khi hoàn thành với số lượng mục đã di chuyển, bị bỏ qua và xung đột.
2. **Xem lại các tệp đã lưu trữ** — mọi thứ trong

~/.Hermes/migration/OpenClaw/<timestamp>/archive/
` đều cần được xử lý thủ công.
3. **Bắt đầu một phiên mới** — các mục nhập bộ nhớ và kỹ năng đã nhập sẽ có hiệu lực trong các phiên mới, không phải phiên hiện tại.
4. **Xác minh khóa API** — chạy
`Hermes status
` để kiểm tra xác thực nhà cung cấp.
5. **Kiểm tra tin nhắn** — nếu bạn đã di chuyển mã thông báo nền tảng, hãy khởi động lại cổng:
`systemctl --user restart Hermes-gateway

6. **Kiểm tra chính sách phiên** — xác minh
`Hermes config get session_reset
` phù hợp với mong đợi của bạn.
7. **Ghép nối lại WhatsApp** — WhatsApp sử dụng ghép nối mã QR (Bailey), không phải di chuyển mã thông báo. Chạy
`Hermes WhatsApp
` để ghép nối.
8. **Dọn dẹp kho lưu trữ** — sau khi xác nhận mọi thứ đều hoạt động, hãy chạy
`Hermes claw cleanup
` để đổi tên các thư mục OpenClaw còn sót lại thành

.pre-migration/
` (ngăn ngừa nhầm lẫn trạng thái).

## Khắc phục sự cố

### "Không tìm thấy thư mục OpenClaw"

Quá trình di chuyển sẽ kiểm tra

~/.OpenClaw/

, sau đó là

~/.ClawdBot/

, sau đó là

~/.MoltBot/

. Nếu cài đặt của bạn ở nơi khác, hãy sử dụng

`
--source /path/to/your/OpenClaw

.

### "Không tìm thấy khóa API của nhà cung cấp"

Khóa có thể được lưu trữ ở một số nơi tùy thuộc vào phiên bản OpenClaw của bạn: nội tuyến trong
`OpenClaw.JSON
` trong
`models.providers.*.APIKey

, trong

~/.OpenClaw/.env

, trong đối tượng phụ
`OpenClaw.JSON
`

"env"
` hoặc trong
`agents/main/agent/auth-profiles.JSON

. Quá trình di chuyển kiểm tra cả bốn. Nếu khóa sử dụng
`source: "file"
` hoặc
`source: "exec"
` SecretRefs thì chúng không thể được giải quyết tự động — hãy thêm chúng qua
`Hermes config set

.

### Kỹ năng không xuất hiện sau khi di chuyển

Đất kỹ năng nhập khẩu trong

~/.Hermes/skills/OpenClaw-imports/

. Bắt đầu phiên mới để chúng có hiệu lực hoặc chạy

/skills
` để xác minh rằng chúng đã được tải.

### Giọng nói TTS chưa được di chuyển

OpenClaw lưu trữ cài đặt TTS ở hai nơi:
`messages.tts.providers.*
` và cấu hình
`talk
` cấp cao nhất. Việc di chuyển kiểm tra cả hai. Nếu ID giọng nói của bạn được đặt qua Giao diện người dùng OpenClaw (được lưu trữ trong một đường dẫn khác), bạn có thể cần phải đặt ID đó theo cách thủ công:
`Hermes config set tts.elevenlabs.voice_id YOUR_VOICE_ID

.