XMTP agent basics

SkillCommunication

Core XMTP Agent SDK setup and patterns. Use when creating new agents, handling messages, setting up middleware, or configuring environment variables. Triggers on agent setup, XMTP configuration, message handling, or middleware implementation.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the XMTP agent basics skill

What this skill tells your AI

The instructions your AI receives, as published by xmtplabs/xmtp-agent-examples in skills/building-agents/SKILL.md and read by ahel’s review.

Build event-driven, middleware-powered messaging agents on the XMTP network using the @xmtp/agent-sdk.

When to apply

Reference these guidelines when:

  • Creating a new XMTP agent
  • Setting up environment variables
  • Handling text messages and events
  • Implementing middleware
  • Using filters and context helpers

Rule categories by priority

PriorityCategoryImpactPrefix
1SetupCRITICALsetup-
2EventsHIGHevents-
3MiddlewareMEDIUMmiddleware-
4FiltersMEDIUMfilters-

Quick reference

Setup (CRITICAL)

  • setup-environment - Configure environment variables for agent
  • setup-from-env - Create agent using Agent.createFromEnv()
  • setup-manual - Manual agent creation with signer

Events (HIGH)

  • events-text - Handle text messages
  • events-lifecycle - Handle start/stop events
  • events-conversation - Handle new DM and group conversations
  • events-message-types - Handle different message types (reaction, reply, attachment)

Middleware (MEDIUM)

  • middleware-basics - Create and register middleware
  • middleware-error-handling - Handle errors in middleware chain
  • middleware-command-router - Use CommandRouter for slash commands

Filters (MEDIUM)

  • filters-message-types - Filter by message type
  • filters-sender - Filter out self-messages

Installation

npm install @xmtp/agent-sdk
# or
yarn add @xmtp/agent-sdk

SDK 2.0+ uses unified exports: import everything from @xmtp/agent-sdk (no /debug, /middleware, /user, /util subpaths).

Quick start

import { Agent, getTestUrl } from "@xmtp/agent-sdk";

// Create agent using environment variables
const agent = await Agent.createFromEnv();

// Handle text messages
agent.on("text", async (ctx) => {
  await ctx.conversation.sendText("Hello from my XMTP Agent!");
});

// Log when ready
agent.on("start", () => {
  console.log(`Agent online: ${getTestUrl(agent.client)}`);
});

await agent.start();

Environment variables

VariablePurposeExample
XMTP_WALLET_KEYPrivate key for wallet0x1234...abcd
XMTP_DB_ENCRYPTION_KEYDatabase encryption key0xabcd...1234
XMTP_ENVNetwork environmentdev or production
XMTP_DB_DIRECTORYDatabase directory./data

How to use

Read individual rule files for detailed explanations:

rules/setup-environment.md
rules/events-text.md
rules/middleware-basics.md

Signals

GitHub stars
54
Forks
23
Last commit
Feb 2026

ahel review

  • K1binfo
    installs-packages

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Catalog kind
skill
Gateway key
building-agents-xmtplabs
Source
github.com/xmtplabs/xmtp-agent-examples