{ "agents": { "defaults": { "workspace": "~/.clawgo/workspace", "model": { "primary": "codex/gpt-5.4", "fallbacks": [ "openai/gpt-5.4", "anthropic/claude-sonnet-4-20250514" ] }, "max_tokens": 8192, "temperature": 0.7, "max_tool_iterations": 20, "heartbeat": { "enabled": true, "every_sec": 1800, "ack_max_chars": 64, "prompt_template": "" }, "context_compaction": { "enabled": true, "mode": "summary", "trigger_messages": 60, "keep_recent_messages": 20, "max_summary_chars": 6000, "max_transcript_chars": 20000 }, "execution": { "run_state_ttl_seconds": 1800, "run_state_max": 500, "tool_parallel_safe_names": ["read_file", "list_files", "find_files", "grep_files", "memory_search", "web_search", "repo_map", "system_info"], "tool_max_parallel_calls": 2 }, "summary_policy": { "marker": "## System Task Summary", "completed_prefix": "- Completed:", "changes_prefix": "- Changes:", "outcome_prefix": "- Outcome:", "completed_title": "Completed Actions", "changes_title": "Change Summaries", "outcomes_title": "Execution Outcomes" } }, "agents": { "main": { "enabled": true, "kind": "agent", "type": "agent", "display_name": "World Mind", "role": "orchestrator", "description": "The world mind that arbitrates events, advances ticks, and responds to users as the game's core intelligence.", "prompt_file": "agents/main/AGENT.md", "memory_namespace": "main", "tools": { "allowlist": ["sessions", "world", "agent_profile", "memory_search", "repo_map"] }, "runtime": { "provider": "codex", "temperature": 0.2, "max_retries": 1, "retry_backoff_ms": 1000, "max_parallel_runs": 4 } }, "innkeeper": { "enabled": true, "kind": "npc", "type": "npc", "display_name": "Innkeeper", "role": "host", "description": "Keeps the tavern running, greets travelers, and passes along rumors.", "persona": "Warm, observant, and quick to notice unusual visitors.", "traits": ["welcoming", "practical", "well-informed"], "faction": "tavern", "home_location": "commons", "default_goals": ["welcome travelers", "share useful rumors", "maintain order"], "perception_scope": 1, "world_tags": ["npc", "host", "rumors"], "prompt_file": "agents/innkeeper/AGENT.md", "memory_namespace": "innkeeper", "tools": { "allowlist": ["sessions", "world", "memory_search"] }, "runtime": { "provider": "openai", "temperature": 0.2, "max_retries": 1, "retry_backoff_ms": 1000, "max_parallel_runs": 2 } }, "scout": { "enabled": true, "kind": "npc", "type": "npc", "display_name": "Scout", "role": "watcher", "description": "Watches nearby routes and returns with sightings and warnings.", "persona": "Alert, terse, and mission-focused.", "traits": ["curious", "fast", "loyal"], "faction": "watch", "home_location": "square", "default_goals": ["patrol nearby paths", "report unusual events", "protect the commons"], "perception_scope": 2, "world_tags": ["npc", "patrol", "watch"], "prompt_file": "agents/scout/AGENT.md", "memory_namespace": "scout", "tools": { "allowlist": ["sessions", "world", "memory_search"] }, "runtime": { "provider": "anthropic", "temperature": 0.1, "max_retries": 1, "retry_backoff_ms": 1000, "max_parallel_runs": 2 } }, "node.edge-dev.main": { "enabled": true, "kind": "agent", "type": "agent", "transport": "node", "node_id": "edge-dev", "parent_agent_id": "main", "display_name": "Edge Dev Main Agent", "role": "remote_main", "memory_namespace": "node.edge-dev.main", "runtime": { "max_retries": 1, "retry_backoff_ms": 1000, "max_parallel_runs": 1 } } } }, "channels": { "inbound_message_id_dedupe_ttl_seconds": 600, "inbound_content_dedupe_window_seconds": 12, "outbound_dedupe_window_seconds": 12, "telegram": { "enabled": false, "token": "YOUR_TELEGRAM_BOT_TOKEN", "streaming": false, "allow_from": ["YOUR_USER_ID"], "allow_chats": [], "enable_groups": true, "require_mention_in_groups": true }, "discord": { "enabled": false, "token": "YOUR_DISCORD_BOT_TOKEN", "allow_from": [] }, "maixcam": { "enabled": false, "host": "0.0.0.0", "port": 18790, "allow_from": [] }, "whatsapp": { "enabled": false, "bridge_url": "ws://localhost:3001", "allow_from": [] }, "feishu": { "enabled": false, "app_id": "", "app_secret": "", "encrypt_key": "", "verification_token": "", "allow_from": [], "allow_chats": [], "enable_groups": true, "require_mention_in_groups": true }, "dingtalk": { "enabled": false, "client_id": "YOUR_CLIENT_ID", "client_secret": "YOUR_CLIENT_SECRET", "allow_from": [] } }, "models": { "providers": { "codex": { "api_base": "https://api.openai.com/v1", "models": ["gpt-5.4"], "responses": { "web_search_enabled": false, "web_search_context_size": "", "file_search_vector_store_ids": [], "file_search_max_num_results": 0, "include": [], "stream_include_usage": false }, "supports_responses_compact": true, "auth": "oauth", "oauth": { "provider": "codex", "credential_file": "~/.clawgo/auth/codex.json", "credential_files": ["~/.clawgo/auth/codex.json"], "callback_port": 1455, "refresh_scan_sec": 600, "refresh_lead_sec": 1800 }, "runtime_persist": true, "runtime_history_file": "~/.clawgo/runtime/providers/codex.json", "runtime_history_max": 24, "timeout_sec": 90 }, "gemini": { "api_base": "https://generativelanguage.googleapis.com/v1beta/openai", "models": ["gemini-2.5-pro"], "responses": { "web_search_enabled": false, "web_search_context_size": "", "file_search_vector_store_ids": [], "file_search_max_num_results": 0, "include": [], "stream_include_usage": false }, "supports_responses_compact": true, "auth": "oauth", "oauth": { "provider": "gemini", "client_secret": "", "credential_files": ["~/.clawgo/auth/gemini.json"], "callback_port": 8085, "refresh_scan_sec": 600, "refresh_lead_sec": 1800 }, "runtime_persist": true, "runtime_history_file": "~/.clawgo/runtime/providers/gemini.json", "runtime_history_max": 24, "timeout_sec": 90 }, "openai": { "api_key": "sk-your-openai-api-key", "api_base": "https://api.openai.com/v1", "models": ["gpt-5.4", "gpt-5.4-mini"], "responses": { "web_search_enabled": false, "web_search_context_size": "", "file_search_vector_store_ids": [], "file_search_max_num_results": 0, "include": [], "stream_include_usage": false }, "supports_responses_compact": true, "timeout_sec": 90 }, "anthropic": { "api_base": "https://api.anthropic.com", "models": ["claude-sonnet-4-20250514"], "responses": { "web_search_enabled": false, "web_search_context_size": "", "file_search_vector_store_ids": [], "file_search_max_num_results": 0, "include": [], "stream_include_usage": false }, "supports_responses_compact": true, "auth": "oauth", "oauth": { "provider": "claude", "credential_files": ["~/.clawgo/auth/claude.json"], "callback_port": 1455, "refresh_scan_sec": 600, "refresh_lead_sec": 1800 }, "runtime_persist": true, "runtime_history_file": "~/.clawgo/runtime/providers/anthropic.json", "runtime_history_max": 24, "timeout_sec": 90 }, "qwen": { "api_base": "https://dashscope.aliyuncs.com/compatible-mode/v1", "models": ["qwen-max"], "responses": { "web_search_enabled": false, "web_search_context_size": "", "file_search_vector_store_ids": [], "file_search_max_num_results": 0, "include": [], "stream_include_usage": false }, "supports_responses_compact": true, "auth": "oauth", "oauth": { "provider": "qwen", "credential_files": ["~/.clawgo/auth/qwen.json"], "refresh_scan_sec": 600, "refresh_lead_sec": 1800 }, "runtime_persist": true, "runtime_history_file": "~/.clawgo/runtime/providers/qwen.json", "runtime_history_max": 24, "timeout_sec": 90 }, "kimi": { "api_base": "https://api.moonshot.cn/v1", "models": ["kimi-k2-0711-preview"], "responses": { "web_search_enabled": false, "web_search_context_size": "", "file_search_vector_store_ids": [], "file_search_max_num_results": 0, "include": [], "stream_include_usage": false }, "supports_responses_compact": true, "auth": "oauth", "oauth": { "provider": "kimi", "credential_files": ["~/.clawgo/auth/kimi.json"], "refresh_scan_sec": 600, "refresh_lead_sec": 1800 }, "runtime_persist": true, "runtime_history_file": "~/.clawgo/runtime/providers/kimi.json", "runtime_history_max": 24, "timeout_sec": 90 } } }, "tools": { "filesystem": {}, "shell": { "enabled": true, "working_dir": "", "timeout": 60000000000, "auto_install_missing": false, "sandbox": { "enabled": false, "image": "alpine:3.20" } }, "web": { "search": { "api_key": "YOUR_BRAVE_API_KEY", "max_results": 5 } }, "mcp": { "enabled": false, "request_timeout_sec": 20, "servers": { "context7": { "enabled": false, "transport": "stdio", "command": "npx", "args": ["-y", "@upstash/context7-mcp"], "env": {}, "permission": "workspace", "working_dir": "tools/context7", "description": "Example MCP server", "package": "@upstash/context7-mcp" } } } }, "gateway": { "host": "0.0.0.0", "port": 18790, "token": "", "nodes": { "p2p": { "enabled": false, "transport": "websocket_tunnel", "stun_servers": [], "ice_servers": [ { "urls": [ "stun:stun.l.google.com:19302" ] } ] } } }, "cron": { "min_sleep_sec": 1, "max_sleep_sec": 30, "retry_backoff_base_sec": 30, "retry_backoff_max_sec": 1800, "max_consecutive_failure_retries": 5, "max_workers": 4 }, "logging": { "enabled": true, "dir": "~/.clawgo/logs", "filename": "clawgo.log", "max_size_mb": 20, "retention_days": 3 }, "sentinel": { "enabled": true, "interval_sec": 60, "auto_heal": true, "notify_channel": "", "notify_chat_id": "", "webhook_url": "" } }