ملٹی ایجنٹ روٹنگ¶
مقصد: ایک ہی چلتے ہوئے Gateway میں متعدد الگ تھلگ ایجنٹس (الگ ورک اسپیس + agentDir + سیشنز)، نیز متعدد چینل اکاؤنٹس (مثلاً دو WhatsApps)۔ اِن باؤنڈ کو بائنڈنگز کے ذریعے کسی ایجنٹ کی طرف روٹ کیا جاتا ہے۔
“ایک ایجنٹ” کیا ہے؟¶
ایک ایجنٹ ایک مکمل طور پر محدود دماغ ہے جس کے پاس اپنی یہ چیزیں ہوتی ہیں:
- Workspace (فائلیں، AGENTS.md/SOUL.md/USER.md، مقامی نوٹس، پرسونا قواعد)۔
- State directory (
agentDir) برائے تصدیقی پروفائلز، ماڈل رجسٹری، اور ہر ایجنٹ کی کنفیگ۔ - Session store (چیٹ ہسٹری + روٹنگ اسٹیٹ) جو
~/.openclaw/agents/<agentId>/sessionsکے تحت ہوتی ہے۔
Auth پروفائلز ہر ایجنٹ کے لیے علیحدہ ہوتے ہیں۔ ہر ایجنٹ اپنے درج ذیل سے پڑھتا ہے:
~/.openclaw/agents/<agentId>/agent/auth-profiles.json
مرکزی ایجنٹ کی اسناد خودکار طور پر شیئر نہیں کی جاتیں۔ agentDir کو کبھی دوبارہ استعمال نہ کریں۔
across agents (it causes auth/session collisions). If you want to share creds,
copy auth-profiles.json into the other agent's agentDir.
اسکلز ہر ایجنٹ کے لیے اس کے اپنے ورک اسپیس کے skills/ فولڈر کے ذریعے ہوتی ہیں، مشترکہ اسکلز کے ساتھ۔
available from ~/.openclaw/skills. See Skills: per-agent vs shared.
Gateway ایک ایجنٹ (ڈیفالٹ) یا کئی ایجنٹس کو ساتھ ساتھ ہوسٹ کر سکتا ہے۔
ورک اسپیس نوٹ: ہر ایجنٹ کا ورک اسپیس ڈیفالٹ cwd ہوتا ہے، کوئی مقررہ ہارڈ نہیں۔ sandbox. Relative paths resolve inside the workspace, but absolute paths can reach other host locations unless sandboxing is enabled. See Sandboxing.
Paths (فوری نقشہ)¶
- Config:
~/.openclaw/openclaw.json(یاOPENCLAW_CONFIG_PATH) - State dir:
~/.openclaw(یاOPENCLAW_STATE_DIR) - Workspace:
~/.openclaw/workspace(یا~/.openclaw/workspace-<agentId>) - Agent dir:
~/.openclaw/agents/<agentId>/agent(یاagents.list[].agentDir) - سیشنز:
~/.openclaw/agents/<agentId>/sessions
سنگل ایجنٹ موڈ (ڈیفالٹ)¶
اگر آپ کچھ نہیں کرتے تو OpenClaw ایک واحد ایجنٹ چلاتا ہے:
agentIdبطورِ طے شدہmainہوتا ہے۔- سیشنز
agent:main:<mainKey>کے طور پر کی کیے جاتے ہیں۔ - Workspace بطورِ طے شدہ
~/.openclaw/workspaceہوتی ہے (یا~/.openclaw/workspace-<profile>جبOPENCLAW_PROFILEسیٹ ہو)۔ - State بطورِ طے شدہ
~/.openclaw/agents/main/agentہوتی ہے۔
ایجنٹ ہیلپر¶
نیا الگ تھلگ ایجنٹ شامل کرنے کے لیے ایجنٹ وِزارڈ استعمال کریں:
openclaw agents add work
پھر ان باؤنڈ پیغامات کو روٹ کرنے کے لیے bindings شامل کریں (یا وِزارڈ کو کرنے دیں)۔
تصدیق کریں:
openclaw agents list --bindings
متعدد ایجنٹس = متعدد افراد، متعدد شخصیات¶
متعدد ایجنٹس کے ساتھ، ہر agentId ایک مکمل طور پر الگ پرسونا بن جاتا ہے:
- مختلف فون نمبرز/اکاؤنٹس (ہر چینل
accountIdکے مطابق)۔ - مختلف شخصیات (ہر ایجنٹ کی ورک اسپیس فائلیں جیسے
AGENTS.mdاورSOUL.md)۔ - الگ تصدیق + سیشنز (واضح طور پر فعال نہ کیا جائے تو کوئی کراس ٹاک نہیں)۔
اس سے متعدد افراد ایک ہی Gateway سرور شیئر کر سکتے ہیں جبکہ ان کے AI “دماغ” اور ڈیٹا الگ تھلگ رہتے ہیں۔
ایک WhatsApp نمبر، متعدد افراد (DM تقسیم)¶
You can route different WhatsApp DMs to different agents while staying on one WhatsApp account. Match on sender E.164 (like +15551234567) with peer.kind: "direct". 3. وہ چینلز جو متعدد اکاؤنٹس کو سپورٹ کرتے ہیں (مثلاً WhatsApp) ہر لاگ اِن کی شناخت کے لیے accountId استعمال کرتے ہیں۔
اہم تفصیل: براہِ راست چیٹس ایجنٹ کی مرکزی سیشن کلید میں ضم ہو جاتی ہیں، لہٰذا حقیقی علیحدگی کے لیے ہر فرد کے لیے ایک ایجنٹ درکار ہے۔
مثال:
{
agents: {
list: [
{ id: "alex", workspace: "~/.openclaw/workspace-alex" },
{ id: "mia", workspace: "~/.openclaw/workspace-mia" },
],
},
bindings: [
{
agentId: "alex",
match: { channel: "whatsapp", peer: { kind: "direct", id: "+15551230001" } },
},
{
agentId: "mia",
match: { channel: "whatsapp", peer: { kind: "direct", id: "+15551230002" } },
},
],
channels: {
whatsapp: {
dmPolicy: "allowlist",
allowFrom: ["+15551230001", "+15551230002"],
},
},
}
نوٹس:
- DM رسائی کا کنٹرول ہر WhatsApp اکاؤنٹ کے لیے عالمی ہوتا ہے (pairing/allowlist)، ایجنٹ کے لیے الگ نہیں۔
- مشترکہ گروپس کے لیے، گروپ کو ایک ایجنٹ سے بائنڈ کریں یا Broadcast groups استعمال کریں۔
روٹنگ قواعد (پیغامات ایجنٹ کیسے منتخب کرتے ہیں)¶
بائنڈنگز متعین ہوتی ہیں اور زیادہ مخصوص کو ترجیح ملتی ہے:
peerمیچ (عین DM/گروپ/چینل آئی ڈی)guildId(Discord)teamId(Slack)- کسی چینل کے لیے
accountIdمیچ - چینل سطح کا میچ (
accountId: "*") - ڈیفالٹ ایجنٹ پر فال بیک (
agents.list[].default، ورنہ پہلی فہرست اندراج، ڈیفالٹ:main)
متعدد اکاؤنٹس / فون نمبرز¶
- ہر
accountIdکو مختلف ایجنٹ کی طرف روٹ کیا جا سکتا ہے، اس طرح ایک سرور سیشنز کو ملائے بغیر متعدد فون نمبرز ہوسٹ کر سکتا ہے۔ 5. ٹول allow/deny فہرستیں tools ہیں، skills نہیں۔
تصورات¶
agentId: ایک “دماغ” (ورک اسپیس، ہر ایجنٹ کی تصدیق، ہر ایجنٹ کا سیشن اسٹور)۔accountId: ایک چینل اکاؤنٹ انسٹینس (مثلاً WhatsApp اکاؤنٹ"personal"بمقابلہ"biz")۔binding: ان باؤنڈ پیغامات کوagentIdتک(channel, accountId, peer)اور اختیاری طور پر گلڈ/ٹیم آئی ڈیز کے ذریعے روٹ کرتا ہے۔- براہِ راست چیٹس
agent:<agentId>:<mainKey>میں ضم ہو جاتی ہیں (ہر ایجنٹ کی “مرکزی”؛session.mainKey)۔
مثال: دو WhatsApp → دو ایجنٹس¶
~/.openclaw/openclaw.json (JSON5):
{
agents: {
list: [
{
id: "home",
default: true,
name: "Home",
workspace: "~/.openclaw/workspace-home",
agentDir: "~/.openclaw/agents/home/agent",
},
{
id: "work",
name: "Work",
workspace: "~/.openclaw/workspace-work",
agentDir: "~/.openclaw/agents/work/agent",
},
],
},
// Deterministic routing: first match wins (most-specific first).
bindings: [
{ agentId: "home", match: { channel: "whatsapp", accountId: "personal" } },
{ agentId: "work", match: { channel: "whatsapp", accountId: "biz" } },
// Optional per-peer override (example: send a specific group to work agent).
{
agentId: "work",
match: {
channel: "whatsapp",
accountId: "personal",
peer: { kind: "group", id: "1203630...@g.us" },
},
},
],
// Off by default: agent-to-agent messaging must be explicitly enabled + allowlisted.
tools: {
agentToAgent: {
enabled: false,
allow: ["home", "work"],
},
},
channels: {
whatsapp: {
accounts: {
personal: {
// Optional override. Default: ~/.openclaw/credentials/whatsapp/personal
// authDir: "~/.openclaw/credentials/whatsapp/personal",
},
biz: {
// Optional override. Default: ~/.openclaw/credentials/whatsapp/biz
// authDir: "~/.openclaw/credentials/whatsapp/biz",
},
},
},
},
}
مثال: WhatsApp روزمرہ چیٹ + Telegram گہرا کام¶
چینل کے لحاظ سے تقسیم کریں: WhatsApp کو تیز روزمرہ ایجنٹ اور Telegram کو Opus ایجنٹ کی طرف روٹ کریں۔
{
agents: {
list: [
{
id: "chat",
name: "Everyday",
workspace: "~/.openclaw/workspace-chat",
model: "anthropic/claude-sonnet-4-5",
},
{
id: "opus",
name: "Deep Work",
workspace: "~/.openclaw/workspace-opus",
model: "anthropic/claude-opus-4-6",
},
],
},
bindings: [
{ agentId: "chat", match: { channel: "whatsapp" } },
{ agentId: "opus", match: { channel: "telegram" } },
],
}
نوٹس:
- اگر کسی چینل کے لیے آپ کے پاس متعدد اکاؤنٹس ہیں تو بائنڈنگ میں
accountIdشامل کریں (مثلاً{ channel: "whatsapp", accountId: "personal" })۔ - کسی ایک DM/گروپ کو Opus کی طرف روٹ کرنے کے لیے جبکہ باقی چیٹ پر ہی رہے،
اس peer کے لیے
match.peerبائنڈنگ شامل کریں؛ peer میچز ہمیشہ چینل وسیع قواعد پر غالب ہوتے ہیں۔
مثال: ایک ہی چینل، ایک peer کو Opus¶
WhatsApp کو تیز ایجنٹ پر رکھیں، لیکن ایک DM کو Opus کی طرف روٹ کریں:
{
agents: {
list: [
{
id: "chat",
name: "Everyday",
workspace: "~/.openclaw/workspace-chat",
model: "anthropic/claude-sonnet-4-5",
},
{
id: "opus",
name: "Deep Work",
workspace: "~/.openclaw/workspace-opus",
model: "anthropic/claude-opus-4-6",
},
],
},
bindings: [
{
agentId: "opus",
match: { channel: "whatsapp", peer: { kind: "direct", id: "+15551234567" } },
},
{ agentId: "chat", match: { channel: "whatsapp" } },
],
}
Peer بائنڈنگز ہمیشہ غالب رہتی ہیں، اس لیے انہیں چینل وسیع قاعدے کے اوپر رکھیں۔
WhatsApp گروپ سے منسلک خاندانی ایجنٹ¶
ایک مخصوص خاندانی ایجنٹ کو ایک ہی WhatsApp گروپ سے بائنڈ کریں، mention gating اور سخت تر ٹول پالیسی کے ساتھ:
{
agents: {
list: [
{
id: "family",
name: "Family",
workspace: "~/.openclaw/workspace-family",
identity: { name: "Family Bot" },
groupChat: {
mentionPatterns: ["@family", "@familybot", "@Family Bot"],
},
sandbox: {
mode: "all",
scope: "agent",
},
tools: {
allow: [
"exec",
"read",
"sessions_list",
"sessions_history",
"sessions_send",
"sessions_spawn",
"session_status",
],
deny: ["write", "edit", "apply_patch", "browser", "canvas", "nodes", "cron"],
},
},
],
},
bindings: [
{
agentId: "family",
match: {
channel: "whatsapp",
peer: { kind: "group", id: "120363999999999999@g.us" },
},
},
],
}
نوٹس:
-
- اگر کسی skill کو بائنری چلانے کی ضرورت ہو تو یقینی بنائیں کہ
execکی اجازت ہے اور بائنری sandbox میں موجود ہے۔ 7. نوٹ:setupCommand،sandbox.dockerکے تحت ہوتا ہے اور کنٹینر بننے پر ایک بار چلتا ہے۔
- اگر کسی skill کو بائنری چلانے کی ضرورت ہو تو یقینی بنائیں کہ
- مزید سخت gating کے لیے
agents.list[].groupChat.mentionPatternsسیٹ کریں اور چینل کے لیے گروپ allowlists فعال رکھیں۔
ہر ایجنٹ کے لیے Sandbox اور ٹول کنفیگریشن¶
v2026.1.6 سے، ہر ایجنٹ کا اپنا sandbox اور ٹول پابندیاں ہو سکتی ہیں:
{
agents: {
list: [
{
id: "personal",
workspace: "~/.openclaw/workspace-personal",
sandbox: {
mode: "off", // No sandbox for personal agent
},
// No tool restrictions - all tools available
},
{
id: "family",
workspace: "~/.openclaw/workspace-family",
sandbox: {
mode: "all", // Always sandboxed
scope: "agent", // One container per agent
docker: {
// Optional one-time setup after container creation
setupCommand: "apt-get update && apt-get install -y git curl",
},
},
tools: {
allow: ["read"], // Only read tool
deny: ["exec", "write", "edit", "apply_patch"], // Deny others
},
},
],
},
}
- جب resolved scope
"shared"ہو تو فی‑ایجنٹsandbox.docker.*overrides کو نظرانداز کر دیا جاتا ہے۔ - نوٹ:
tools.elevatedglobal اور sender‑based ہے؛ یہ فی ایجنٹ قابلِ ترتیب نہیں۔
فوائد:
- سکیورٹی علیحدگی: غیر معتبر ایجنٹس کے لیے ٹولز محدود کریں
- وسائل کا کنٹرول: مخصوص ایجنٹس کو sandbox میں رکھیں جبکہ دیگر کو ہوسٹ پر رہنے دیں
- لچکدار پالیسیاں: ہر ایجنٹ کے لیے مختلف اجازتیں
- اگر آپ کو فی‑ایجنٹ حدود درکار ہوں تو
agents.list[].toolsاستعمال کر کےexecکو deny کریں۔ - گروپ ٹارگٹنگ کے لیے
agents.list[].groupChat.mentionPatternsاستعمال کریں تاکہ @mentions صاف طور پر مطلوبہ ایجنٹ سے میپ ہوں۔ - OpenClaw ان فراہم کنندگان کے لیے OAuth کے ذریعے “subscription auth” کو سپورٹ کرتا ہے جو اسے فراہم کرتے ہیں (خاص طور پر OpenAI Codex (ChatGPT OAuth))۔
تفصیلی مثالوں کے لیے دیکھیں Multi-Agent Sandbox & Tools۔