Chuyển đến nội dung chính

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

Trạng thái: Thử nghiệm. Được thêm vào 2026.1.9.

Tổng quan

Nhóm phát sóng cho phép nhiều tác nhân xử lý và phản hồi cùng một tin nhắn đồng thời. Điều này cho phép bạn tạo các nhóm tác nhân chuyên biệt làm việc cùng nhau trong một nhóm WhatsApp hoặc DM duy nhất — tất cả chỉ dùng một số điện thoại. Phạm vi hiện tại: chỉ WhatsApp (kênh web). Nhóm phát sóng được đánh giá sau danh sách cho phép của kênh và các quy tắc kích hoạt nhóm. Trong các nhóm WhatsApp, điều này có nghĩa là phát sóng xảy ra khi OpenClaw thường sẽ phản hồi (ví dụ: khi được nhắc đến, tùy theo cài đặt nhóm của bạn).

Trường hợp sử dụng

Triển khai nhiều tác nhân với trách nhiệm nguyên tử, tập trung:
Group: "Development Team"
Agents:
  - CodeReviewer (reviews code snippets)
  - DocumentationBot (generates docs)
  - SecurityAuditor (checks for vulnerabilities)
  - TestGenerator (suggests test cases)
Mỗi tác nhân xử lý cùng một tin nhắn và cung cấp góc nhìn chuyên biệt của mình.
Group: "International Support"
Agents:
  - Agent_EN (responds in English)
  - Agent_DE (responds in German)
  - Agent_ES (responds in Spanish)
Group: "Customer Support"
Agents:
  - SupportAgent (provides answer)
  - QAAgent (reviews quality, only responds if issues found)
Group: "Project Management"
Agents:
  - TaskTracker (updates task database)
  - TimeLogger (logs time spent)
  - ReportGenerator (creates summaries)

Cấu hình

Thiết lập cơ bản

Thêm một phần broadcast cấp cao nhất (bên cạnh bindings). Khóa là ID ngang hàng của WhatsApp:
  • cuộc trò chuyện nhóm: JID nhóm (ví dụ: 120363403215116621@g.us)
  • DM: số điện thoại E.164 (ví dụ: +15551234567)
{
  "broadcast": {
    "120363403215116621@g.us": ["alfred", "baerbel", "assistant3"]
  }
}
Kết quả: Khi OpenClaw sẽ phản hồi trong cuộc trò chuyện này, nó sẽ chạy cả ba tác nhân.

Chiến lược xử lý

Kiểm soát cách tác nhân xử lý tin nhắn:
Tất cả tác nhân xử lý đồng thời:
{
  "broadcast": {
    "strategy": "parallel",
    "120363403215116621@g.us": ["alfred", "baerbel"]
  }
}

Ví dụ hoàn chỉnh

{
  "agents": {
    "list": [
      {
        "id": "code-reviewer",
        "name": "Code Reviewer",
        "workspace": "/path/to/code-reviewer",
        "sandbox": { "mode": "all" }
      },
      {
        "id": "security-auditor",
        "name": "Security Auditor",
        "workspace": "/path/to/security-auditor",
        "sandbox": { "mode": "all" }
      },
      {
        "id": "docs-generator",
        "name": "Documentation Generator",
        "workspace": "/path/to/docs-generator",
        "sandbox": { "mode": "all" }
      }
    ]
  },
  "broadcast": {
    "strategy": "parallel",
    "120363403215116621@g.us": ["code-reviewer", "security-auditor", "docs-generator"],
    "120363424282127706@g.us": ["support-en", "support-de"],
    "+15555550123": ["assistant", "logger"]
  }
}

Cách hoạt động

Luồng tin nhắn

1

Tin nhắn đến

Một tin nhắn nhóm WhatsApp hoặc DM đến.
2

Kiểm tra phát sóng

Hệ thống kiểm tra xem ID ngang hàng có trong broadcast hay không.
3

Nếu nằm trong danh sách phát sóng

  • Tất cả tác nhân được liệt kê xử lý tin nhắn.
  • Mỗi tác nhân có khóa phiên và ngữ cảnh cô lập riêng.
  • Tác nhân xử lý song song (mặc định) hoặc tuần tự.
4

Nếu không nằm trong danh sách phát sóng

Áp dụng định tuyến bình thường (binding khớp đầu tiên).
Nhóm phát sóng không bỏ qua danh sách cho phép của kênh hoặc các quy tắc kích hoạt nhóm (nhắc đến/lệnh/v.v.). Chúng chỉ thay đổi tác nhân nào chạy khi một tin nhắn đủ điều kiện để xử lý.

Cô lập phiên

Mỗi tác nhân trong một nhóm phát sóng duy trì hoàn toàn riêng biệt:
  • Khóa phiên (agent:alfred:whatsapp:group:120363... so với agent:baerbel:whatsapp:group:120363...)
  • Lịch sử hội thoại (tác nhân không thấy tin nhắn của các tác nhân khác)
  • Workspace (sandbox riêng nếu được cấu hình)
  • Quyền truy cập công cụ (danh sách cho phép/từ chối khác nhau)
  • Bộ nhớ/ngữ cảnh (IDENTITY.md, SOUL.md riêng, v.v.)
  • Bộ đệm ngữ cảnh nhóm (các tin nhắn nhóm gần đây dùng làm ngữ cảnh) được chia sẻ theo từng ngang hàng, nên tất cả tác nhân phát sóng thấy cùng một ngữ cảnh khi được kích hoạt
Điều này cho phép mỗi tác nhân có:
  • Tính cách khác nhau
  • Quyền truy cập công cụ khác nhau (ví dụ: chỉ đọc so với đọc-ghi)
  • Mô hình khác nhau (ví dụ: opus so với sonnet)
  • Các Skills khác nhau đã cài đặt

Ví dụ: phiên cô lập

Trong nhóm 120363403215116621@g.us với các tác nhân ["alfred", "baerbel"]:
Session: agent:alfred:whatsapp:group:120363403215116621@g.us
History: [user message, alfred's previous responses]
Workspace: /Users/user/openclaw-alfred/
Tools: read, write, exec

Phương pháp hay nhất

Thiết kế mỗi tác nhân với một trách nhiệm rõ ràng, duy nhất:
{
  "broadcast": {
    "DEV_GROUP": ["formatter", "linter", "tester"]
  }
}
Tốt: Mỗi tác nhân có một nhiệm vụ. ❌ Không tốt: Một tác nhân “dev-helper” chung chung.
Làm rõ mỗi tác nhân làm gì:
{
  "agents": {
    "security-scanner": { "name": "Security Scanner" },
    "code-formatter": { "name": "Code Formatter" },
    "test-generator": { "name": "Test Generator" }
  }
}
Chỉ cấp cho tác nhân những công cụ chúng cần:
{
  "agents": {
    "reviewer": {
      "tools": { "allow": ["read", "exec"] } // Read-only
    },
    "fixer": {
      "tools": { "allow": ["read", "write", "edit", "exec"] } // Read-write
    }
  }
}
Với nhiều tác nhân, hãy cân nhắc:
  • Dùng "strategy": "parallel" (mặc định) để tăng tốc
  • Giới hạn nhóm phát sóng ở 5-10 tác nhân
  • Dùng mô hình nhanh hơn cho các tác nhân đơn giản hơn
Tác nhân lỗi độc lập. Lỗi của một tác nhân không chặn các tác nhân khác:
Message → [Agent A ✓, Agent B ✗ error, Agent C ✓]
Result: Agent A and C respond, Agent B logs error

Khả năng tương thích

Nhà cung cấp

Nhóm phát sóng hiện hoạt động với:
  • ✅ WhatsApp (đã triển khai)
  • 🚧 Telegram (đã lên kế hoạch)
  • 🚧 Discord (đã lên kế hoạch)
  • 🚧 Slack (đã lên kế hoạch)

Định tuyến

Nhóm phát sóng hoạt động cùng với định tuyến hiện có:
{
  "bindings": [
    {
      "match": { "channel": "whatsapp", "peer": { "kind": "group", "id": "GROUP_A" } },
      "agentId": "alfred"
    }
  ],
  "broadcast": {
    "GROUP_B": ["agent1", "agent2"]
  }
}
  • GROUP_A: Chỉ alfred phản hồi (định tuyến bình thường).
  • GROUP_B: agent1 VÀ agent2 phản hồi (phát sóng).
Độ ưu tiên: broadcast được ưu tiên hơn bindings.

Khắc phục sự cố

Kiểm tra:
  1. ID tác nhân tồn tại trong agents.list.
  2. Định dạng ID ngang hàng chính xác (ví dụ: 120363403215116621@g.us).
  3. Tác nhân không nằm trong danh sách từ chối.
Gỡ lỗi:
tail -f ~/.openclaw/logs/gateway.log | grep broadcast
Nguyên nhân: ID ngang hàng có thể nằm trong bindings nhưng không nằm trong broadcast.Cách khắc phục: Thêm vào cấu hình phát sóng hoặc xóa khỏi bindings.
Nếu chậm với nhiều tác nhân:
  • Giảm số lượng tác nhân trên mỗi nhóm.
  • Dùng mô hình nhẹ hơn (sonnet thay vì opus).
  • Kiểm tra thời gian khởi động sandbox.

Ví dụ

{
  "broadcast": {
    "strategy": "parallel",
    "120363403215116621@g.us": [
      "code-formatter",
      "security-scanner",
      "test-coverage",
      "docs-checker"
    ]
  },
  "agents": {
    "list": [
      {
        "id": "code-formatter",
        "workspace": "~/agents/formatter",
        "tools": { "allow": ["read", "write"] }
      },
      {
        "id": "security-scanner",
        "workspace": "~/agents/security",
        "tools": { "allow": ["read", "exec"] }
      },
      {
        "id": "test-coverage",
        "workspace": "~/agents/testing",
        "tools": { "allow": ["read", "exec"] }
      },
      { "id": "docs-checker", "workspace": "~/agents/docs", "tools": { "allow": ["read"] } }
    ]
  }
}
Người dùng gửi: Đoạn mã.Phản hồi:
  • code-formatter: “Đã sửa thụt lề và thêm gợi ý kiểu”
  • security-scanner: “⚠️ Lỗ hổng SQL injection ở dòng 12”
  • test-coverage: “Độ phủ là 45%, thiếu kiểm thử cho các trường hợp lỗi”
  • docs-checker: “Thiếu docstring cho hàm process_data
{
  "broadcast": {
    "strategy": "sequential",
    "+15555550123": ["detect-language", "translator-en", "translator-de"]
  },
  "agents": {
    "list": [
      { "id": "detect-language", "workspace": "~/agents/lang-detect" },
      { "id": "translator-en", "workspace": "~/agents/translate-en" },
      { "id": "translator-de", "workspace": "~/agents/translate-de" }
    ]
  }
}

Tham chiếu API

Lược đồ cấu hình

interface OpenClawConfig {
  broadcast?: {
    strategy?: "parallel" | "sequential";
    [peerId: string]: string[];
  };
}

Trường

strategy
"parallel" | "sequential"
mặc định:"\"parallel\""
Cách xử lý tác nhân. parallel chạy tất cả tác nhân đồng thời; sequential chạy chúng theo thứ tự mảng.
[peerId]
string[]
JID nhóm WhatsApp, số E.164 hoặc ID ngang hàng khác. Giá trị là mảng ID tác nhân nên xử lý tin nhắn.

Giới hạn

  1. Số tác nhân tối đa: Không có giới hạn cứng, nhưng hơn 10 tác nhân có thể chậm.
  2. Ngữ cảnh dùng chung: Tác nhân không thấy phản hồi của nhau (theo thiết kế).
  3. Thứ tự tin nhắn: Phản hồi song song có thể đến theo bất kỳ thứ tự nào.
  4. Giới hạn tốc độ: Tất cả tác nhân đều được tính vào giới hạn tốc độ của WhatsApp.

Cải tiến trong tương lai

Các tính năng đã lên kế hoạch:
  • Chế độ ngữ cảnh dùng chung (tác nhân thấy phản hồi của nhau)
  • Điều phối tác nhân (tác nhân có thể báo hiệu cho nhau)
  • Chọn tác nhân động (chọn tác nhân dựa trên nội dung tin nhắn)
  • Độ ưu tiên của tác nhân (một số tác nhân phản hồi trước các tác nhân khác)

Liên quan