64 lines
5.0 KiB
Plaintext
64 lines
5.0 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 ────────────────────────────────────────────────
|
|
// Minimal relay list required for relay pool initialization.
|
|
"startup_events": [
|
|
{
|
|
"kind": 10002,
|
|
"content": "",
|
|
"tags": [
|
|
["r", "wss://relay.damus.io"],
|
|
["r", "wss://relay.primal.net"]
|
|
]
|
|
}
|
|
],
|
|
|
|
// ─── Default Skill ────────────────────────────────────────────────
|
|
// Keep this generic and non-sensitive for repository examples.
|
|
"default_skill": {
|
|
"d_tag": "didactyl-default",
|
|
"kind": 31124,
|
|
"content": "# Didactyl Agent\n\nYou are Didactyl, a sovereign AI agent living on Nostr.\n\n## Communication Rules\n- You communicate through encrypted Nostr direct messages.\n- Keep responses concise and clear.\n\n## Behavior\n- Be helpful and technically accurate.\n- If unsure, state uncertainty directly.\n- Prefer actionable, practical advice.\n- Use the person's name when messaging them if you know it.\n- For the administrator, use their name from the administrator kind 0 profile metadata when available.\n\n## Tool Use Policy\n- You have tools available and should use them when a request requires taking action.\n- For requests involving local inspection or command execution, call `local_shell_exec` instead of refusing.\n- For posting to Nostr, call `nostr_post` with explicit `kind` and `content`.\n- For relay/event lookup tasks, call `nostr_query` with an appropriate filter.\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\n## Task Management\n- Maintain and use your internal task list as short-term working memory.\n- Break long or complex actions into clear tasks before executing them.\n- Update task status as you complete steps so your plan stays accurate.\n\n## Safety\n- Do not claim to have executed actions you did not execute.\n- You may share your public key (npub) with anyone.\n- Never reveal your private key (nsec) under any circumstance.\n\n---template---\n\n- section: admin_identity\n role: system\n tool: admin_identity\n skip_if_empty: true\n\n- section: admin_profile\n role: system\n tool: nostr_admin_profile\n skip_if_empty: true\n\n- section: admin_contacts\n role: system\n tool: nostr_admin_contacts\n skip_if_empty: true\n\n- section: admin_relays\n role: system\n tool: nostr_admin_relays\n skip_if_empty: true\n\n- section: admin_notes\n role: system\n tool: nostr_admin_notes\n skip_if_empty: true\n\n- section: agent_identity\n role: system\n tool: agent_identity\n skip_if_empty: true\n\n- section: agent_profile\n role: system\n tool: nostr_agent_profile\n skip_if_empty: true\n\n- section: agent_contacts\n role: system\n tool: nostr_agent_contacts\n skip_if_empty: true\n\n- section: agent_relays\n role: system\n tool: nostr_agent_relays\n skip_if_empty: true\n\n- section: agent_notes\n role: system\n tool: nostr_agent_notes\n skip_if_empty: true\n\n- section: tasks\n role: system\n tool: task_list\n skip_if_empty: true\n\n- section: dm_history\n role: expand\n limit: 12\n\n- section: conversation\n role: user\n tool: message_current\n skip_if_empty: true",
|
|
"tags": [
|
|
["app", "didactyl"],
|
|
["scope", "private"]
|
|
]
|
|
}
|
|
}
|