{ // SAFE EXAMPLE ONLY // Do not commit real secrets (nsec, API keys, private relays, or private admin data). // ─── Agent Identity Key ───────────────────────────────────────────── // Use your real Nostr nsec locally in genesis.jsonc (gitignored). "key": { "nsec": "nsec1REPLACE_WITH_YOUR_AGENT_NSEC" }, // ─── Administrator ────────────────────────────────────────────────── // Admin pubkey may be npub or hex. "admin": { "pubkey": "npub1REPLACE_WITH_ADMIN_PUBKEY" }, // ─── DM Protocol ─────────────────────────────────────────────────── // Supported values: "nip04", "nip17", or "both". "dm_protocol": "nip04", // ─── LLM Provider ────────────────────────────────────────────────── // OpenAI-compatible endpoint settings. "llm": { "provider": "openai", "api_key": "sk-REPLACE_WITH_API_KEY", "model": "gpt-4o-mini", "base_url": "https://api.openai.com/v1", "max_tokens": 512, "temperature": 0.7 }, // ─── HTTP Admin API ──────────────────────────────────────────────── "api": { "enabled": true, "port": 8484, "bind_address": "127.0.0.1" }, // ─── Startup Events ──────────────────────────────────────────────── "startup_events": [ { "kind": 0, "content_fields": { "name": "Didactyl", "about": "I am a Didactyl agent living on Nostr" }, "tags": [] }, { "kind": 3, "content": "", "tags": [ ["p", "ADMIN_HEX_PUBKEY"] ] }, { "kind": 10002, "content": "", "tags": [ ["r", "wss://relay.damus.io"], ["r", "wss://relay.primal.net"] ] } }, { "kind": 31124, "content": "# Didactyl Agent\n\nYou are {{my_kind0_profile}}\n\nYour npub: {{my_npub}}\n\n## Rules\n\n- Communicate through encrypted Nostr direct messages\n- Keep responses concise and clear\n- Be helpful and technically accurate\n- If unsure, state uncertainty directly\n- Use tools when a request requires taking action\n- After a tool call, base your answer on the actual tool result\n- Never claim a tool was run if no tool was executed\n- Maintain your task list as short-term working memory\n- Never reveal your private key (nsec)\n- You may share your public key (npub) with anyone", "tags": [ ["d", "identity_and_rules"], ["app", "didactyl"], ["scope", "private"], ["description", "Agent identity and behavioral rules"], ["trigger", "dm"], ["filter", "{\"from\":\"admin\"}"] ] }, { "kind": 31124, "content": "## Recent Conversation\n\n{{nostr_dm_history({\"format\":\"text\",\"limit\":12})}}", "tags": [ ["d", "dm_history"], ["app", "didactyl"], ["scope", "private"], ["description", "DM conversation history for context continuity"], ["trigger", "dm"], ["filter", "{\"from\":\"admin\"}"] ] } ] }