feat(openclaw): 24 agents across 12 WhatsApp groups - #821
Conversation
|
You do not have enough credits to review this pull request. Please purchase more credits to continue. |
- Code Review: 9 broadcast agents (Opus, Sonnet, GLM, GPT Codex, Gemini + formatter, security, testing, docs) - Twitter: 2 broadcast (Gemini + Opus) - Dev: 2 broadcast (Opus + GPT Codex) - Strategy: 3 broadcast (Opus + GPT + Gemini) - CI/CD: GLM (single) - Sales: GPT 5.2 (single) - Mindset: Opus (single) - Routine: Sonnet (single) - Product: Gemini Pro (single) - Communication: Sonnet (single) - DevOps: GLM (single) - Add __WORKSPACE__ placeholder for openclaw agent workspaces - Add bindings for single-agent groups - Add mediaMaxMb and debounceMs to WhatsApp channel config
📝 WalkthroughWalkthroughAdds a WORKSPACE variable to the OpenClaw hydration script and replaces WORKSPACE in generated configs; updates template files to use WORKSPACE and adds many new agents, WhatsApp bindings, broadcast mappings, and message settings (mediaMaxMb, debounceMs). Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary of ChangesHello @shunkakinoki, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly scales up the multi-agent system by integrating a diverse set of specialized agents with dedicated WhatsApp groups. The changes streamline agent deployment and management through a new workspace placeholder, while also improving the robustness of WhatsApp communication channels. The overall impact is a more organized and functional multi-agent architecture capable of handling a wider range of tasks across various domains. Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
Mesa DescriptionTL;DRConfigured 24 specialized agents and mapped them to 12 WhatsApp groups, including broadcast clusters for code review, dev, Twitter, and strategy. Added workspace templating and tuned WhatsApp for larger media and smoother delivery. What changed?
Description generated by Mesa. Update settings |
There was a problem hiding this comment.
Code Review
This pull request expands multi-agent capabilities by adding 24 agents across 12 WhatsApp groups, primarily through configuration file changes and the introduction of a new __WORKSPACE__ variable in the hydration script. A critical security vulnerability has been identified due to the use of unvalidated environment variables in sed command strings for configuration hydration, which can lead to command injection or configuration manipulation. Additionally, the script generates configuration files containing secrets without explicitly setting restrictive file permissions, posing a risk of sensitive information leakage. Beyond security, areas for improvement include the portability of the hydration script and a potential reliability issue in the WhatsApp channel configuration.
| -e "s|__WHATSAPP_ALLOW_FROM__|${WHATSAPP_ALLOW_FROM}|g" \ | ||
| -e "s|__GATEWAY_TOKEN__|${GATEWAY_TOKEN}|g" \ | ||
| -e "s|__CHROMIUM_PATH__|${CHROMIUM_PATH}|g" \ | ||
| -e "s|__WORKSPACE__|${WORKSPACE}|g" \ |
There was a problem hiding this comment.
The variable ${WORKSPACE} is expanded directly into the sed command string using | as a delimiter. If the variable contains the delimiter character |, it will break the sed command structure. Furthermore, if GNU sed is used, an attacker could potentially use the e flag to execute arbitrary shell commands (e.g., by setting HOME to a value containing |id|e). While WORKSPACE is currently derived from HOME, this pattern of using unvalidated input in sed is insecure and should be avoided, especially as it is also applied to sensitive variables like API keys and tokens in the same command. Consider escaping the variables or using a more robust templating method like jq for JSON files.
| ANTHROPIC_API_KEY="${OPENCLAW_ANTHROPIC_API_KEY:-${ANTHROPIC_API_KEY:-$(read_secret "${SECRETS_DIR}/anthropic-key")}}" | ||
| CHROMIUM_PATH="@chromium@/bin/chromium" | ||
|
|
||
| WORKSPACE="${HOME}/ghq/github.com/shunkakinoki/openclaw" |
There was a problem hiding this comment.
The WORKSPACE variable is assigned a hardcoded path. This reduces the script's portability and makes it difficult for other developers or deployment environments to use it without modification. It's best practice to allow configuration via environment variables, following the pattern used for other variables like OPENCLAW_STATE_DIR in this script.
| WORKSPACE="${HOME}/ghq/github.com/shunkakinoki/openclaw" | |
| WORKSPACE="${OPENCLAW_WORKSPACE:-${HOME}/ghq/github.com/shunkakinoki/openclaw}" |
| "group": "mentions" | ||
| } | ||
| }, | ||
| "debounceMs": 0 |
There was a problem hiding this comment.
Setting debounceMs to 0 disables message debouncing. This can lead to a high volume of agent invocations if a user sends multiple messages in rapid succession (e.g., splitting a thought into several messages). This could result in inefficient processing, quicker consumption of API rate limits, and potential system strain. Consider using a small debounce value (e.g., 250-500ms) to group such messages, which generally improves robustness and user experience.
| "debounceMs": 0 | |
| "debounceMs": 250 |
| "group": "mentions" | ||
| } | ||
| }, | ||
| "debounceMs": 0 |
There was a problem hiding this comment.
Setting debounceMs to 0 disables message debouncing. This can lead to a high volume of agent invocations if a user sends multiple messages in rapid succession (e.g., splitting a thought into several messages). This could result in inefficient processing, quicker consumption of API rate limits, and potential system strain. Consider using a small debounce value (e.g., 250-500ms) to group such messages, which generally improves robustness and user experience.
| "debounceMs": 0 | |
| "debounceMs": 250 |
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
config/openclaw/openclaw.template.json (1)
203-281:⚠️ Potential issue | 🟠 MajorShared workspace for parallel broadcast agents may cause conflicts.
All five
code-reviewer-*agents pluscode-formatter,security-scanner,test-coverage, anddocs-checkeruse overlapping or nearby workspace paths under__WORKSPACE__/agents/, and the broadcast strategy is"parallel"(Line 658). The same pattern applies totwitter-*(Line 379/396),dev-*(Line 447/466), andstrategy-*(Line 502/519/536) agents that share the exact same workspace path within their respective broadcast groups.If these agents perform any file I/O in their workspace concurrently (e.g., cloning repos, writing temp files), they will race on the same directory. Consider giving each agent its own workspace subdirectory (e.g.,
__WORKSPACE__/agents/code-review/opus) or confirm that the runtime isolates workspace access per agent instance.
🧹 Nitpick comments (2)
config/openclaw/openclaw.template.json (2)
343-358:cicd-fixeranddevopshave full tool permissions (read,write,edit,exec) on a lower-capability model.These agents use
glm-4.7as primary with no fallback (forcicd-fixer) or no fallback (fordevops), yet are granted the broadest tool permissions. A less capable model with unrestricted write+exec access increases the risk of unintended modifications. This is a deliberate trade-off, but worth noting — consider whethereditandwriteare both needed, or if guardrails (confirmation prompts, dry-run modes) are in place upstream.
733-739: New WhatsApp channel settings look intentional.
mediaMaxMb: 50anddebounceMs: 0are additive. SettingdebounceMsto0disables debouncing entirely — with broadcast groups containing up to 9 parallel agents, the group will receive a burst of near-simultaneous replies. If that's the desired UX, this is fine; otherwise a small debounce (e.g., 500–1000ms) could space out responses.
There was a problem hiding this comment.
Pull request overview
This pull request implements a comprehensive multi-agent system for OpenClaw with 24 AI agents distributed across 12 WhatsApp groups. The configuration enables specialized agents for different functions (code review, CI/CD, sales, Twitter management, etc.) using various AI models including Claude Opus, GPT 5.2/5.3 Codex, Gemini 3 Pro, GLM 4.7, and Claude Sonnet.
Changes:
- Added 14 new specialized agents with role-appropriate tool permissions (read/write/edit/exec)
- Updated all agent workspace paths from
__HOME__to__WORKSPACE__placeholder for consistent path management - Configured 7 single-agent bindings and 4 broadcast groups (with 2-9 agents each) across WhatsApp groups
- Enhanced WhatsApp channel configuration with 50MB media limit and zero-debounce messaging
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| config/openclaw/openclaw.tpl.json | Added 14 new agent definitions with model placeholders, workspace path updates, 7 bindings, 4 broadcast groups, and WhatsApp settings |
| config/openclaw/openclaw.template.json | Parallel changes to tpl.json with concrete model names/versions instead of placeholders |
| config/openclaw/hydrate.sh | Added WORKSPACE variable definition and sed substitution pattern to support the new workspace placeholder |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Summary
Multi-agent setup with dedicated WhatsApp groups for different functions.
Groups & Agents
maincicd-fixersalesmindsetroutineproductcommunicationdevopsChanges
openclaw.tpl.json/openclaw.template.json: 24 agents, 7 bindings, 4 broadcast groupshydrate.sh: Add__WORKSPACE__placeholder →~/ghq/github.com/shunkakinoki/openclawmediaMaxMb: 50,debounceMs: 0Summary by cubic
Configured 24 specialized agents across 12 WhatsApp groups with improved media handling. Switched Kyber remote sessions from zellij to tmux for desktop and mobile.
New Features
Migration
Written for commit c87948f. Summary will update on new commits.