Agent SkillsEverClaw/EverClaw › agent-chat

agent-chat

GitHub

EverClaw的XMTP实时加密消息守护进程,支持Agent间及用户与Agent通信。提供身份管理、系统服务部署(launchd/systemd)、IPC桥接及故障排查功能。

skills/agent-chat/SKILL.md EverClaw/EverClaw

Trigger Scenarios

设置 XMTP 消息通道 管理 Agent 身份 配置 Buddy Bot 调试消息投递问题 控制 agent-chat 守护进程生命周期

Install

npx skills add EverClaw/EverClaw --skill agent-chat -g -y
More Options

Use without installing

npx skills use EverClaw/EverClaw@agent-chat

指定 Agent (Claude Code)

npx skills add EverClaw/EverClaw --skill agent-chat -a claude-code -g -y

安装 repo 全部 skill

npx skills add EverClaw/EverClaw --all -g -y

预览 repo 内 skill

npx skills add EverClaw/EverClaw --list

SKILL.md

Frontmatter
{
    "name": "agent-chat",
    "description": "XMTP real-time agent-to-agent and user-to-agent encrypted messaging daemon for EverClaw. Manages always-on messaging via XMTP MLS protocol with multi-identity buddy bot support, filesystem-based IPC bridge, consent policies, and cross-platform daemon lifecycle (launchd\/systemd). Use when setting up XMTP messaging, managing agent identities, configuring buddy bots, troubleshooting message delivery, or controlling the agent-chat daemon."
}

agent-chat

XMTP real-time agent-to-agent and user-to-agent messaging for EverClaw.

Overview

Always-on daemon providing E2E-encrypted messaging via XMTP's MLS protocol. Runs as a separate process managed by launchd (macOS) or systemd (Linux), communicating with OpenClaw through a filesystem bridge.

Version

0.2.0

Dependencies

  • @xmtp/agent-sdk ^2.3.0
  • xmtp-comms-guard ^6.0.0 (peer)
  • Node.js >= 20.0.0

Quick Start

# 1. Generate XMTP identity (one-time)
node skills/agent-chat/setup-identity.mjs

# 2. Install daemon as system service
bash scripts/setup-agent-chat.sh

# 3. Check status
bash scripts/setup-agent-chat.sh --status

Daemon Management

The setup-agent-chat.sh script installs the XMTP daemon as a persistent system service.

Commands

# Install and start daemon (auto-detects OS)
bash scripts/setup-agent-chat.sh

# Check daemon status
bash scripts/setup-agent-chat.sh --status

# View recent logs
bash scripts/setup-agent-chat.sh --logs

# Restart daemon
bash scripts/setup-agent-chat.sh --restart

# Uninstall daemon
bash scripts/setup-agent-chat.sh --uninstall

# Install without starting
bash scripts/setup-agent-chat.sh --skip-start

Platform Support

Platform Service Manager Location Logs
macOS launchd ~/Library/LaunchAgents/com.everclaw.agent-chat.plist ~/.everclaw/logs/agent-chat.*
Linux systemd (user) ~/.config/systemd/user/everclaw-agent-chat.service journalctl --user -u everclaw-agent-chat

Note: Linux uses user-level systemd (no sudo required). All services run as your user account.

Manual Commands

macOS (launchd):

# Check if loaded
launchctl list | grep everclaw

# View logs
tail -f ~/.everclaw/logs/agent-chat.log

# Stop/start
launchctl bootout gui/$(id -u)/com.everclaw.agent-chat
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.everclaw.agent-chat.plist

Linux (systemd):

# Check status
systemctl --user status everclaw-agent-chat

# View logs
journalctl --user -u everclaw-agent-chat -f

# Stop/start
systemctl --user stop everclaw-agent-chat
systemctl --user start everclaw-agent-chat

Architecture

  • Process model: Separate always-on daemon (not in-process with OpenClaw)
  • IPC: Filesystem bridge (~/.everclaw/xmtp/outbox/inbox/)
  • Message format: V6 JSON inside XMTP text content type
  • Consent: Configurable per-agent (open/handshake/strict)
  • Middleware chain: Consent → CommsGuard V6 → Router

Identity Model

Two-tier:

  • 28 flavor canonical wallets — project-controlled, open consent
  • Per-user wallets — generated at install, handshake consent

XMTP wallet is messaging-only — no funds. Separate from MOR staking wallet.

CLI Reference

# Identity status
node skills/agent-chat/cli.mjs status

# Daemon health
node skills/agent-chat/cli.mjs health

# List peer groups
node skills/agent-chat/cli.mjs groups

# Trust a peer (allow messages)
node skills/agent-chat/cli.mjs trust-peer 0x... --as colleague --name "Agent Name"

# List trusted peers
node skills/agent-chat/cli.mjs peers list

# Send a message (via outbox)
node skills/agent-chat/cli.mjs send 0x... "Hello, agent!"

Files

File Purpose
daemon.mjs Entry point for launchd/systemd
cli.mjs CLI commands
setup-identity.mjs One-time key generation
src/agent.mjs Agent creation + middleware wiring
src/identity.mjs Secret/identity loading (multi-identity: agentId param)
src/paths.mjs Path resolution + agent ID validation (multi-identity)
src/consent.mjs 3-policy consent gate
src/router.mjs Message routing (COMMAND/DATA dispatch)
src/bridge.mjs Filesystem outbox watcher (multi-identity: agentId param)
src/health.mjs Health file writer (multi-identity: agentId param)
src/health.mjs Health file writer
src/groups.mjs Group conversation mapping
src/payer.mjs Fee stub (network currently free)
src/index.mjs Public API re-exports

Multi-Identity (Buddy Bots)

Each buddy bot agent gets its own XMTP identity, daemon process, and data directory. This is called "multi-identity" mode — one daemon per agent, running as independent services.

Directory Layout

Agent Data Directory Service (macOS) Service (Linux)
Host (default) ~/.everclaw/xmtp/ com.everclaw.agent-chat everclaw-agent-chat
Alice ~/.everclaw/xmtp-alice/ com.everclaw.agent-chat.alice everclaw-agent-chat-alice
Bob ~/.everclaw/xmtp-bob/ com.everclaw.agent-chat.bob everclaw-agent-chat-bob

Each agent's directory contains its own .secrets.json, identity.json, inbox/, outbox/, and peers.json — fully isolated from other agents.

Agent ID Rules

Agent IDs must be:

  • 1-63 characters
  • Lowercase alphanumeric + hyphens only
  • Must start with a letter or digit (no leading hyphens)
  • No path traversal characters (.., /, etc.)

This prevents directory traversal attacks and service name conflicts.

Setup

# Generate identity for a buddy bot
node skills/agent-chat/setup-identity.mjs --agent-id alice

# Install daemon for that buddy bot
bash scripts/setup-agent-chat.sh --agent-id alice

# List all installed daemons
bash scripts/setup-agent-chat.sh --list

# Check status of a specific agent
bash scripts/setup-agent-chat.sh --status --agent-id alice

# Restart a specific agent
bash scripts/setup-agent-chat.sh --restart --agent-id alice

# Uninstall a specific agent
bash scripts/setup-agent-chat.sh --uninstall --agent-id alice

Environment Variables

Variable Purpose
AGENT_CHAT_AGENT_ID Agent ID (alternative to --agent-id flag)
AGENT_CHAT_XMTP_DIR Override XMTP data directory (default agent only)
EVERCLAW_HOME Base directory (default: ~/.everclaw)

AGENT_CHAT_XMTP_DIR only affects the default (host) agent. Per-agent paths always resolve from EVERCLAW_HOME to maintain isolation.

How It Works

Each per-agent service file (launchd plist or systemd unit) contains the AGENT_CHAT_AGENT_ID environment variable. When the daemon starts, it reads this env var and resolves all paths accordingly:

  1. AGENT_CHAT_AGENT_ID=alice → data dir is ~/.everclaw/xmtp-alice/
  2. No env var → data dir is ~/.everclaw/xmtp/ (default host)

The --agent-id CLI flag takes priority over the env var, allowing manual overrides.

Security

  • Each agent's data directory is chmod 700
  • Each agent's .secrets.json is chmod 600
  • Agent IDs are validated against a strict regex to prevent path traversal and service injection
  • Agents cannot access each other's wallets, messages, or peer lists

Security

  • Keys stored in ~/.everclaw/xmtp/.secrets.json (chmod 600)
  • Directory secured: ~/.everclaw/xmtp/ (chmod 700)
  • Path traversal protection on inbox writes
  • Agent ID validation: regex /^[a-z0-9][a-z0-9-]{0,62}$/ prevents directory traversal and service injection
  • CommsGuard V6 validates all structured messages
  • Plain text messages bypass comms-guard (acceptable for agent-to-agent v1)

Troubleshooting

Daemon won't start

  1. Check Node.js version: node --version (need >= 20.0.0)
  2. Verify identity exists: ls ~/.everclaw/xmtp/.secrets.json
  3. Check logs: bash scripts/setup-agent-chat.sh --logs
  4. Reinstall: bash scripts/setup-agent-chat.sh --uninstall && bash scripts/setup-agent-chat.sh

Messages not sending

  1. Check peer is trusted: node skills/agent-chat/cli.mjs peers list
  2. Check daemon health: node skills/agent-chat/cli.mjs health
  3. Check outbox queue: ls ~/.everclaw/xmtp/outbox/
  4. Check daemon is running: bash scripts/setup-agent-chat.sh --status

XMTP installation limit

XMTP limits the number of installations per identity. If you see warnings about installation limits:

  1. Check installations: node skills/agent-chat/cli.mjs status
  2. Revoke old installations via XMTP console (if available)
  3. Generate new identity: node skills/agent-chat/setup-identity.mjs (creates new address)

Version History

  • f580bc4 Current 2026-07-25 11:17

Same Skill Collection

cron-packs/SKILL.md
flavors/buddybots.org/SKILL.md
memory-upgrade/SKILL.md
mission-control/SKILL.md
skills/night-shift/SKILL.md
skills/relationships/SKILL.md
skills/skillguard/SKILL.md
skills/three-shifts/SKILL.md
skills/xmtp-comms-guard/SKILL.md
three-shifts/SKILL.md
skills/pii-guard/SKILL.md
skills/prompt-guard/SKILL.md
skills/skillguard/test-fixtures/evasive-03-prompt-subtle/SKILL.md
skills/skillguard/test-fixtures/evasive-06-unicode-injection/SKILL.md
skills/skillguard/test-fixtures/evasive-10-roleplay/SKILL.md
skills/skillguard/test-fixtures/legit-api-skill/SKILL.md
skills/skillguard/test-fixtures/malicious-skill/SKILL.md
skills/skillguard/test-fixtures/clean-skill/SKILL.md
skills/skillguard/test-fixtures/evasive-01-string-concat/SKILL.md
skills/skillguard/test-fixtures/evasive-02-encoded/SKILL.md
skills/skillguard/test-fixtures/evasive-04-timebomb/SKILL.md
skills/skillguard/test-fixtures/evasive-05-alias-chain/SKILL.md
skills/skillguard/test-fixtures/evasive-07-sandbox-detect/SKILL.md
skills/skillguard/test-fixtures/evasive-08-reverse-shell/SKILL.md
skills/skillguard/test-fixtures/evasive-09-python-pickle/SKILL.md
skills/skillguard/test-fixtures/evasive-11-polyglot-json/SKILL.md
skills/skillguard/test-fixtures/evasive-12-multi-stage/SKILL.md

Metadata

Files
0
Version
3227fb7
Hash
0d3131ce
Indexed
2026-07-25 11:17

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-21 20:33
浙ICP备14020137号-1 $mapa de visitantes$