# Tích hợp OpenClaw

**OpenClaw** là một khung AI Agent mạnh mẽ. Bằng cách cài đặt kỹ năng MoreLogin vào không gian làm việc OpenClaw của bạn, đại lý của bạn sẽ có khả năng quản lý hoàn toàn hồ sơ trình duyệt và điện thoại đám mây một cách tự động.

## Điều kiện tiên quyết

- [Node.js](https://nodejs.org/) v18 trở lên
- [OpenClaw](https://github.com/openclaw-ai/openclaw) đã được cài đặt và khởi chạy
- ThêmỨng dụng máy tính để bàn Đăng nhập chạy trên cùng một máy (API cục bộ tại `http://localhost:40000`)


## Cài đặt & Thiết lập

### 1. Cài đặt OpenClaw (nếu chưa cài)

```bash
npm install -g openclaw
openclaw init    # Creates ~/.openclaw/workspace/
```

Sau khi khởi tạo, cấu trúc không gian làm việc trông như thế này:

```
~/.openclaw/
├── workspace/
│   ├── skills/          ← Skill plugins live here
│   │   └── morelogin/   ← MoreLogin skill (you will create this)
│   ├── TOOLS.md         ← Tool configuration file
│   └── ...
└── config.yaml          ← OpenClaw global config
```

### 2. Cài đặt kỹ năng MoreLogin

Sao chép kho kỹ năng chính thức vào thư mục kỹ năng OpenClaw:

```bash
# Clone the skill into the correct location
git clone https://github.com/MoreLoginBrowser/morelogin-local-api-skill.git \
  ~/.openclaw/workspace/skills/morelogin

# Install dependencies
cd ~/.openclaw/workspace/skills/morelogin
npm install
```

> **Kỹ năng đến từ đâu?**
Mã nguồn kỹ năng được lưu trữ trên GitHub tại [MoreLoginBrowser/morelogin-local-api-skill](https://github.com/MoreLoginBrowser/morelogin-local-api-skill). Kho lưu trữ này chứa trình bao bọc CLI và các ràng buộc API mà OpenClaw sử dụng để tương tác với MoreLogin.


### 3. Cấu hình công cụ OpenClaw

Thêm định nghĩa công cụ MoreLogin vào tệp `~/.openclaw/workspace/TOOLS.md` của bạn:

```markdown
### Morelogin

- Install Path: /Applications/Morelogin.app (macOS) or C:\Program Files\MoreLogin (Windows)
- Default CDP Port: 9222
- Local API: http://localhost:40000
```

### 4. Xác minh cài đặt

Chạy thử nghiệm nhanh để xác nhận kỹ năng đã được cài đặt chính xác:

```bash
openclaw morelogin browser list --page 1 --page-size 5
```

Nếu ứng dụng MoreLogin đang chạy, bạn sẽ thấy phản hồi JSON kèm theo hồ sơ trình duyệt của mình (hoặc một danh sách trống).

## Cập nhật kỹ năng

Để cập nhật lên phiên bản mới nhất:

```bash
cd ~/.openclaw/workspace/skills/morelogin
git pull origin main
npm install
```

Kiểm tra các thay đổi có thể vi phạm trong [ghi chú phát hành](https://github.com/MoreLoginBrowser/morelogin-local-api-skill/releases) trước khi nâng cấp.

## Tham khảo lệnh CLI

Kỹ năng MoreLogin hiển thị các lệnh CLI trực tiếp vào môi trường OpenClaw. Tác nhân tự động gọi những thứ này trong quá trình lập luận, nhưng bạn cũng có thể chạy chúng theo cách thủ công để kiểm tra.

### Hồ sơ trình duyệt

```bash
# List profiles
openclaw morelogin browser list --page 1 --page-size 20

# Start a profile (Returns debugPort for CDP connection)
openclaw morelogin browser start --env-id abc123def

# View running status
openclaw morelogin browser status --env-id abc123def

# Close profile
openclaw morelogin browser close --env-id abc123def
```

### Điện thoại đám mây

```bash
# List cloud phones
openclaw morelogin cloudphone list --page 1 --page-size 20

# Start/Stop
openclaw morelogin cloudphone start --id <cloudPhoneId>
openclaw morelogin cloudphone stop --id <cloudPhoneId>

# Get details (Includes ADB connection info)
openclaw morelogin cloudphone info --id <cloudPhoneId>

# Execute cloud phone command via ADB
openclaw morelogin cloudphone exec --id <cloudPhoneId> --command "ls /sdcard"
```

### Quản lý proxy & nhóm

```bash
# Proxy
openclaw morelogin proxy list
openclaw morelogin proxy add --payload '{"proxyIp":"1.2.3.4","proxyPort":8000,"proxyType":0}'

# Group
openclaw morelogin group list
openclaw morelogin group create --name "US-Group"
```

## Ví dụ từ đầu đến cuối tối thiểu

Dưới đây là ví dụ hoàn chỉnh về cách tạo hồ sơ trình duyệt, khởi chạy nó, truy cập URL qua CDP và đóng hồ sơ - tất cả đều do tác nhân OpenClaw sắp xếp.

### Lời nhắc ngôn ngữ tự nhiên

> *"Tạo hồ sơ trình duyệt MoreLogin mới, mở google.com, chụp ảnh màn hình và đóng nó."*


### Những gì đại lý thực hiện

```bash
# 1. Create a browser profile
openclaw morelogin browser create --name "demo-profile"
# → Returns: {"envId": "abc123def"}

# 2. Start the profile
openclaw morelogin browser start --env-id abc123def
# → Returns: {"debugPort": "9222", "webdriver": "/path/to/chromedriver"}

# 3. Connect via CDP (agent uses Puppeteer internally)
# The agent connects to ws://127.0.0.1:9222 and runs:
#   - page.goto("https://www.google.com")
#   - page.screenshot({path: "screenshot.png"})

# 4. Close the profile
openclaw morelogin browser close --env-id abc123def
```

### Tập lệnh tương đương (Node.js)

```javascript
const { execSync } = require('child_process');
const puppeteer = require('puppeteer-core');

async function main() {
  // 1. Create profile
  const createResult = JSON.parse(
    execSync('openclaw morelogin browser create --name "demo-profile"').toString()
  );
  const envId = createResult.data.envId;

  // 2. Start profile
  const startResult = JSON.parse(
    execSync(`openclaw morelogin browser start --env-id ${envId}`).toString()
  );
  const debugPort = startResult.data.debugPort;

  // 3. Connect via CDP and automate
  const browser = await puppeteer.connect({
    browserURL: `http://127.0.0.1:${debugPort}`,
    defaultViewport: null
  });
  const page = (await browser.pages())[0];
  await page.goto('https://www.google.com');
  await page.screenshot({ path: 'screenshot.png' });
  console.log('Screenshot saved.');

  // 4. Cleanup
  await browser.disconnect();
  execSync(`openclaw morelogin browser close --env-id ${envId}`);
  console.log('Profile closed.');
}

main().catch(console.error);
```

## Lý do đại lý như thế nào

Khi bạn yêu cầu đại lý OpenClaw *"tạo hồ sơ và đăng nhập vào example.com"*, đại lý sẽ:

1. Gọi `openclaw morelogin browser create` (hoặc API tương đương) để nhận `envId`.
2. Gọi `openclaw morelogin browser start` để nhận `debugPort`.
3. Sử dụng công cụ CDP (như Puppeteer/Playwright) để kết nối với `debugPort` và thực hiện các bước đăng nhập.
4. Xác minh thành công qua `openclaw morelogin browser status`.


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

| triệu chứng | Giải pháp |
|  --- | --- |
| `command not found: openclaw` | Đảm bảo OpenClaw được cài đặt trên toàn cầu: `npm install -g openclaw` |
| `Error: connect ECONNREFUSED 127.0.0.1:40000` | Khởi động ứng dụng máy tính để bàn MoreLogin trước khi chạy lệnh |
| Thư mục kỹ năng bị thiếu | Chạy `openclaw init` để tạo không gian làm việc, sau đó sao chép kỹ năng |
| Dữ liệu cũ sau khi cập nhật | Chạy lại `npm install` trong thư mục kỹ năng sau `git pull` |