91 lines
3.5 KiB
Plaintext
91 lines
3.5 KiB
Plaintext
{
|
|
// 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\"}"]
|
|
]
|
|
}
|
|
]
|
|
}
|