270 lines
11 KiB
JSON
270 lines
11 KiB
JSON
{
|
||
// ==============================================================================
|
||
// β ARTEMIS Autonomous Agent & Framework Configuration
|
||
// ==============================================================================
|
||
|
||
// ------------------------------------------------------------------------------
|
||
// 1. Global Default Model (Applied to all sub-agents unless overridden below)
|
||
// ------------------------------------------------------------------------------
|
||
"default": {
|
||
"provider": "google",
|
||
"model": "gemini-3.7-flash",
|
||
"thinking_level": "medium",
|
||
"fallback": {
|
||
"provider": "google",
|
||
"model": "gemini-3.6-flash",
|
||
"thinking_level": "medium"
|
||
}
|
||
},
|
||
|
||
// ------------------------------------------------------------------------------
|
||
// 2. Ready-to-Use Presets (Switch easily in code or CLI)
|
||
// ------------------------------------------------------------------------------
|
||
"presets": {
|
||
"gemini-flagship": {
|
||
"provider": "google",
|
||
"model": "gemini-3.7-flash",
|
||
"fallback": { "provider": "google", "model": "gemini-3.6-flash" }
|
||
},
|
||
"gemini-flash": {
|
||
"provider": "google",
|
||
"model": "gemini-2.5-flash",
|
||
"fallback": { "provider": "google", "model": "gemini-2.0-flash" }
|
||
},
|
||
"openai-gpt4o": {
|
||
"provider": "openai",
|
||
"model": "gpt-4o",
|
||
"fallback": { "provider": "openai", "model": "gpt-4o-mini" }
|
||
},
|
||
"cost-saving": {
|
||
"provider": "google",
|
||
"model": "gemini-3.5-flash-lite",
|
||
"fallback": { "provider": "google", "model": "gemini-3.1-flash-lite" }
|
||
},
|
||
"local-ollama": {
|
||
"provider": "openai",
|
||
"model": "llama3.2-vision",
|
||
"fallback": { "provider": "openai", "model": "llama3.2-vision" }
|
||
}
|
||
},
|
||
|
||
// ------------------------------------------------------------------------------
|
||
// 3. Agent & Sub-Agent Node Customizations (Optional - Inherits from 'default')
|
||
// ------------------------------------------------------------------------------
|
||
"nodes": {
|
||
// π§ Planner: High-level goal decomposition and strategic step planning
|
||
"planner": {
|
||
"thinking_level": "high"
|
||
},
|
||
|
||
// π― Operator: Screen perception, element interaction, and direct execution
|
||
"operator": {
|
||
"thinking_level": "medium",
|
||
"include_thoughts": true
|
||
},
|
||
|
||
// π¬ Video Analyzer: Multimodal screen recording verification and temporal analysis
|
||
// NOTE: Dual-path engine automatically routes:
|
||
// - Native Gemini Files API for Gemini models with Google API keys (long video file stream)
|
||
// - Universal Multi-Model Engine for Claude 3.5/3.7, GPT-4o, OpenRouter, Vertex AI (dynamic keyframe extraction + multimodal tool calling)
|
||
"video_analyzer": {},
|
||
|
||
// ποΈ Object Detector & Explorer (Flash Mode): Visual coordinates grounding and bounding boxes
|
||
// CRITICAL REQUIREMENT: Standard LLMs (including standard Gemini Flash, GPT-4o, Claude 3.7) lack sub-pixel spatial coordinate fine-tuning.
|
||
// To achieve accurate [x, y] point and bounding box localization, this node MUST use specialized Gemini ER (Embodied Reasoning / Robotics) models:
|
||
// e.g., "gemini-robotics-er-2-preview". Non-ER models will fail spatial coordinate detection.
|
||
"object_detector": {
|
||
"model": "gemini-robotics-er-2-preview",
|
||
"fallback": {
|
||
"provider": "google",
|
||
"model": "gemini-robotics-er-2-preview"
|
||
}
|
||
},
|
||
|
||
// π Explorer: Deep element grounding and multi-candidate visual search
|
||
// NOTE:
|
||
// - "flash" version delegates directly to object_detector (requires Gemini ER model above).
|
||
// - "pro" / "ultra" versions run multi-turn ReAct loops (supports both Native Gemini and Universal Multi-Model LangChain engines).
|
||
"explorer": {
|
||
"thinking_level": "medium"
|
||
},
|
||
|
||
// π‘οΈ Validator & Failure Analyzer: Self-healing, action verification & recovery
|
||
"validator_failure_analyzer": {
|
||
"thinking_level": "medium"
|
||
},
|
||
|
||
// π Summarizer: Aggregates step history and generates structured outcome
|
||
"summarizer": {},
|
||
|
||
// π½ Hopper: Fast lightweight package name locator
|
||
"hopper": {
|
||
"model": "gemini-3.5-flash-lite",
|
||
"fallback": {
|
||
"provider": "google",
|
||
"model": "gemini-3.1-flash-lite"
|
||
}
|
||
},
|
||
|
||
// π Outputter: Synthesizes execution trace into final output report
|
||
"outputter": {},
|
||
|
||
// πͺ΅ Log Analyzer: Error log diagnosis with search grounding
|
||
"log_analyzer": {
|
||
"enable_grounding": true
|
||
},
|
||
|
||
// π©Ί Diagnoser Expert: Failure root cause diagnosis with search grounding
|
||
"diagnoser_expert": {
|
||
"enable_grounding": true
|
||
},
|
||
// ποΈ Committee Council Members
|
||
"planner_avatar": {},
|
||
"history_analyzer_expert": {},
|
||
// π Checker: Visual subgoal verification and rollback
|
||
"checker": {}
|
||
},
|
||
|
||
// ------------------------------------------------------------------------------
|
||
// 4. Runtime Mode & Agent Capabilities Configuration (Dual-Engine: Flash vs. Pro)
|
||
// ------------------------------------------------------------------------------
|
||
"agent": {
|
||
// ==========================================================================
|
||
// β‘ 4.1 FLASH Profile Options (Reactive Single-Agent Lightweight Loop)
|
||
// ==========================================================================
|
||
// Best for: Simple, fast, deterministic tasks (< 30 UI steps).
|
||
// Execution: Observe-Think-Act single LLM reactive loop without graph overhead.
|
||
"flash": {
|
||
"max_turns": 30, // Maximum reactive turns before stopping
|
||
"explorer_mode": "flash", // Perception mode for Flash runner ('flash' 1-shot detection)
|
||
// π§ Step Summarizer: Asynchronous visual context compressor
|
||
// Summarizes intermediate steps in background without blocking the runner,
|
||
// replacing images only after strictly objective, high-density summaries are ready.
|
||
"step_summarizer": {
|
||
"enabled": true, // Whether background step summarization is active
|
||
"model": "gemini-3.5-flash-lite", // Lightweight model for fast background inference
|
||
"prune_history_xml": true // Prune outdated heavy XML trees from historical steps
|
||
}
|
||
},
|
||
// ==========================================================================
|
||
// π 4.2 PRO Profile Options (Deep Multi-Agent Graph Closed-Loop)
|
||
// ==========================================================================
|
||
// Best for: Complex, exploratory, dynamic multi-branch tasks.
|
||
// Execution: LangGraph multi-node graph with autonomous planning, validation, and self-healing.
|
||
"pro": {
|
||
// π§ Explorer: Perception sub-agent under Pro profile ('flash', 'pro', or 'ultra')
|
||
"explorer": {
|
||
"mode": "flash", // Default mode for Pro nodes (Operator/Validator)
|
||
"caching": true // Context caching for multi-turn Pro/Ultra visual reasoning
|
||
},
|
||
// π― Planner Validation: Async verification when task plan milestones change
|
||
"planner_validation": {
|
||
"enabled": false,
|
||
"similarity_threshold": 0.85
|
||
},
|
||
// ποΈ Committee: Multi-Agent Council debate tool for Operator
|
||
"committee": {
|
||
"enabled": false,
|
||
"debate_rounds": 2
|
||
},
|
||
// π Checker: Plan-declared checkpoint verification (optimistic async) + exit final review
|
||
"checker": {
|
||
"enabled": false, // Master switch (compat alias): false disables both gates below
|
||
"midway_checks": true, // Plan-declared midway checkpoints (verify/assert on subgoal completion)
|
||
"final_check": true, // Exit final review against the user's original goal
|
||
"max_iterations": 20,
|
||
"final_check_max_attempts": 3,
|
||
"checkpoint_max_repairs": 2,
|
||
"max_concurrent_checkpoints": 3,
|
||
"checkpoint_timeout": 180.0,
|
||
"settlement_timeout": 120.0,
|
||
"assert_failure_policy": "continue", // 'continue' or 'halt' on assert failures
|
||
"device_probes": true // Checker's enumerated read-only device probes
|
||
},
|
||
// π¬ Video Analyzer & Screen Recording: Continuous screen recording via scrcpy and temporal analysis
|
||
"video_analyzer": {
|
||
"enabled": true, // Whether continuous video recording and video tools are active (default: auto-detected)
|
||
"enable_ledger": true
|
||
}
|
||
},
|
||
// ==========================================================================
|
||
// π 4.3 Shared Capabilities & Global Overrides
|
||
// ==========================================================================
|
||
// π§ Unified Step-Memory Runtime (history-module redesign v3, M0βM5)
|
||
// Transcript ledger + layered compression for the Pro operator.
|
||
"memory": {
|
||
// Background summarization runtime (visual/capsule lenses)
|
||
"runtime": {
|
||
"max_concurrency": 2, // 1β2 per 2026-09-01 baseline: serial queue pushed summary-ready P90 past the scrub window
|
||
"retry_limit": 3,
|
||
"flush_timeout_s": 30
|
||
},
|
||
"transcript": {
|
||
// ROLLBACK SWITCH: set false to restore the legacy per-turn 2-message
|
||
// prompt path byte-for-byte (L2/L3 chunk compression rides this same
|
||
// flag). Default on since M5 (2026-09-01) per the on-device A/B:
|
||
// turn latency β77% P50, cache-hit calls 43%β88%, output tokens β74%.
|
||
"enabled": true,
|
||
"context_budget_tokens": 80000,
|
||
"soft_ratio": 0.7,
|
||
"hard_ratio": 0.9,
|
||
"min_active_steps": 5,
|
||
"image_scrub_depth": 3,
|
||
"pending_grace_steps": 3,
|
||
"xml_scrub_depth": 1,
|
||
// Local historical-state hint (no model call); distance calibrated
|
||
// 2026-09-01 from 460 dHash-stamped on-device steps (same screen <=4,
|
||
// different screens >=7).
|
||
"similarity_hint": true,
|
||
"similarity_max_distance": 5
|
||
},
|
||
// Segment (L2) chunk compression: three-band chunks, era folding
|
||
"chunking": {
|
||
"max_steps": 12,
|
||
"target_source_tokens": 2000,
|
||
"model": "gemini-3.7-flash",
|
||
"max_chunks": 8
|
||
// "max_eras": 8 // independent era cap; omitted = follows max_chunks
|
||
},
|
||
// Deterministic cold-history recall tool (Pro operator)
|
||
"recall": {
|
||
"enabled": true,
|
||
"max_results": 5,
|
||
"max_text_tokens": 2000,
|
||
"max_image_steps": 1
|
||
}
|
||
},
|
||
// π¬ Screen Recording & Video Analyzer Configuration
|
||
"video_analyzer": {
|
||
"enabled": true, // Whether continuous screen recording via scrcpy is active (default: auto-detected)
|
||
"enable_ledger": true
|
||
},
|
||
// π Outputter: Post-execution report synthesis and structured schema extraction
|
||
// Reviews action history, notes, and verifies goal achievement to synthesize final output.
|
||
"outputter": {
|
||
"enabled": true, // Whether Outputter is mounted to synthesize final outputs
|
||
"force_synthesis": false // Force Outputter synthesis even without explicit output schema
|
||
},
|
||
// π§ Global / Per-Agent Explorer Version Overrides
|
||
"explorer": {
|
||
"default_version": "flash", // Fallback version when not specified
|
||
"flash_mode": "flash", // Version for Flash runner
|
||
"pro_mode": "flash", // Version for Pro graph runner
|
||
"caching": true
|
||
},
|
||
"explorer_versions": {
|
||
"operator": "flash",
|
||
"validator": "flash"
|
||
},
|
||
// π« Per-agent Tool Denylists
|
||
"denylisted_tools": {
|
||
"explorer": [
|
||
"ask_image_processor",
|
||
"get_ocr_list",
|
||
"inspect_region"
|
||
]
|
||
}
|
||
}
|
||
}
|
||
|