Loading skill
Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Expert ElizaOS plugin and agent development (January 2026). Use when (1) Building ElizaOS plugins, (2) Creating AI agent characters, (3) Implementing actions, providers, evaluators, (4) Integrating with AgentRuntime, (5) Building platform clients (Discord, Telegram), (6) Testing plugins, or any ElizaOS architecture questions.
.claude/skills/majiayu000-elizaos-expert-2026/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | 9% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 43% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 62% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 174% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 33% | 0% |
ElizaOS is a framework for building AI agents with:
Version: 1.7.0+ GhostSpeak Plugin: @ghostspeak/plugin-elizaos
typescriptimport { Plugin } from "@elizaos/core"; const myPlugin: Plugin = { name: "my-plugin", description: "My custom plugin", actions: [myAction], providers: [myProvider], evaluators: [myEvaluator], services: [myService], }; export default myPlugin;
typescriptimport { Action, HandlerCallback } from "@elizaos/core"; export const myAction: Action = { name: "MY_ACTION", similes: ["DO_THING", "PERFORM_ACTION"], description: "Does something useful", validate: async (runtime, message) => { // Return true if action should be triggered return message.content.text.includes("do thing"); }, handler: async (runtime, message, state, options, callback) => { // Perform action const result = await doSomething(); // Send response if (callback) { await callback({ text: `Done! Result: ${result}`, }); } return true; }, examples: [ [ { user: "{{user1}}", content: { text: "Please do the thing" }, }, { user: "{{agentName}}", content: { text: "I'll do that right away!" }, }, ], ], };
typescriptimport { Provider } from "@elizaos/core"; export const myProvider: Provider = { get: async (runtime, message, state) => { // Fetch data const data = await fetchSomeData(); // Return context to inject into prompts return `Relevant data: ${JSON.stringify(data)}`; }, };
typescriptimport { Character } from "@elizaos/core"; export const caisperCharacter: Character = { name: "Caisper", username: "caisper", bio: [ "A friendly ghost AI that helps users navigate the GhostSpeak platform", "Expert in Solana, verifiable credentials, and reputation systems", ], lore: [ "Born from the blockchain mists", "Guardian of agent reputations", ], messageExamples: [ [ { user: "{{user1}}", content: { text: "What's my Ghost Score?" }, }, { user: "Caisper", content: { text: "Let me check your reputation on-chain... Your Ghost Score is 750! That's pretty good!", }, }, ], ], postExamples: [], topics: ["solana", "blockchain", "reputation", "ai-agents"], adjectives: ["friendly", "helpful", "knowledgeable", "ethereal"], style: { all: ["Be friendly and helpful", "Use ghost emoji occasionally ={"], chat: ["Keep responses concise", "Be conversational"], post: ["Share insights about Web3 and AI"], }, plugins: ["@ghostspeak/plugin-elizaos"], };
typescriptimport { GhostSpeakClient } from "@ghostspeak/sdk"; export const checkReputationAction: Action = { name: "CHECK_REPUTATION", handler: async (runtime, message, state) => { // Initialize SDK const client = new GhostSpeakClient({ cluster: "devnet", }); // Get user's wallet address from message const walletAddress = extractWalletAddress(message); // Fetch reputation const agent = await client.agents.getByOwner(walletAddress); return { text: `Your Ghost Score is ${agent.ghostScore}!`, }; }, };
typescript// apps/web/lib/telegram/adapter.ts import { TelegramClient } from "@elizaos/client-telegram"; import { AgentRuntime } from "@elizaos/core"; export async function setupTelegramBot(runtime: AgentRuntime) { const client = new TelegramClient( runtime, process.env.TELEGRAM_BOT_TOKEN! ); await client.start(); }
typescriptimport { describe, test, expect } from "bun:test"; import { AgentRuntime } from "@elizaos/core"; describe("My Plugin", () => { test("action triggers correctly", async () => { const runtime = new AgentRuntime({ token: "test", character: testCharacter, }); const result = await myAction.validate(runtime, testMessage); expect(result).toBe(true); }); });
bash# Install ElizaOS pnpm add @elizaos/core @elizaos/client-telegram # Create plugin mkdir packages/plugin-my-plugin cd packages/plugin-my-plugin pnpm init # Build plugin pnpm build # Test plugin pnpm test # Use in agent import myPlugin from "@my-org/plugin-my-plugin"; const runtime = new AgentRuntime({ plugins: [myPlugin], });
/pluginskill slash commandpackages/plugin-ghostspeak/apps/web/server/elizaos/characters/caisper.tsOther measured skills in the registry, with their headline benchmark lift.