-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy path.env.example
More file actions
135 lines (120 loc) · 4.88 KB
/
Copy path.env.example
File metadata and controls
135 lines (120 loc) · 4.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#CURLLM_MODEL=qwen2.5:7b
#CURLLM_MODEL=qwen3:30b-a3b
#CURLLM_MODEL=llama3.2-vision:11b
#CURLLM_MODEL=starcoder2:15b
#CURLLM_MODEL=gemma3:12b
CURLLM_MODEL=qwen2.5:14b
CURLLM_OLLAMA_HOST=http://localhost:11434
CURLLM_API_HOST=http://localhost:8001
CURLLM_API_PORT=8001
CURLLM_BROWSERLESS=false
BROWSERLESS_URL=ws://localhost:3000
BROWSERLESS_PORT=3000
REDIS_PORT=6379
OLLAMA_PORT=11434
CURLLM_DEBUG=false
CURLLM_MAX_STEPS=20
CURLLM_SCREENSHOT_DIR=./screenshots
CURLLM_NUM_CTX=8192
CURLLM_NUM_PREDICT=512
CURLLM_TEMPERATURE=0.3
CURLLM_TOP_P=0.9
# LLM timeout w sekundach (domyślnie 300s = 5min)
# Dla słabszych modeli/GPU zwiększ do 600s, dla mocniejszych zmniejsz do 120s
CURLLM_LLM_TIMEOUT=300
CAPTCHA_API_KEY=
CURLLM_OLLAMA_PORT=11434
CURLLM_WORKSPACE=/home/tom/.cache/curllm/workspace
CURLLM_STORAGE_DIR=/home/tom/.cache/curllm/workspace/storage
# Runtime defaults (LLM planner and DOM snapshot)
# You can override these per-run via JSON params, but these are global defaults.
CURLLM_INCLUDE_DOM_HTML=true
CURLLM_DOM_MAX_CHARS=69000
CURLLM_DOM_MAX_CAP=70000
CURLLM_SMART_CLICK=true
CURLLM_ACTION_TIMEOUT_MS=25000
CURLLM_WAIT_AFTER_CLICK_MS=1800
CURLLM_WAIT_AFTER_NAV_MS=3000
CURLLM_NO_CLICK=false
CURLLM_SCROLL_LOAD=true
CURLLM_FASTPATH=false
# Hierarchical planner - dzieli komunikację z LLM na 3 poziomy (strategic -> tactical -> execution)
# Zmniejsza ilość danych w pojedynczym request z ~50KB do ~2KB+5KB
# Włączony domyślnie dla zadań typu "fill form"
CURLLM_HIERARCHICAL_PLANNER=true
# Próg automatycznej optymalizacji - jeśli page_context przekracza ten rozmiar (w znakach),
# używany jest hierarchical planner z 2-poziomowym zarysem JSON (bez szczegółów pól)
CURLLM_HIERARCHICAL_PLANNER_CHARS=25000
CURLLM_USE_EXTERNAL_SLIDER_SOLVER=true
CURLLM_STALL_LIMIT=9
CURLLM_PLANNER_GROWTH_PER_STEP=4000
CURLLM_PLANNER_MAX_CAP=70000
CURLLM_PLANNER_BASE_CHARS=65000
# Optional default runtime preset: deep_scan | fast_scan | max_dom
# If set, applies before per-request params.
CURLLM_RUNTIME_PRESET=deep_scan
# Enable LLM-based instruction refinement (uses page DOM preview and sample links)
# When true, the agent will try to rewrite the user's instruction into a more
# precise, deterministic variant before planning.
CURLLM_REFINE_INSTRUCTION=true
CURLLM_VALIDATION=true
# Run log preview size (characters of JSON shown in logs)
CURLLM_LOG_PREVIEW_CHARS=59000
CURLLM_LOG_PROMPT_CHARS=58000
CURLLM_STORE_RESULTS=false
CURLLM_RESULT_KEY=
# none|new|changed|delta|all
CURLLM_DIFF_MODE=none
CURLLM_DIFF_FIELDS=href,title,url
CURLLM_KEEP_HISTORY=10
CURLLM_INCLUDE_PREV_RESULTS=false
# Vision-based form analysis & honeypot detection
# Automatycznie aktywuje się z flagą --visual i vision-capable model (llava, minicpm-v, qwen2-vl)
# Wykrywa pola honeypot (ukryte w CSS, poza ekranem, zero dimensions)
# Priorytetyzuje pola według widoczności i wymagań
CURLLM_VISION_FORM_ANALYSIS=auto
CURLLM_VISION_MODEL=llava:13b
CURLLM_VISION_CONFIDENCE_THRESHOLD=0.7
CURLLM_VISION_DETECT_HONEYPOTS=true
# LLM-guided per-field form filling
# Zamiast wypełniać cały formularz na raz, LLM decyduje o wartości dla każdego pola osobno
# Redukcja token usage: ~70% (400 tokens/pole vs 5000+ dla całego formularza)
# Inteligentna walidacja: retry z feedback po każdym polu, learning from errors
# Hybrid approach: deterministic first (fast), fallback to LLM-guided (smart)
CURLLM_LLM_FIELD_FILLER_ENABLED=false
CURLLM_LLM_FIELD_MAX_ATTEMPTS=2
CURLLM_LLM_FIELD_TIMEOUT_MS=5000
CURLLM_EXTRACTION_ORCHESTRATOR=true
CURLLM_EXTRACTION_ORCHESTRATOR_TIMEOUT=200
CURLLM_BQL_EXTRACTION_ORCHESTRATOR=true
CURLLM_SEMANTIC_QUERY=true
CURLLM_SEMANTIC_QUERY_TIMEOUT=120
# Iterative Extractor (Small atomic DOM queries - FAST!)
# Uses multiple small targeted queries instead of sending entire DOM to LLM
# Enabled by default for product extraction tasks
CURLLM_ITERATIVE_EXTRACTOR=true
CURLLM_ITERATIVE_EXTRACTOR_MAX_ITEMS=50
# Progressive Context (Start small, expand only when needed)
# Instead of sending 60KB from start, progressively increase context:
# Step 1-2: ~5KB (title, url, top links)
# Step 3-4: ~15KB (add interactive elements)
# Step 5-6: ~30KB (add DOM structure)
# Step 7+: Full context
CURLLM_PROGRESSIVE_CONTEXT=true
CURLLM_PROGRESSIVE_CONTEXT_INITIAL_SIZE=5000
# LLM-Guided Extractor (LLM makes decisions at each atomic step)
# Instead of monolithic heuristics, LLM decides:
# 1. What container selector? 2. How to extract name?
# 3. How to extract price? 4. How to filter?
# Each step is small, atomic, and LLM-guided for maximum flexibility
CURLLM_LLM_GUIDED_EXTRACTOR=true
# === PROMPT FORMAT ===
# Format for LLM responses: "json" (default) or "dsl" (Python-like syntax)
# DSL format is better for smaller models that struggle with JSON
# Example DSL:
# action = "tool"
# tool_name = "form.fill"
# args = dict(name="John", email="john@example.com")
CURLLM_PROMPT_FORMAT=json
# Atomic actions: break complex tasks into simpler sub-tasks
CURLLM_ATOMIC_ACTIONS=true