Files
Artemis-Eapil/config/artemis.jsonc
T

270 lines
11 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
// ==============================================================================
// β˜• 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": true, // On by default: ratchet-baseline milestone validation
"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": true, // Master switch (compat alias): false disables both gates below
"midway_checks": false, // Plan-declared midway checkpoints (off in the factory layering)
"final_check": true, // Exit final review against the user's original goal (on by default)
"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"
]
}
}
}