---
name: create-agent-with-telegram-group
description: "Create a new OpenClaw agent and bind it to a dedicated Telegram
  group with workspace ~/claw-<agent-name>. Use when the user asks for
  one-agent-one-group setup, Telegram group binding, or repeatable agent
  provisioning. Always ask which model to use, ask for essential initialization
  choices (USER.md/IDENTITY.md/SOUL.md), and set group reply mode to
  no-mention-required. Explicit user confirmation is required before any
  high-privilege actions: modifying openclaw.json, triggering browser
  automation, or restarting the gateway."
---


# Agent Create + Dedicated Telegram Group

Create one dedicated Telegram group per agent, bind the agent to that group, and set an isolated workspace path.

## Script-first Rule

Prefer bundled scripts for deterministic steps (more stable + lower token cost). Only do manual JSON editing when scripts cannot cover a special case.

Use:
- `scripts/provision_config.py` for agent/config/binding/no-mention setup (with automatic backup of `openclaw.json`)
- `scripts/init_workspace.py` for `USER.md` / `IDENTITY.md` / `SOUL.md` initialization

## Access Scope

This skill accesses the following files on the host:
- `~/.openclaw/openclaw.json` — read (model discovery) and write (agent binding)
- `~/.openclaw/cron/jobs.json` — read-only (for job listing if needed)
- `~/claw-<agent-name>/` — workspace directory created by script
- `~/.openclaw/agents/<agent-id>/agent/` — directory created (no auth files copied)

## Config Safety

- `scripts/provision_config.py` reads and writes `~/.openclaw/openclaw.json`.
- By default it creates a backup file: `~/.openclaw/openclaw.json.bak.<timestamp>`.
- It updates only:
  - `agents.list` (add/update target agent) — does NOT copy auth credentials
  - `bindings` (add target telegram group binding)
  - `channels.telegram.groups.<chat_id>.requireMention=false`
  - `gateway.reload.mode` only if missing (sets default `hybrid`)
- The skill does NOT propagate API keys or auth tokens between agents.
- Gateway-level auth is inherited automatically; do not manually copy auth files.

## Inputs

Collect (before executing):
- `agent_name` (required)
- `model` (required): ask user explicitly which model to use; model options must be read live from the user’s `~/.openclaw/openclaw.json` (do not hardcode examples)
- Optional `telegram_group_title` override (custom group name)
- Initialization preferences (required ask):
  - whether to create/update `USER.md`
  - whether to create/update `IDENTITY.md`
  - whether to create/update `SOUL.md`
- If initialization is enabled, collect content fields before writing files:
  - `USER.md`: user name / preferred call name / language / goals / notes
  - `IDENTITY.md`: agent display name / vibe / emoji (optional)
  - `SOUL.md`: role/mission / tone / constraints (short bullet points)

Normalize `agent_name`:
- Keep lowercase letters, digits, and hyphens only.
- Replace spaces/underscores with `-`.
- Use this value in paths and IDs.

Telegram group title rule:
- If user provides `telegram_group_title`, use it directly.
- If not provided, generate default title from agent name in PascalCase.
  - Example: `test-skill` -> `TestSkill`, `bilingual-agent` -> `BilingualAgent`.

## Workflow

1. Read available models from `~/.openclaw/openclaw.json` first, then confirm inputs with user (agent name, model, init-file preferences, optional telegram group title).
2. Build workspace path as `~/claw-<agent-name>` and create it if missing.
3. Resolve group title:
   - custom `telegram_group_title` if provided
   - otherwise PascalCase(agent_name)
4. Create and bind Telegram group (use resolved group title):
   - use browser automation/user-account flow (Telegram bot API cannot reliably create groups)
   - **CONFIRM with user before triggering browser automation** (explicit yes/no required)
   - if browser automation is unavailable, request the minimal manual steps and resume
5. Create/update OpenClaw config via script (preferred):
   - **CONFIRM with user before modifying openclaw.json** (explicit yes/no required)
   - `python3 scripts/provision_config.py --agent-name <agent_name> --model <model> --chat-id <chat_id>`
   - this sets: agent entry, workspace, binding, and `requireMention=false`
6. Apply config and activate it:
   - if hot reload is enabled, verify reload logs show applied changes
   - if reload is off or not applied, **CONFIRM with user before restarting gateway** (explicit yes/no required)
   - restart gateway only after user approval
7. Bootstrap agent runtime files (required for first-run stability):
   - ensure `~/.openclaw/agents/<agent-id>/agent` exists
   - do NOT copy any auth files from other agents (this prevents credential/API key propagation)
   - new agents inherit authentication from the gateway's shared auth context automatically
   - do NOT manually copy or create auth-profiles.json, auth.json, or models.json
8. If initialization is requested, ask user for file content fields first, then write files:
   - collect required values for `USER.md` / `IDENTITY.md` / `SOUL.md`
   - then run: `python3 scripts/init_workspace.py --workspace <workspace> --agent-name <agent_name> [--with-user] [--with-identity] [--with-soul]`
   - if user provided custom text, apply it after script initialization (overwrite placeholders)
9. Ensure routing validity for current schema (no invalid allowFrom entries for groups).
10. Post-provision verification:
   - send a test message in group and ask user to send `ping`
   - confirm agent responds without `@mention`
11. Return completion summary with:
   - agent name
   - model
   - workspace path
   - group title
   - chat_id
   - no-mention reply mode (`enabled`/`disabled`)
   - status and next step (if any)

## Telegram Automation Rules

- Group creation/deletion and member operations should use browser automation (user-account flow).
- For browser flow, prefer Chrome relay profile for existing logged-in Telegram sessions.
- If no connected Chrome tab is available, ask user to attach once, then continue.
- If Telegram shows confirmation/captcha that cannot be automated, request one manual click, then resume.

## OpenClaw Command Discovery

Do not invent OpenClaw commands.

When agent create/update command syntax is unknown:
1. Run `openclaw help`.
2. If needed, run `openclaw <subcommand> --help` for the relevant subcommand.
3. Use only discovered command forms.

## Idempotency

- If `~/claw-<agent-name>` already exists, reuse it.
- If a same-name group already exists, confirm whether to reuse or create a fresh one.
- If agent already exists, update model/binding/workdir instead of duplicating.

## Reliability Checks (must do)

- Verify `requireMention=false` for the bound group.
- Verify gateway config actually applied:
  - check reload mode/status logs (`config hot reload applied`, `restarting telegram channel`)
  - if reload is `off` or not applied, restart gateway and re-check logs.
- Send one bot-originated test message to the new group, then require one live user `ping`.
- Verify agent replies without `@mention`.
- Do not claim success before `ping -> pong` verification passes.

## Failure Handling

If group creation succeeds but binding fails:
- Keep created group.
- Report exact failed step.
- Provide one-command resume instruction for the next run.

If chat_id cannot be resolved automatically:
- Report that as a partial success.
- Provide the shortest fallback step to fetch chat_id, then continue binding.

## Output Template

Return concise status:

- `agent`: <agent-name>
- `model`: <selected-model>
- `workspace`: `~/claw-<agent-name>`
- `telegram_group`: <title>
- `chat_id`: <id or PENDING>
- `binding`: <done|pending>
- `reply_without_mention`: <enabled|disabled>
- `initialized_files`: <USER.md, IDENTITY.md, SOUL.md or subset>
- `verification`: <passed|failed>
- `next_step`: <none or exact minimal action>


---
Source attribution: modbender
Original project: https://github.com/modbender/skill-library-mcp/blob/d9c8fe903b5b4e82237dbe8d0df8567783022e18/data/create-agent-with-telegram-group/SKILL.md
License: MIT
License information: https://opensource.org/license/mit
Original upstream instructions; downloaded from Mega AI Hub.

## Upstream license notice

MIT License

Copyright (c) 2025 skill-library-mcp contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.



# Mega AI Hub resource metadata

Creator / publisher: modbender
Original project: https://github.com/modbender/skill-library-mcp/blob/d9c8fe903b5b4e82237dbe8d0df8567783022e18/data/create-agent-with-telegram-group/SKILL.md
Attribution basis: Source repository record

Fields of work: Marketing, Sales, Customer Support
Roles: Community Manager, Customer Success Manager, Growth Marketer, Sales Development Rep (SDR), Technical Support
Specialties: API
Tools: OpenAI API, Openclaw, Telegram
Country applicability: Country not specified
Classification basis: Source catalog labels
Instruction SHA-256: dc2d910ad10baa1402bd6f14a03cde79be4b24d96275c5e48f22b7ad298e8a16
