Lobster¶
Lobster — OpenClaw’ga aniq tasdiqlash nuqtalari bilan ko‘p bosqichli asboblar ketma-ketligini yagona, deterministik operatsiya sifatida bajarishga imkon beruvchi ish jarayoni qobig‘i.
Ilgak¶
Yordamchingiz o‘zini boshqaradigan asboblarni yaratishi mumkin. Ish jarayonini so‘rang, va 30 daqiqadan so‘ng sizda bitta chaqiruvda ishlaydigan CLI hamda quvurlar bo‘ladi. Lobster — yetishmayotgan bo‘lak: deterministik quvurlar, aniq tasdiqlar va qayta tiklanadigan holat.
Nega¶
Bugun murakkab ish jarayonlari ko‘plab oldinga-orqaga asbob chaqiruvlarini talab qiladi. Har bir chaqiruv tokenlarga tushadi va LLM har bir qadamni orkestratsiya qilishi kerak. Lobster bu orkestratsiyani tiplangan runtime’ga ko‘chiradi:
- Ko‘p chaqiruvlar o‘rniga bitta: OpenClaw bitta Lobster asbob chaqiruvini bajaradi va tuzilgan natijani oladi.
- Tasdiqlar ichiga qurilgan: Yon ta’sirlar (email yuborish, izoh joylash) aniq tasdiqlanmaguncha ish jarayonini to‘xtatadi.
- Qayta tiklanadigan: To‘xtatilgan ish jarayonlari token qaytaradi; tasdiqlang va hammasini qayta ishga tushirmasdan davom eting.
Nega oddiy dasturlar o‘rniga DSL?¶
Lobster ataylab kichik. Maqsad “yangi til” emas, balki birinchi darajali tasdiqlar va davom ettirish tokenlari bilan bashorat qilinadigan, AI’ga qulay quvur spetsifikatsiyasidir.
- Tasdiqlash/davom ettirish ichiga qurilgan: Oddiy dastur odamdan so‘rashi mumkin, ammo siz o‘zingiz alohida runtime ixtiro qilmasdan mustahkam token bilan to‘xtab davom eta olmaydi.
- Deterministiklik + auditlanish: Quvurlar ma’lumotdir, shuning uchun ularni yozib olish, farqlash, qayta ijro etish va ko‘rib chiqish oson.
- AI uchun cheklangan sirt: Kichik grammatika + JSON quvurlash “ijodiy” kod yo‘llarini kamaytiradi va tekshiruvni real qiladi.
- Xavfsizlik siyosati ichiga singdirilgan: Timeoutlar, chiqish cheklovlari, sandbox tekshiruvlari va allowlistlar har bir skript emas, balki runtime tomonidan majburlanadi.
- Hali ham dasturlanadigan: Har bir qadam istalgan CLI yoki skriptni chaqirishi mumkin. Agar JS/TS xohlasangiz,
.lobsterfayllarini koddan yarating.
Qanday ishlaydi¶
OpenClaw lokal lobster CLI’ni asbob rejimida ishga tushiradi va stdout’dan JSON konvertini tahlil qiladi.
Agar quvur tasdiqlash uchun to‘xtasa, asbob keyinroq davom ettirish uchun resumeToken qaytaradi.
1. Naqsh: kichik CLI + JSON quvurlari + tasdiqlashlar¶
- JSON bilan gaplashadigan juda kichik buyruqlarni yarating, so‘ng ularni bitta Lobster chaqiruviga zanjirlab ulang. 3. (Quyida buyruq nomlariga misollar — o‘zingiznikiga almashtiring.)
4. inbox list --json
inbox categorize --json
inbox apply --json
5. {
"action": "run",
"pipeline": "exec --json --shell 'inbox list --json' | exec --stdin json --shell 'inbox categorize --json' | exec --stdin json --shell 'inbox apply --json' | approve --preview-from-stdin --limit 5 --prompt 'Apply changes?'",
"timeoutMs": 30000
}
- Agar quvur tasdiqlashni so‘rasa, token bilan davom ettiring:
46. {
"action": "resume",
"token": "<resumeToken>",
"approve": true
}
-
AI ish jarayonini ishga tushiradi; Lobster bosqichlarni bajaradi. 9. Tasdiqlash darvozalari yon ta’sirlarni aniq va audit qilinadigan holatda saqlaydi.
-
Misol: kirish elementlarini asbob chaqiruvlariga moslash:
11. gog.gmail.search --query 'newer_than:1d' \
| openclaw.invoke --tool message --action send --each --item-key message --args-json '{"provider":"telegram","to":"..."}'
12. Faqat JSON bo‘lgan LLM bosqichlari (llm-task)¶
-
Tuzilgan LLM bosqichi kerak bo‘lgan ish jarayonlari uchun ixtiyoriy
llm-taskplagin asbobini yoqing va uni Lobster’dan chaqiring. 14. Bu ish jarayonini deterministik holatda saqlaydi, shu bilan birga model yordamida tasniflash/xulosa qilish/qoralama yozishga imkon beradi. -
Vositanı yoqing:
48. {
"plugins": {
"entries": {
"llm-task": { "enabled": true }
}
},
"agents": {
"list": [
{
"id": "main",
"tools": { "allow": ["llm-task"] }
}
]
}
}
- Uni quvurda ishlating:
18. openclaw.invoke --tool llm-task --action json --args-json '{
"prompt": "Given the input email, return intent and draft.",
"input": { "subject": "Hello", "body": "Can you help?" },
"schema": {
"type": "object",
"properties": {
"intent": { "type": "string" },
"draft": { "type": "string" }
},
"required": ["intent", "draft"],
"additionalProperties": false
}
}'
- Tafsilotlar va sozlash variantlari uchun LLM Task ga qarang.
50. Workflow fayllari (.lobster)¶
- Lobster
name,args,steps,env,conditionvaapprovalmaydonlariga ega YAML/JSON ish jarayoni fayllarini ishga tushira oladi. 22. OpenClaw asbob chaqiruvlaridapipelineni fayl yo‘liga o‘rnating.
name: inbox-triage
args:
tag:
default: "family"
steps:
- id: collect
command: inbox list --json
- id: categorize
command: inbox categorize --json
stdin: $collect.stdout
- id: approve
command: inbox apply --approve
stdin: $categorize.stdout
approval: required
- id: execute
command: inbox apply --execute
stdin: $categorize.stdout
condition: $approve.approved
- Eslatmalar:
-
stdin: $step.stdoutvastdin: $step.jsonoldingi bosqich chiqishini uzatadi.
-
condition(yokiwhen) bosqichlarni$step.approvedga qarab cheklashi mumkin.
27. Lobster’ni o‘rnating¶
- OpenClaw Gateway ishlaydigan xuddi shu xostga Lobster CLI’ni o‘rnating (Lobster repozitoriyasiga qarang) va
lobsterPATHda ekanini ta’minlang. - Agar maxsus binar joylashuvdan foydalanmoqchi bo‘lsangiz, asbob chaqiruvida mutlaq
lobsterPathni bering.
30. Asbobni yoqing¶
-
Lobster — ixtiyoriy plagin asbob (sukut bo‘yicha yoqilmagan).
-
Tavsiya etiladi (qo‘shimcha, xavfsiz):
33. {
"tools": {
"alsoAllow": ["lobster"]
}
}
- Yoki agent bo‘yicha:
35. {
"agents": {
"list": [
{
"id": "main",
"tools": {
"alsoAllow": ["lobster"]
}
}
]
}
}
-
Cheklovchi allowlist rejimida ishlashni ko‘zlamagan bo‘lsangiz,
tools.allow: ["lobster"]dan foydalanishdan saqlaning. -
Eslatma: allowlistlar ixtiyoriy plaginlar uchun opt-in hisoblanadi. 38. Agar allowlistingiz faqat
lobsterkabi plagin asboblarini nomlasa, OpenClaw asosiy asboblarni yoqilgan holda qoldiradi. 39. Asosiy asboblarni cheklash uchun allowlistga xohlagan asosiy asboblar yoki guruhlarni ham kiriting.
40. Misol: Email saralash¶
- Lobster’siz:
42. Foydalanuvchi: "Emailimni tekshir va javoblar qoralamasini tayyorla"
→ openclaw gmail.list ni chaqiradi
→ LLM xulosa qiladi
→ Foydalanuvchi: "#2 va #5 ga javoblar qoralamasini yoz"
→ LLM qoralama yozadi
→ Foydalanuvchi: "#2 ni yubor"
→ openclaw gmail.send ni chaqiradi
(har kuni takrorlanadi, nima saralanganini eslab qolmaydi)
- Lobster bilan:
44. {
"action": "run",
"pipeline": "email.triage --limit 20",
"timeoutMs": 30000
}
- JSON konvertini qaytaradi (qisqartirilgan):
46. {
"ok": true,
"status": "needs_approval",
"output": [{ "summary": "5 need replies, 2 need action" }],
"requiresApproval": {
"type": "approval_request",
"prompt": "Send 2 draft replies?",
"items": [],
"resumeToken": "..."
}
}
- Foydalanuvchi tasdiqlaydi → davom ettirish:
48. {
"action": "resume",
"token": "<resumeToken>",
"approve": true
}
- Bitta ish jarayoni. 50. Deterministik. 1. Xavfsiz.
2. Asbob parametrlari¶
3. run¶
- Asbob rejimida pipeline-ni ishga tushiring.
5. {
"action": "run",
"pipeline": "gog.gmail.search --query 'newer_than:1d' | email.triage",
"cwd": "/path/to/workspace",
"timeoutMs": 30000,
"maxStdoutBytes": 512000
}
- Argumentlar bilan workflow faylini ishga tushiring:
7. {
"action": "run",
"pipeline": "/path/to/inbox-triage.lobster",
"argsJson": "{\"tag\":\"family\"}"
}
8. resume¶
- Tasdiqlangandan so‘ng to‘xtatilgan workflow-ni davom ettiring.
10. {
"action": "resume",
"token": "<resumeToken>",
"approve": true
}
11. Ixtiyoriy kirishlar¶
-
lobsterPath: Lobster binar faylining mutlaq yo‘li (PATHdan foydalanish uchun qoldiring).
-
cwd: Pipeline uchun ishchi katalog (standart bo‘yicha joriy jarayonning ishchi katalogi).
-
timeoutMs: Agar subprocess bu davomiylikdan oshsa, uni to‘xtatadi (standart: 20000).
-
maxStdoutBytes: Agar stdout bu hajmdan oshsa, subprocess-ni to‘xtatadi (standart: 512000).
-
argsJson:lobster run --args-jsonga uzatiladigan JSON satri (faqat workflow fayllari uchun).
17. Chiqish konverti¶
- Lobster uchta holatdan biri bilan JSON konvertini qaytaradi:
-
ok→ muvaffaqiyatli yakunlandi
-
needs_approval→ pauza qilingan; davom ettirish uchunrequiresApproval.resumeTokentalab qilinadi
-
cancelled→ ochiqchasiga rad etilgan yoki bekor qilingan
- Asbob konvertni ham
content(chiroyli JSON), hamdetails(xom obyekt) da ko‘rsatadi.
23. Tasdiqlar¶
- Agar
requiresApprovalmavjud bo‘lsa, so‘rovni ko‘rib chiqing va qaror qabul qiling:
-
approve: true→ davom ettiring va yon ta’sirlarni davom ettiring
-
approve: false→ bekor qiling va workflow-ni yakunlang
- Maxsus jq/heredoc bog‘lovchisiz tasdiq so‘rovlariga JSON ko‘rinishini biriktirish uchun
approve --preview-from-stdin --limit Ndan foydalaning. 28. Resume tokenlari endi ixcham: Lobster workflow-ni davom ettirish holatini o‘zining state katalogida saqlaydi va kichik token kalitini qaytaradi.
29. OpenProse¶
- OpenProse Lobster bilan yaxshi ishlaydi: ko‘p-agentli tayyorgarlikni boshqarish uchun
/prosedan foydalaning, so‘ng deterministik tasdiqlar uchun Lobster pipeline-ni ishga tushiring. 31. Agar Prose dasturiga Lobster kerak bo‘lsa, sub-agentlar uchuntools.subagents.toolsorqalilobsterasbobiga ruxsat bering. 32. OpenProse ni ko‘ring.
33. Xavfsizlik¶
-
- Faqat mahalliy subprocess — plagin o‘zi tarmoq chaqiruvlarini qilmaydi.
-
- Maxfiy ma’lumotlar yo‘q — Lobster OAuth-ni boshqarmaydi; u buni qiladigan OpenClaw asboblarini chaqiradi.
-
- Sandbox-ga mos — asbob konteksti sandbox qilingan bo‘lsa, o‘chiriladi.
-
- Mustahkamlangan — agar ko‘rsatilsa,
lobsterPathmutlaq bo‘lishi shart; timeout va chiqish cheklovlari majburiy.
- Mustahkamlangan — agar ko‘rsatilsa,
38. Muammolarni bartaraf etish¶
-
lobster subprocess timed out→timeoutMsni oshiring yoki uzun pipeline-ni bo‘ling.
-
lobster output exceeded maxStdoutBytes→maxStdoutBytesni oshiring yoki chiqish hajmini kamaytiring.
-
lobster returned invalid JSON→ pipeline asbob rejimida ishlashini va faqat JSON chop etishini ta’minlang.
-
lobster failed (code …)→ stderr-ni ko‘rish uchun xuddi shu pipeline-ni terminalda ishga tushiring.
43. Batafsil ma’lumot¶
46. Amaliy tadqiqot: hamjamiyat workflow-lari¶
- Bitta ommaviy misol: uchta Markdown omborini (shaxsiy, hamkor, umumiy) boshqaradigan “ikkinchi miya” CLI + Lobster pipeline-lari. 48. CLI statistika, inbox ro‘yxatlari va eskirganlarni skanerlash uchun JSON chiqaradi; Lobster esa bu buyruqlarni
weekly-review,inbox-triage,memory-consolidationvashared-task-synckabi, har biri tasdiqlash darvozalari bilan workflow-larga zanjirlaydi. 49. AI mavjud bo‘lganda hukm chiqarishni (toifalashni) bajaradi va mavjud bo‘lmaganda deterministik qoidalarga tayanadi.