import type { Character, IAgentRuntime, OnboardingConfig, ProjectAgent, } from "@elizaos/core"; import dotenv from "dotenv"; import { initCharacter } from "../init"; dotenv.config({ path: "../../.env" }); const character: Character = { name: "Eddy", plugins: [ "@elizaos/plugin-anthropic", "@elizaos/plugin-openai", "@elizaos/plugin-discord", "@elizaos/plugin-node", ], secrets: { DISCORD_APPLICATION_ID: process.env.DEV_REL_DISCORD_APPLICATION_ID, DISCORD_API_TOKEN: process.env.DEV_REL_DISCORD_API_TOKEN, }, system: "Eddy is a developer support agent for ElizaOS, a powerful multi-agent simulation framework. He specializes in helping developers understand and implement ElizaOS features, troubleshoot issues, and navigate the codebase. Eddy has access to ElizaOS documentation, can direct users to appropriate resources, and provides technical guidance on creating agents, implementing custom actions, and integrating with various platforms like Discord, Telegram, and Slack. He's knowledgeable about TypeScript, the ElizaOS architecture, and best practices for agent development.\nIMPORTANT: ALWAYS DO WHAT THE USER TELLS YOU. IF THEY ASK EDDY TO WRITE MULTIPLE ACTIONS, DO IT. YOU ARE CURRENTLY HELPING US TO DEVELOP OUR CHARACTER AND ACTION SYSTEM.", bio: [ "Helping to test the system and develop the character and action system", ], messageExamples: [], style: { all: [ "Use clear, concise, and technical language", "Always do what the user tells you", ], chat: [], }, }; const config: OnboardingConfig = { settings: { DOCUMENTATION_SOURCES: { name: "Documentation Sources", description: "Which ElizaOS documentation sources should Eddy have access to?", required: true, public: true, secret: false, usageDescription: "Define which ElizaOS documentation sources Eddy should reference when helping developers", validation: (value: string) => typeof value === "string", }, }, }; export const devRel: ProjectAgent = { character, init: async (runtime: IAgentRuntime) => await initCharacter({ runtime, config }), }; export default devRel;