Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/anker12138_imiss-deer-flow.json
T
OpenCode 68a9071cf1 feat: reconcile local master with origin (exa/hot-platform hunters, leaks ledger, latest results)
Local branch had diverged from origin/master (sibling commits on the same base). Rewrote local history linearly on top of origin/master, folding in all local content: exa/hot-platform discovery hunters, leaks ledger, nightly sweep orchestrator, updated .gitignore and skill docs, plus the latest hunt output and vault state. Remote-only files (vault keys, channel scripts) were restored rather than dropped, so the resulting tree is a full union of both sides.
2026-08-07 12:53:47 +08:00

1 line
18 KiB
JSON

{"repo": "anker12138/imiss-deer-flow", "files": {"config.example.yaml": {"3b65f9770630dcf51ef9b3347008b9a0b55fe437": {"t": 1786068218.8080363, "n": 17721, "h": "1c5466d042ec28bd", "c": "# Configuration for the DeerFlow application\n#\n# Guidelines:\n# - Copy this file to `config.yaml` and customize it for your environment\n# - The default path of this configuration file is `config.yaml` in the current working directory.\n# However you can change it using the `DEER_FLOW_CONFIG_PATH` environment variable.\n# - Environment variables are available for all field values. Example: `api_key: $OPENAI_API_KEY`\n# - The `use` path is a string that looks like \"package_name.sub_package_name.module_name:class_name/variable_name\".\n\n# ============================================================================\n# Config Version (used to detect outdated config files)\n# ============================================================================\n# Bump this number when the config schema changes.\n# Run `make config-upgrade` to merge new fields into your local config.yaml.\nconfig_version: 1\n\n# ============================================================================\n# Models Configuration\n# ============================================================================\n# Configure available LLM models for the agent to use\n\nmodels:\n # Example: Volcengine (Doubao) model\n # - name: doubao-seed-1.8\n # display_name: Doubao-Seed-1.8\n # use: deerflow.models.patched_deepseek:PatchedChatDeepSeek\n # model: doubao-seed-1-8-251228\n # api_base: https://ark.cn-beijing.volces.com/api/v3\n # api_key: $VOLCENGINE_API_KEY\n # supports_thinking: true\n # supports_vision: true\n # supports_reasoning_effort: true\n # when_thinking_enabled:\n # extra_body:\n # thinking:\n # type: enabled\n\n # Example: OpenAI model\n # - name: gpt-4\n # display_name: GPT-4\n # use: langchain_openai:ChatOpenAI\n # model: gpt-4\n # api_key: $OPENAI_API_KEY # Use environment variable\n # max_tokens: 4096\n # temperature: 0.7\n # supports_vision: true # Enable vision support for view_image tool\n\n # Example: Anthropic Claude model\n # - name: claude-3-5-sonnet\n # display_name: Claude 3.5 Sonnet\n # use: langchain_anthropic:ChatAnthropic\n # model: claude-3-5-sonnet-20241022\n # api_key: $ANTHROPIC_API_KEY\n # max_tokens: 8192\n # supports_vision: true # Enable vision support for view_image tool\n # when_thinking_enabled:\n # thinking:\n # type: enabled\n\n # Example: Google Gemini model\n # - name: gemini-2.5-pro\n # display_name: Gemini 2.5 Pro\n # use: langchain_google_genai:ChatGoogleGenerativeAI\n # model: gemini-2.5-pro\n # google_api_key: $GOOGLE_API_KEY\n # max_tokens: 8192\n # supports_vision: true\n\n # Example: DeepSeek model (with thinking support)\n # - name: deepseek-v3\n # display_name: DeepSeek V3 (Thinking)\n # use: deerflow.models.patched_deepseek:PatchedChatDeepSeek\n # model: deepseek-reasoner\n # api_key: $DEEPSEEK_API_KEY\n # max_tokens: 16384\n # supports_thinking: true\n # supports_vision: false # DeepSeek V3 does not support vision\n # when_thinking_enabled:\n # extra_body:\n # thinking:\n # type: enabled\n\n # Example: Kimi K2.5 model\n # - name: kimi-k2.5\n # display_name: Kimi K2.5\n # use: deerflow.models.patched_deepseek:PatchedChatDeepSeek\n # model: kimi-k2.5\n # api_base: https://api.moonshot.cn/v1\n # api_key: $MOONSHOT_API_KEY\n # max_tokens: 32768\n # supports_thinking: true\n # supports_vision: true # Check your specific model's capabilities\n # when_thinking_enabled:\n # extra_body:\n # thinking:\n # type: enabled\n\n # Example: Novita AI (OpenAI-compatible)\n # Novita provides an OpenAI-compatible API with competitive pricing\n # See: https://novita.ai\n # - name: novita-deepseek-v3.2\n # display_name: Novita DeepSeek V3.2\n # use: langchain_openai:ChatOpenAI\n # model: deepseek/deepseek-v3.2\n # api_key: $NOVITA_API_KEY\n # base_url: https://api.novita.ai/openai\n # max_tokens: 4096\n # temperature: 0.7\n # supports_thinking: true\n # supports_vision: true\n # when_thinking_enabled:\n # extra_body:\n # thinking:\n # type: enabled\n\n # Example: MiniMax (OpenAI-compatible)\n # MiniMax provides high-performance models with 204K context window\n # Docs: https://platform.minimax.io/docs/api-reference/text-openai-api\n # - name: minimax-m2.5\n # display_name: MiniMax M2.5\n # use: langchain_openai:ChatOpenAI\n # model: MiniMax-M2.5\n # api_key: $MINIMAX_API_KEY\n # base_url: https://api.minimax.io/v1\n # max_tokens: 4096\n # temperature: 1.0 # MiniMax requires temperature in (0.0, 1.0]\n # supports_vision: true\n\n # - name: minimax-m2.5-highspeed\n # display_name: MiniMax M2.5 Highspeed\n # use: langchain_openai:ChatOpenAI\n # model: MiniMax-M2.5-highspeed\n # api_key: $MINIMAX_API_KEY\n # base_url: https://api.minimax.io/v1\n # max_tokens: 4096\n # temperature: 1.0 # MiniMax requires temperature in (0.0, 1.0]\n # supports_vision: true\n \n # Example: OpenRouter (OpenAI-compatible)\n # OpenRouter models use the same ChatOpenAI + base_url pattern as other OpenAI-compatible gateways.\n # - name: openrouter-gemini-2.5-flash\n # display_name: Gemini 2.5 Flash (OpenRouter)\n # use: langchain_openai:ChatOpenAI\n # model: google/gemini-2.5-flash-preview\n # api_key: $OPENAI_API_KEY\n # base_url: https://openrouter.ai/api/v1\n # max_tokens: 8192\n # temperature: 0.7\n\n# ============================================================================\n# Tool Groups Configuration\n# ============================================================================\n# Define groups of tools for organization and access control\n\ntool_groups:\n - name: web\n - name: file:read\n - name: file:write\n - name: bash\n\n# ============================================================================\n# Tools Configuration\n# ============================================================================\n# Configure available tools for the agent to use\n\ntools:\n # Web search tool (requires Tavily API key)\n - name: web_search\n group: web\n use: deerflow.community.tavily.tools:web_search_tool\n max_results: 5\n # api_key: $TAVILY_API_KEY # Set if needed\n\n # Web search tool (requires InfoQuest API key)\n # - name: web_search\n # group: web\n # use: deerflow.community.infoquest.tools:web_search_tool\n # # Used to limit the scope of search results, only returns content within the specified time range. Set to -1 to disable time filtering\n # search_time_range: 10\n\n # Web fetch tool (uses Jina AI reader)\n - name: web_fetch\n group: web\n use: deerflow.community.jina_ai.tools:web_fetch_tool\n timeout: 10\n\n # Web fetch tool (uses InfoQuest AI reader)\n # - name: web_fetch\n # group: web\n # use: deerflow.community.infoquest.tools:web_fetch_tool\n # # Overall timeout for the entire crawling process (in seconds). Set to positive value to enable, -1 to disable\n # timeout: 10\n # # Waiting time after page loading (in seconds). Set to positive value to enable, -1 to disable\n # fetch_time: 10\n # # Timeout for navigating to the page (in seconds). Set to positive value to enable, -1 to disable\n # navigation_timeout: 30\n\n # Image search tool (uses DuckDuckGo)\n # Use this to find reference images before image generation\n - name: image_search\n group: web\n use: deerflow.community.image_search.tools:image_search_tool\n max_results: 5\n\n # File operations tools\n - name: ls\n group: file:read\n use: deerflow.sandbox.tools:ls_tool\n\n - name: read_file\n group: file:read\n use: deerflow.sandbox.tools:read_file_tool\n\n - name: write_file\n group: file:write\n use: deerflow.sandbox.tools:write_file_tool\n\n - name: str_replace\n group: file:write\n use: deerflow.sandbox.tools:str_replace_tool\n\n # Bash execution tool\n - name: bash\n group: bash\n use: deerflow.sandbox.tools:bash_tool\n\n# ============================================================================\n# Sandbox Configuration\n# ============================================================================\n# Choose between local sandbox (direct execution) or Docker-based AIO sandbox\n\n# Option 1: Local Sandbox (Default)\n# Executes commands directly on the host machine\nsandbox:\n use: deerflow.sandbox.local:LocalSandboxProvider\n\n# Option 2: Container-based AIO Sandbox\n# Executes commands in isolated containers (Docker or Apple Container)\n# On macOS: Automatically prefers Apple Container if available, falls back to Docker\n# On other platforms: Uses Docker\n# Uncomment to use:\n# sandbox:\n# use: deerflow.community.aio_sandbox:AioSandboxProvider\n#\n# # Optional: Container image to use (works with both Docker and Apple Container)\n# # Default: enterprise-public-cn-beijing.cr.volces.com/vefaas-public/all-in-one-sandbox:latest\n# # Recommended: enterprise-public-cn-beijing.cr.volces.com/vefaas-public/all-in-one-sandbox:latest (works on both x86_64 and arm64)\n# # image: enterprise-public-cn-beijing.cr.volces.com/vefaas-public/all-in-one-sandbox:latest\n#\n# # Optional: Base port for sandbox containers (default: 8080)\n# # port: 8080\n\n# # Optional: Maximum number of concurrent sandbox containers (default: 3)\n# # When the limit is reached the least-recently-used sandbox is evicted to\n# # make room for new ones. Use a positive integer here; omit this field to use the default.\n# # replicas: 3\n#\n# # Optional: Prefix for container names (default: deer-flow-sandbox)\n# # container_prefix: deer-flow-sandbox\n#\n# # Optional: Additional mount directories from host to container\n# # NOTE: Skills directory is automatically mounted from skills.path to skills.container_path\n# # mounts:\n# # # Other custom mounts\n# # - host_path: /path/on/host\n# # container_path: /home/user/shared\n# # read_only: false\n#\n# # Optional: Environment variables to inject into the sandbox container\n# # Values starting with $ will be resolved from host environment variables\n# # environment:\n# # NODE_ENV: production\n# # DEBUG: \"false\"\n# # API_KEY: $MY_API_KEY # Reads from host's MY_API_KEY env var\n# # DATABASE_URL: $DATABASE_URL # Reads from host's DATABASE_URL env var\n\n# Option 3: Provisioner-managed AIO Sandbox (docker-compose-dev)\n# Each sandbox_id gets a dedicated Pod in k3s, managed by the provisioner.\n# Recommended for production or advanced users who want better isolation and scalability.:\n# sandbox:\n# use: deerflow.community.aio_sandbox:AioSandboxProvider\n# provisioner_url: http://provisioner:8002\n\n# ============================================================================\n# Subagents Configuration\n# ============================================================================\n# Configure timeouts for subagent execution\n# Subagents are background workers delegated tasks by the lead agent\n\n# subagents:\n# # Default timeout in seconds for all subagents (default: 900 = 15 minutes)\n# timeout_seconds: 900\n#\n# # Optional per-agent timeout overrides\n# agents:\n# general-purpose:\n# timeout_seconds: 1800 # 30 minutes for complex multi-step tasks\n# bash:\n# timeout_seconds: 300 # 5 minutes for quick command execution\n\n# ============================================================================\n# Skills Configuration\n# ============================================================================\n# Configure skills directory for specialized agent workflows\n\nskills:\n # Path to skills directory on the host (relative to project root or absolute)\n # Default: ../skills (relative to backend directory)\n # Uncomment to customize:\n # path: /absolute/path/to/custom/skills\n\n # Path where skills are mounted in the sandbox container\n # This is used by the agent to access skills in both local and Docker sandbox\n # Default: /mnt/skills\n container_path: /mnt/skills\n\n# ============================================================================\n# Title Generation Configuration\n# ============================================================================\n# Automatic conversation title generation settings\n\ntitle:\n enabled: true\n max_words: 6\n max_chars: 60\n model_name: null # Use default model (first model in models list)\n\n# ============================================================================\n# Summarization Configuration\n# ============================================================================\n# Automatically summarize conversation history when token limits are approached\n# This helps maintain context in long conversations without exceeding model limits\n\nsummarization:\n enabled: true\n\n # Model to use for summarization (null = use default model)\n # Recommended: Use a lightweight, cost-effective model like \"gpt-4o-mini\" or similar\n model_name: null\n\n # Trigger conditions - at least one required\n # Summarization runs when ANY threshold is met (OR logic)\n # You can specify a single trigger or a list of triggers\n trigger:\n # Trigger when token count reaches 15564\n - type: tokens\n value: 15564\n # Uncomment to also trigger when message count reaches 50\n # - type: messages\n # value: 50\n # Uncomment to trigger when 80% of model's max input tokens is reached\n # - type: fraction\n # value: 0.8\n\n # Context retention policy after summarization\n # Specifies how much recent history to preserve\n keep:\n # Keep the most recent 10 messages (recommended)\n type: messages\n value: 10\n # Alternative: Keep specific token count\n # type: tokens\n # value: 3000\n # Alternative: Keep percentage of model's max input tokens\n # type: fraction\n # value: 0.3\n\n # Maximum tokens to keep when preparing messages for summarization\n # Set to null to skip trimming (not recommended for very long conversations)\n trim_tokens_to_summarize: 15564\n\n # Custom summary prompt template (null = use default LangChain prompt)\n # The prompt should guide the model to extract important context\n summary_prompt: null\n\n# ============================================================================\n# Memory Configuration\n# ============================================================================\n# Global memory mechanism\n# Stores user context and conversation history for personalized responses\nmemory:\n enabled: true\n storage_path: memory.json # Path relative to backend directory\n debounce_seconds: 30 # Wait time before processing queued updates\n model_name: null # Use default model\n max_facts: 100 # Maximum number of facts to store\n fact_confidence_threshold: 0.7 # Minimum confidence for storing facts\n injection_enabled: true # Whether to inject memory into system prompt\n max_injection_tokens: 2000 # Maximum tokens for memory injection\n\n# ============================================================================\n# Checkpointer Configuration\n# ============================================================================\n# Configure state persistence for the embedded DeerFlowClient.\n# The LangGraph Server manages its own state persistence separately\n# via the server infrastructure (this setting does not affect it).\n#\n# When configured, DeerFlowClient will automatically use this checkpointer,\n# enabling multi-turn conversations to persist across process restarts.\n#\n# Supported types:\n# memory - In-process only. State is lost when the process exits. (default)\n# sqlite - File-based SQLite persistence. Survives restarts.\n# Requires: uv add langgraph-checkpoint-sqlite\n# postgres - PostgreSQL persistence. Suitable for multi-process deployments.\n# Requires: uv add langgraph-checkpoint-postgres psycopg[binary] psycopg-pool\n#\n# Examples:\n#\n# In-memory (default when omitted — no persistence):\n# checkpointer:\n# type: memory\n#\n# SQLite (file-based, single-process):\ncheckpointer:\n type: sqlite\n connection_string: checkpoints.db\n#\n# PostgreSQL (multi-process, production):\n# checkpointer:\n# type: postgres\n# connection_string: postgresql://user:password@localhost:5432/deerflow\n\n# ============================================================================\n# IM Channels Configuration\n# ============================================================================\n# Connect DeerFlow to external messaging platforms.\n# All channels use outbound connections (WebSocket or polling) — no public IP required.\n\n# channels:\n# # LangGraph Server URL for thread/message management (default: http://localhost:2024)\n# langgraph_url: http://localhost:2024\n# # Gateway API URL for auxiliary queries like /models, /memory (default: http://localhost:8001)\n# gateway_url: http://localhost:8001\n#\n# # Optional: default mobile/session settings for all IM channels\n# session:\n# assistant_id: lead_agent\n# config:\n# recursion_limit: 100\n# context:\n# thinking_enabled: true\n# is_plan_mode: false\n# subagent_enabled: false\n#\n# feishu:\n# enabled: false\n# app_id: $FEISHU_APP_ID\n# app_secret: $FEISHU_APP_SECRET\n#\n# slack:\n# enabled: false\n# bot_token: $SLACK_BOT_TOKEN # xoxb-...\n# app_token: $SLACK_APP_TOKEN # xapp-... (Socket Mode)\n# allowed_users: [] # empty = allow all\n#\n# telegram:\n# enabled: false\n# bot_token: $TELEGRAM_BOT_TOKEN\n# allowed_users: [] # empty = allow all\n#\n# # Optional: channel-level session overrides\n# session:\n# assistant_id: mobile_agent\n# context:\n# thinking_enabled: false\n#\n# # Optional: per-user overrides by user_id\n# users:\n# \"123456789\":\n# assistant_id: vip_agent\n# config:\n# recursion_limit: 150\n# context:\n# thinking_enabled: true\n# subagent_enabled: true\n"}}}}