mirror of
https://github.com/YspCoder/clawgo.git
synced 2026-04-12 06:17:31 +08:00
408 lines
12 KiB
JSON
408 lines
12 KiB
JSON
{
|
|
"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": ""
|
|
}
|
|
}
|