@omnicrawl/cli-linux-arm-musl 0.2.6 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/bin/omnicrawl +0 -0
- package/host/omnicrawl +0 -0
- package/host/omnicrawl-api +0 -0
- package/host/omnicrawl-decision +0 -0
- package/host/omnicrawl-host +0 -0
- package/host/omnicrawl-mcp-server +0 -0
- package/host/omnicrawl-tui +0 -0
- package/host/rust/assets/config-templates/config.example.toml +283 -0
- package/host/rust/assets/config-templates/decision_models.example.toml +117 -0
- package/host/rust/assets/config-templates/models.example.toml +71 -0
- package/host/rust/assets/config-templates/subagents.example.toml +38 -0
- package/host/rust/assets/extensions/node_runner.mjs +402 -0
- package/host/rust/assets/templates/advisor_system.md +22 -0
- package/host/rust/assets/templates/model_reply_compaction_system.md +28 -0
- package/host/rust/assets/templates/plan.md +110 -0
- package/host/rust/assets/templates/subagents/explore.md +20 -0
- package/host/rust/assets/templates/subagents/general-purpose.md +42 -0
- package/host/rust/assets/templates/subagents/plan.md +20 -0
- package/host/rust/assets/templates/subagents/review.md +130 -0
- package/host/rust/assets/templates/subagents/verify.md +35 -0
- package/host/rust/assets/templates/summary_prompt.md +77 -0
- package/host/rust/assets/templates/system_prompt.md +72 -0
- package/host/rust/assets/templates/tool_call_summary_system.md +30 -0
- package/host/rust/assets/templates/tool_output_compression_system.md +28 -0
- package/package.json +10 -3
- package/version.json +4 -4
package/README.md
CHANGED
package/bin/omnicrawl
CHANGED
|
Binary file
|
package/host/omnicrawl
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
# OmniCrawl 首次启动配置
|
|
2
|
+
# API Key 会在首次启动时交互式写入当前用户配置目录。
|
|
3
|
+
version = 2
|
|
4
|
+
|
|
5
|
+
[llm.active_model]
|
|
6
|
+
source = "custom"
|
|
7
|
+
key = "default-chat"
|
|
8
|
+
|
|
9
|
+
[llm.defaults]
|
|
10
|
+
request_timeout_seconds = 180
|
|
11
|
+
request_retry_count = 5
|
|
12
|
+
discovery_timeout_seconds = 10
|
|
13
|
+
discovery_cache_ttl_seconds = 300
|
|
14
|
+
reasoning_effort = ""
|
|
15
|
+
thinking_type = "disabled"
|
|
16
|
+
|
|
17
|
+
[llm.profiles.openai-main]
|
|
18
|
+
provider = "openai"
|
|
19
|
+
enabled = true
|
|
20
|
+
base_url = "https://api.openai.com/v1"
|
|
21
|
+
api_key_env = "OPENAI_API_KEY"
|
|
22
|
+
# 可选:覆盖该渠道请求使用的 HTTP User-Agent。
|
|
23
|
+
# user_agent = "OmniCrawl/1.0"
|
|
24
|
+
default_protocol = "openai_chat_completions"
|
|
25
|
+
default_context_window_tokens = 128000
|
|
26
|
+
|
|
27
|
+
[llm.profiles.openai-main.discovery]
|
|
28
|
+
enabled = true
|
|
29
|
+
|
|
30
|
+
[llm.profiles.anthropic-main]
|
|
31
|
+
provider = "anthropic"
|
|
32
|
+
enabled = false
|
|
33
|
+
base_url = "https://api.anthropic.com"
|
|
34
|
+
api_key_env = "ANTHROPIC_API_KEY"
|
|
35
|
+
default_protocol = "anthropic_messages"
|
|
36
|
+
default_context_window_tokens = 200000
|
|
37
|
+
|
|
38
|
+
[llm.profiles.anthropic-main.discovery]
|
|
39
|
+
enabled = true
|
|
40
|
+
|
|
41
|
+
[llm.profiles.gemini-main]
|
|
42
|
+
provider = "gemini"
|
|
43
|
+
enabled = false
|
|
44
|
+
base_url = "https://generativelanguage.googleapis.com"
|
|
45
|
+
api_key_env = "GEMINI_API_KEY"
|
|
46
|
+
default_protocol = "gemini_generate_content"
|
|
47
|
+
default_context_window_tokens = 1000000
|
|
48
|
+
|
|
49
|
+
[llm.profiles.gemini-main.discovery]
|
|
50
|
+
enabled = true
|
|
51
|
+
|
|
52
|
+
# 视觉模型代理:模型引用复用 llm.profiles / models.toml,不在这里存 API Key。
|
|
53
|
+
# models 按顺序作为故障转移链;主模型不支持视觉且此项开启时,图片会先交给这些模型分析。
|
|
54
|
+
# 模型原生视觉在设置页「视觉」按当前模型/渠道开关(models.toml 或 [llm.profiles.<id>] 的 native_vision)。
|
|
55
|
+
[vision]
|
|
56
|
+
enabled = false
|
|
57
|
+
models = []
|
|
58
|
+
|
|
59
|
+
# 图像生成(OpenAI 兼容 Image API):接口地址、Key、模型与默认参数在
|
|
60
|
+
# TUI /settings → 图像生成 中配置;api_key 写入本地 config.toml(不提交仓库),
|
|
61
|
+
# 留空时回退环境变量 OPENAI_API_KEY。
|
|
62
|
+
[image_gen]
|
|
63
|
+
enabled = false
|
|
64
|
+
base_url = "https://api.openai.com/v1"
|
|
65
|
+
api_key = ""
|
|
66
|
+
api_key_env = "OPENAI_API_KEY"
|
|
67
|
+
model = "gpt-image-2"
|
|
68
|
+
size = "auto"
|
|
69
|
+
quality = "auto"
|
|
70
|
+
output_format = "png"
|
|
71
|
+
n = 1
|
|
72
|
+
timeout_seconds = 120
|
|
73
|
+
|
|
74
|
+
# TTS 语音合成,两条后端:
|
|
75
|
+
# 1) 接口合成(默认):走 [tts_api] 的 OpenAI 兼容 audio/speech 接口,任何平台可用;
|
|
76
|
+
# 2) 本地推理(可选,需构建时带 omnicrawl-tts/onnx feature):MOSS-TTS-Nano ONNX,
|
|
77
|
+
# 首次启用时在 TUI /settings → TTS 中下载模型(约 763MB)并选择音色。
|
|
78
|
+
[tts]
|
|
79
|
+
enabled = false
|
|
80
|
+
model_dir = ""
|
|
81
|
+
voice = "Junhao"
|
|
82
|
+
auto_play = true
|
|
83
|
+
thread_count = 4
|
|
84
|
+
# 推理设备:auto 优先 CUDA,不可用时回退 CPU;cuda 不可用时直接报错。
|
|
85
|
+
device = "auto"
|
|
86
|
+
# codec 流式解码(低首字节延迟;默认开启,显存占用低,避免全量解码 OOM)。
|
|
87
|
+
streaming = true
|
|
88
|
+
output_dir = ".omnicrawl/.agent_tmp/tts"
|
|
89
|
+
|
|
90
|
+
# TTS 接口合成(OpenAI 兼容 POST {base_url}/audio/speech);enabled = false 时回落到本地推理。
|
|
91
|
+
[tts_api]
|
|
92
|
+
enabled = true
|
|
93
|
+
base_url = "https://api.openai.com/v1"
|
|
94
|
+
api_key = ""
|
|
95
|
+
api_key_env = "OPENAI_API_KEY"
|
|
96
|
+
model = "gpt-4o-mini-tts"
|
|
97
|
+
voice = "alloy"
|
|
98
|
+
# 只支持 wav(Windows 播放走 winmm,且要按 WAV 解析时长)。
|
|
99
|
+
response_format = "wav"
|
|
100
|
+
# 语速 0.25~4.0;1.0 时不发给服务端。
|
|
101
|
+
speed = 1.0
|
|
102
|
+
timeout_seconds = 120
|
|
103
|
+
|
|
104
|
+
[approval]
|
|
105
|
+
mode = "review"
|
|
106
|
+
# 自动审查使用的独立模型(可选):留空时沿用 [llm] model。
|
|
107
|
+
# 审查请求与主对话完全隔离(不携带主对话上下文),独立模型不影响主对话成本,
|
|
108
|
+
# 且主模型被提示词注入时也不影响审查独立性;建议指定更便宜/更严格的模型。
|
|
109
|
+
review_model = ""
|
|
110
|
+
|
|
111
|
+
# 对话区思考块显示:关闭后思考内容仍照常产生并进入推理链路,只是不在
|
|
112
|
+
# 对话区渲染思考块(Markdown 渲染)。可在 TUI /settings 中切换。
|
|
113
|
+
[ui]
|
|
114
|
+
show_thinking = true
|
|
115
|
+
|
|
116
|
+
[memory]
|
|
117
|
+
enabled = true
|
|
118
|
+
|
|
119
|
+
# 内置工具开关:默认除 powershell 关闭外,其余全部启用。
|
|
120
|
+
# 只在需要禁用某个工具时取消注释并设为 false。
|
|
121
|
+
# [tools]
|
|
122
|
+
# powershell = false
|
|
123
|
+
# bash = true
|
|
124
|
+
# read_image = true
|
|
125
|
+
# windows_screenshot = true
|
|
126
|
+
|
|
127
|
+
# 运行节奏护栏:Reasoning 死循环保护、白名单临时错误恢复与有限自动续跑。
|
|
128
|
+
# 自动续跑会增加模型请求次数和 Token 消耗;保存后从下一次回合生效。
|
|
129
|
+
[run_guard]
|
|
130
|
+
enabled = true
|
|
131
|
+
|
|
132
|
+
[run_guard.guard]
|
|
133
|
+
enabled = true
|
|
134
|
+
window_chars = 2000
|
|
135
|
+
substr_len = 32
|
|
136
|
+
repeat_ratio = 0.7
|
|
137
|
+
check_every = 50
|
|
138
|
+
max_blocks = 10000
|
|
139
|
+
max_chars = 500000
|
|
140
|
+
max_guard_retries = 2
|
|
141
|
+
# 白名单错误码:默认使用 provider-neutral 统一错误码(SERVICE_UNAVAILABLE 对应
|
|
142
|
+
# HTTP 5xx/网关临时不可用)。如需对网关等上游业务错误码/错误文本做自动重试,
|
|
143
|
+
# 可在此追加自定义字符串,例如 ["SERVICE_UNAVAILABLE", "PI_AI_ERROR"]。
|
|
144
|
+
auto_retry_errors = ["SERVICE_UNAVAILABLE"]
|
|
145
|
+
|
|
146
|
+
[run_guard.continue]
|
|
147
|
+
enabled = true
|
|
148
|
+
max_auto_followups = 3
|
|
149
|
+
|
|
150
|
+
[context_compaction]
|
|
151
|
+
# 上下文压缩是 Agent 的基础能力。触发阈值(Token)也可在运行设置面板按当前
|
|
152
|
+
# 模型上下文窗口的百分比设置(5% 步进):trigger_context_tokens = 上下文窗口 × 百分比。
|
|
153
|
+
# 设置面板修改百分比后会保存该关系,并在上下文窗口变化时实时重算。
|
|
154
|
+
trigger_context_tokens = 100000
|
|
155
|
+
trigger_context_percent = 80
|
|
156
|
+
next_user_reserve_tokens = 10240
|
|
157
|
+
emergency_context_ratio = 0.85
|
|
158
|
+
summary_profile = ""
|
|
159
|
+
reasoning_effort = "low"
|
|
160
|
+
# 模型压缩「压缩即丢弃」:压缩后上下文只有摘要 + 最终回复锚点,不保留原文回合;
|
|
161
|
+
# recent_turns 仍用于触发预估的热窗口划分。
|
|
162
|
+
recent_turns = 6
|
|
163
|
+
target_summary_tokens = 0
|
|
164
|
+
preserve_exact_evidence = true
|
|
165
|
+
allow_cross_provider = false
|
|
166
|
+
failure_fallback = "deterministic"
|
|
167
|
+
|
|
168
|
+
# AI 消息可逆脱敏(opt-in,默认关闭):把发往模型的消息副本中命中的敏感值
|
|
169
|
+
# 替换为 {Desensitized:n} 占位符,模型返回后按序号还原;原文不出本机。
|
|
170
|
+
# 仅作用于 AI 消息(含工具调用消息),不改动请求参数;设计文档见
|
|
171
|
+
# omnicrawl://docs/agent_gateway_desensitization_design.md。
|
|
172
|
+
# 说明:熵检测兜底(entropy_*)为 P2 增强,键位已保留。
|
|
173
|
+
# [desensitization]
|
|
174
|
+
# enabled = false # 显式启用后才生效;未启用零成本
|
|
175
|
+
# fail_closed = true # 屏蔽异常时中止请求,不静默发送原文
|
|
176
|
+
# strict_restore = false # 还原缺失时中止并报错(默认保留 + 告警)
|
|
177
|
+
# extra_sensitive_keys = [] # 追加敏感键名
|
|
178
|
+
# exempt_keys = [] # 豁免键名(优先于命中)
|
|
179
|
+
# entropy_enabled = true # 熵兜底开关(关闭则仅键名/结构匹配)
|
|
180
|
+
# entropy_min_length = 20 # 熵兜底长度下限
|
|
181
|
+
# entropy_min_bits = 3.5 # 熵兜底阈值
|
|
182
|
+
# entropy_pure_letters = false # 纯字母令牌:长度达标即脱敏(默认关闭;十六进制字母串仍跳过)
|
|
183
|
+
# entropy_pure_digits = false # 纯数字令牌:长度达标即脱敏(默认关闭)
|
|
184
|
+
# 值类型规则层(正则识别「无键名的敏感值类型」):高危类型默认开启,
|
|
185
|
+
# 泛化类型(邮箱 / 外网 IP / 网址)误报较高,默认关闭、按需开启。
|
|
186
|
+
# detect_pem_private_key = true # PEM 私钥(BEGIN/END … PRIVATE KEY)
|
|
187
|
+
# detect_db_connection_string = true # 数据库连接串(URI / ADO 键值)
|
|
188
|
+
# detect_email = false # 邮箱地址
|
|
189
|
+
# detect_bank_card = true # 银行卡号(Luhn 校验)
|
|
190
|
+
# detect_internal_ip = true # 内网 IP(私有 / 链路本地)
|
|
191
|
+
# detect_external_ip = false # 外网 IP(公网可路由)
|
|
192
|
+
# detect_url = false # 网址(http / https / ftp)
|
|
193
|
+
# detect_mac_address = true # MAC 地址
|
|
194
|
+
# detect_license_plate = true # 中国大陆车牌
|
|
195
|
+
# gitleaks 开源规则:默认加载内置离线快照(rust/crates/omnicrawl-llm/data/gitleaks.toml);
|
|
196
|
+
# gitleaks_config_path 指向自定义文件时按规则 id 覆盖 / 追加(失败回退内置快照)。
|
|
197
|
+
# NER 兜底层(BiLSTM-CRF:人名 / 地名 / 机构名):结构 / 规则 / 熵之外的最后一道语义
|
|
198
|
+
# 兜底,输入是前几层处理后的文本且只对中文片段兜底(非中文字符已等长隔离);
|
|
199
|
+
# 需要可选依赖 torch(pip install -e .[ner])。
|
|
200
|
+
# 权重随包分发,可用 ner_model_path 或环境变量 OMNICRAWL_NER_MODEL 覆盖;
|
|
201
|
+
# torch / 权重缺失时本层静默跳过,不影响既有脱敏链路。
|
|
202
|
+
# ner_enabled = false # 默认关闭;开启后作为语义兜底
|
|
203
|
+
# ner_model_path = "" # checkpoint 路径;留空用随包权重 / 环境变量
|
|
204
|
+
# ner_device = "auto" # auto 优先 CUDA、不可用回退 CPU
|
|
205
|
+
# ner_entity_types = ["PER", "ORG", "LOC"] # 需要识别的实体类型
|
|
206
|
+
# ner_min_entity_chars = 2 # 最小实体长度(2 规避单字地名歧义)
|
|
207
|
+
# 推理结果缓存:按「块」(≤200 字符)缓存,长会话中未变历史不再重复推理;
|
|
208
|
+
# 容量单位是块数,默认 2048(约 400KB 文本),0 关闭。
|
|
209
|
+
# ner_cache_size = 2048
|
|
210
|
+
|
|
211
|
+
[api]
|
|
212
|
+
bearer_token = "请替换为随机长令牌"
|
|
213
|
+
host = "127.0.0.1"
|
|
214
|
+
port = 8765
|
|
215
|
+
allowed_origins = ["http://localhost:5173"]
|
|
216
|
+
confirmation_timeout_seconds = 300
|
|
217
|
+
# uvicorn worker 进程数,默认 1(Run 状态、事件流、审批全部在进程内存里)。
|
|
218
|
+
# >1 时内核按连接在 worker 间轮询,同一客户端的后续请求可能落到任意 worker,
|
|
219
|
+
# 因此运行状态自动改走跨进程共享存储(~/.OmniCrawl/api-runs-<host>-<port>.sqlite3)。
|
|
220
|
+
# 每个 worker 会各自创建一个 Agent 与独立隔离 worktree,按机器核数与内存设置。
|
|
221
|
+
workers = 1
|
|
222
|
+
|
|
223
|
+
[agent_temp]
|
|
224
|
+
enabled = true
|
|
225
|
+
directory = ".omnicrawl/.agent_tmp"
|
|
226
|
+
cleanup_enabled = true
|
|
227
|
+
cleanup_interval_hours = 24
|
|
228
|
+
|
|
229
|
+
# 启动自动更新:每次启动时联网比对 PyPI 最新版(检测结果带 24 小时本地缓存,
|
|
230
|
+
# 同一天不重复请求),本地版本落后时自动执行 pip 升级,完成后重新启动 TUI。
|
|
231
|
+
# 仅对 pip 正常安装的环境生效(源码目录或 editable 安装直接跳过);离线、升级
|
|
232
|
+
# 失败或配置异常时按"继续使用当前版本"启动,不影响工具可用性。
|
|
233
|
+
# 设置 OMNICRAWL_SKIP_AUTO_UPDATE=1 可彻底关闭。
|
|
234
|
+
[update]
|
|
235
|
+
enabled = true
|
|
236
|
+
|
|
237
|
+
[plugins]
|
|
238
|
+
enabled = false
|
|
239
|
+
|
|
240
|
+
# SubAgent 设置已完全迁移到独立文件 subagents.toml(模板见 subagents.example.toml),
|
|
241
|
+
# 支持为每个子代理单独指定模型。本段不再从 config.toml 读取,
|
|
242
|
+
# 请直接编辑 subagents.toml 调整子代理全局边界与逐角色模型。
|
|
243
|
+
# [subagents]
|
|
244
|
+
# enabled = false
|
|
245
|
+
# max_depth = 1
|
|
246
|
+
# max_concurrency = 2
|
|
247
|
+
# max_tasks_per_batch = 4
|
|
248
|
+
# default_timeout_seconds = 3600
|
|
249
|
+
# model_request_concurrency = 2
|
|
250
|
+
# allow_background = false
|
|
251
|
+
# allow_fork = false
|
|
252
|
+
# allow_worktree = false
|
|
253
|
+
# allow_standard_agent = false
|
|
254
|
+
# allow_shared_workspace_writes = false
|
|
255
|
+
# enable_verify_agent = false
|
|
256
|
+
# verify_command_timeout_seconds = 120
|
|
257
|
+
# task_retention_minutes = 60
|
|
258
|
+
# result_summary_chars = 6000
|
|
259
|
+
#
|
|
260
|
+
# [subagents.models.explore]
|
|
261
|
+
# model = "default-chat"
|
|
262
|
+
|
|
263
|
+
[mcp]
|
|
264
|
+
enabled = false
|
|
265
|
+
default_timeout_seconds = 30
|
|
266
|
+
# 工具输出预算为固定硬编码(单工具 50K 字符、每回合聚合 200K 字符):
|
|
267
|
+
# 超限输出自动落盘到会话 artifact,模型上下文只保留头尾预览与文件路径。
|
|
268
|
+
servers = {}
|
|
269
|
+
# 远程 Streamable HTTP Server 可在这里声明认证请求头:
|
|
270
|
+
# [mcp.servers.remote_service]
|
|
271
|
+
# enabled = true
|
|
272
|
+
# transport = "streamable_http"
|
|
273
|
+
# url = "https://example.com/mcp"
|
|
274
|
+
#
|
|
275
|
+
# [mcp.servers.remote_service.headers]
|
|
276
|
+
# Authorization = "Bearer replace-with-token"
|
|
277
|
+
# X-API-Key = "replace-with-api-key"
|
|
278
|
+
|
|
279
|
+
[mcp.policy]
|
|
280
|
+
require_confirmation_for_write = true
|
|
281
|
+
require_confirmation_for_command = true
|
|
282
|
+
allow_external_network_tools = false
|
|
283
|
+
audit_log_enabled = true
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# OmniCrawl 结构化决策模型配置(首次启动自动复制为 decision_models.toml)
|
|
2
|
+
#
|
|
3
|
+
# 结构化决策模型是独立于对话模型的第二类服务:送一段 state 加若干有类型的提问
|
|
4
|
+
# (choice / score / noul),拿回校准过的答案。它不做文本生成,也不进 models.toml
|
|
5
|
+
# 的对话模型目录——两套服务地址与模型命名空间互不相干。
|
|
6
|
+
#
|
|
7
|
+
# 支持的服务:Jev(TypeSafe AI)与自部署的 OneJev(本机 qev 服务)。三种请求方式见下方 mode 注释。
|
|
8
|
+
# 密钥请用环境变量(api_key_env);也可以直接写 api_key,但不要提交到版本库。
|
|
9
|
+
version = 1
|
|
10
|
+
|
|
11
|
+
# 默认使用的决策渠道 key;留空或指向不存在的渠道时取第一条启用的渠道。
|
|
12
|
+
default_key = "jev-main"
|
|
13
|
+
|
|
14
|
+
[channels.jev-main]
|
|
15
|
+
name = "Jev 主渠道"
|
|
16
|
+
# 请求方式:
|
|
17
|
+
# jev —— Jev 原生接口,POST {base_url}/v1/decide,state + questions 直接进请求体。
|
|
18
|
+
# chat_completions —— OpenAI 兼容接口,POST {base_url}/chat/completions,
|
|
19
|
+
# base_url 与 [image_gen] / [tts_api] 同口径(填到 /v1);
|
|
20
|
+
# 同一份 state + questions 作为 user 消息发出,从返回内容里解析 answers。
|
|
21
|
+
# onejev —— 本机自部署的 OneJev 服务,POST {base_url}/v1/systemone,
|
|
22
|
+
# 请求与响应形状与 jev 相同;base_url 指向本地服务(见下方 [local])。
|
|
23
|
+
mode = "jev"
|
|
24
|
+
# 接口基础地址:jev / onejev 填站点根下的 API 前缀(不含 /v1/decide、/v1/systemone);
|
|
25
|
+
# chat_completions 按 OpenAI 兼容口径填到 /v1(不含 /chat/completions)。
|
|
26
|
+
base_url = "https://jevtypesafeai.com/api"
|
|
27
|
+
# 内联密钥(可留空,改用下面的环境变量)。
|
|
28
|
+
api_key = ""
|
|
29
|
+
api_key_env = "JEV_API_KEY"
|
|
30
|
+
# 决策模型:jev-latest 跟随最新版本;生产环境建议钉死版本(如 jev-1.13.0)。
|
|
31
|
+
model = "jev-latest"
|
|
32
|
+
enabled = true
|
|
33
|
+
|
|
34
|
+
# 决策模型的功能开关。开关关闭时相关功能走原路径(当前即对话模型审查与本地排序检索)。
|
|
35
|
+
[features]
|
|
36
|
+
# 工具调用审查使用决策模型:开启后 approval.mode = review 的审查请求改走决策模型
|
|
37
|
+
# (同一份待审查负载当 state,问一个 choice 问题直接读回结论),不生成文本也不用
|
|
38
|
+
# 解析模型输出,因此更快。审查不可用时按 fail-closed 拒绝,不退化成对话模型审查。
|
|
39
|
+
tool_call_review = false
|
|
40
|
+
|
|
41
|
+
# 记忆搜索使用决策模型排序:开启后 memory_search 先取更宽的候选池(最多 20 条),
|
|
42
|
+
# 再让决策模型按相关度排序,按各候选项的置信度降序返回,条数仍按调用方给的
|
|
43
|
+
# max_results。决策服务不可用(缺渠道/凭据、超时、响应不可解析)时回退本地排序,
|
|
44
|
+
# 检索工具不会因此失败。
|
|
45
|
+
memory_search_rerank = false
|
|
46
|
+
|
|
47
|
+
# 知识库检索使用决策模型排序:对 kb_search 同理,候选描述用标题、路径与摘要。
|
|
48
|
+
kb_search_rerank = false
|
|
49
|
+
|
|
50
|
+
# 提问由决策模型自动作答:开启后模型调用 ask_user 且带选项时,不再弹面板等你作答,
|
|
51
|
+
# 而是把提问正文、你本回合的请求与本回合已有的顾问答复交给决策模型,让它选最符合
|
|
52
|
+
# 你意图的一项。没有选项的提问(自由问答)照旧交给你。决策服务不可用时回退到人工
|
|
53
|
+
# 提问,不会替你瞎猜;自动作答会在会话流里留一条提示。
|
|
54
|
+
ask_user_custody = false
|
|
55
|
+
|
|
56
|
+
# 旧一轮工具调用按需淘汰(先标注-后压缩):只裁决「刚变老」的那一批(Agent 又推进了一批
|
|
57
|
+
# 之后,上一批才送审),最新一批永远保留,因此淘汰点贴近上下文尾部、前缀缓存不失效。送审按
|
|
58
|
+
# 「整组」判定——一次调用的请求 + 结果 + 拒绝一起走,协议不会留下半截。送审内容里带上
|
|
59
|
+
# **用户本回合的请求原文**(state.task),判定「还有没有用」以它为准。
|
|
60
|
+
#
|
|
61
|
+
# 判为无用的调用**不会当场离开上下文**:内核先把它当成一次「标注」落一条会话事件
|
|
62
|
+
# (tool_call_evicted),本回合的上下文原样保留原文;到**回合收尾**才把本轮所有标注一次性
|
|
63
|
+
# 移出,且先于工具调用概括与上下文压缩——被淘汰的原文因此不会被概括或压缩摘要再带回来。
|
|
64
|
+
#
|
|
65
|
+
# 送审范围不含记忆与知识库工具(memory_search / memory_read / memory_expand_related /
|
|
66
|
+
# memory_write、kb_search / kb_read / kb_write / kb_append / kb_list)、编辑与替换
|
|
67
|
+
# (write_file / Edit_file)与 git:记忆与知识库给的是跨回合的持久知识,重跑一次未必拿回同一份
|
|
68
|
+
# 内容;写文件与替换文本是已落盘的副作用,记录一旦被删,模型就不知道文件已经变成什么样、也无从
|
|
69
|
+
# 判断后续还要不要接着改;git 的结果是仓库当时的快照,重跑可能落在另一个状态上。
|
|
70
|
+
# read 与 grep **参与送审**:文件内容与检索结果重读重查即可拿回,适合交给决策模型判断。
|
|
71
|
+
# 决策服务不可用(缺渠道/凭据、超时、响应不可解析)时一律保留原文;淘汰结果落成会话事件,
|
|
72
|
+
# 重启后按同一份投影重建同一份上下文。
|
|
73
|
+
tool_call_prune = false
|
|
74
|
+
|
|
75
|
+
# 决策 REST 接口:把决策能力暴露给本机其它程序(CLI 工具、Skill、外部脚本),
|
|
76
|
+
# 它们不必经主模型就能拿到决策结果。大脑(主模型)负责规划,小脑(决策模型)负责
|
|
77
|
+
# 快速判定,两者通过这个接口协同。
|
|
78
|
+
#
|
|
79
|
+
# 端点(成功回 {"data": ...},失败回 {"error": {code, message}}):
|
|
80
|
+
# GET /health 健康检查
|
|
81
|
+
# GET /v1/status 服务与渠道自检(不回传凭据)
|
|
82
|
+
# POST /v1/decide 通用:{state, questions} → {answers, raw}
|
|
83
|
+
# POST /v1/choice 选优:{state, options, instructions?} → {index, answers}
|
|
84
|
+
# POST /v1/rank 排序:{state, candidates, instructions?} → {order, count}
|
|
85
|
+
# POST /v1/review 审查:{payload, fail_closed?} → {approved, reason, detail, confidence}
|
|
86
|
+
#
|
|
87
|
+
# 接口不做鉴权:只要监听地址可达就能直接调用。因此 host 只允许回环地址
|
|
88
|
+
# (127.0.0.1 / localhost / ::1),即只有本机程序能调用。
|
|
89
|
+
# 随 OmniCrawl 启动时自动拉起,本机已有服务则直接复用。
|
|
90
|
+
# 默认关闭。
|
|
91
|
+
[api]
|
|
92
|
+
enabled = false
|
|
93
|
+
host = "127.0.0.1"
|
|
94
|
+
# 端口:与本地 API(8765)和自部署的 OneJev 服务(8766)都错开。
|
|
95
|
+
port = 8767
|
|
96
|
+
|
|
97
|
+
# 自部署(OneJev):在本机跑一份决策模型,不依赖云端服务。
|
|
98
|
+
#
|
|
99
|
+
# 官方发布 0.8B / 4B / 9B / 27B / 27B-FP8 五档(Hugging Face 的 OmniJev/OneJev-*),
|
|
100
|
+
# 由本机 Python 服务 `qev serve` 提供 TypeSafe 兼容接口。设置面板的「结构化决策模型」页
|
|
101
|
+
# 可以一键下载某一档、准备运行环境、启停本地服务,并把决策渠道切到自部署。
|
|
102
|
+
# 权重与虚拟环境都在 model_dir 下(默认 ~/.omnicrawl/onejev),不进工作区。
|
|
103
|
+
[local]
|
|
104
|
+
# 当前部署的尺寸:0.8B / 4B / 9B / 27B-FP8 / 27B。
|
|
105
|
+
# 显存下限大致是 4 / 12 / 24 / 34 / 60 GB;没有独显时只能跑 CPU(很慢)。
|
|
106
|
+
size = "0.8B"
|
|
107
|
+
# 推理设备:auto(有 GPU 用 CUDA)/ cuda / cpu。
|
|
108
|
+
device = "auto"
|
|
109
|
+
# 数据根目录:权重在 <root>/models/、虚拟环境在 <root>/venv/、缓存与日志也在下面。
|
|
110
|
+
# 留空表示默认目录 ~/.omnicrawl/onejev。
|
|
111
|
+
model_dir = ""
|
|
112
|
+
# 决策渠道选了自部署(mode = "onejev")时,是否随 OmniCrawl 启动自动准备本地服务:
|
|
113
|
+
# 本机已有服务在跑(本机所有实例共用一份)就直接复用,不会重复启动;服务常驻,
|
|
114
|
+
# 不随实例退出被回收,要停就在设置页点「停止服务」。
|
|
115
|
+
auto_start = true
|
|
116
|
+
# 启动后等待健康检查的上限(秒):首次加载权重并捕获 CUDA 图,大尺寸会久一些。
|
|
117
|
+
health_timeout_seconds = 600
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# OmniCrawl 默认模型目录
|
|
2
|
+
# 不要在此文件中写入 api_key、token 或其他凭据。
|
|
3
|
+
version = 1
|
|
4
|
+
|
|
5
|
+
[models.default-chat]
|
|
6
|
+
display_name = "OpenAI 主渠道"
|
|
7
|
+
profile = "openai-main"
|
|
8
|
+
model_id = "gpt-5.2"
|
|
9
|
+
protocol = "openai_chat_completions"
|
|
10
|
+
enabled = true
|
|
11
|
+
aliases = ["default", "chat"]
|
|
12
|
+
description = "默认 OpenAI Chat Completions 模型"
|
|
13
|
+
tags = ["default", "tools"]
|
|
14
|
+
context_window_tokens = 128000
|
|
15
|
+
max_output_tokens = 8192
|
|
16
|
+
temperature = 0.7
|
|
17
|
+
# 模型原生视觉:true/false 显式指定该模型(或所属渠道)能否自行读图;
|
|
18
|
+
# 省略时按模型能力判断(设置页「视觉」可按当前模型开关,写入此键)。
|
|
19
|
+
native_vision = false
|
|
20
|
+
sort_order = 0
|
|
21
|
+
|
|
22
|
+
[models.default-chat.capabilities]
|
|
23
|
+
streaming = true
|
|
24
|
+
tools = true
|
|
25
|
+
parallel_tool_calls = true
|
|
26
|
+
reasoning = false
|
|
27
|
+
vision = false
|
|
28
|
+
model_discovery = true
|
|
29
|
+
prompt_cache = true
|
|
30
|
+
|
|
31
|
+
[models.anthropic-main]
|
|
32
|
+
display_name = "Anthropic 主渠道"
|
|
33
|
+
profile = "anthropic-main"
|
|
34
|
+
model_id = "claude-sonnet-4-5"
|
|
35
|
+
protocol = "anthropic_messages"
|
|
36
|
+
enabled = false
|
|
37
|
+
description = "Anthropic Messages 渠道"
|
|
38
|
+
tags = ["tools"]
|
|
39
|
+
context_window_tokens = 200000
|
|
40
|
+
max_output_tokens = 8192
|
|
41
|
+
sort_order = 10
|
|
42
|
+
|
|
43
|
+
[models.anthropic-main.capabilities]
|
|
44
|
+
streaming = true
|
|
45
|
+
tools = true
|
|
46
|
+
parallel_tool_calls = false
|
|
47
|
+
reasoning = true
|
|
48
|
+
vision = true
|
|
49
|
+
model_discovery = true
|
|
50
|
+
prompt_cache = true
|
|
51
|
+
|
|
52
|
+
[models.gemini-main]
|
|
53
|
+
display_name = "Gemini 主渠道"
|
|
54
|
+
profile = "gemini-main"
|
|
55
|
+
model_id = "gemini-2.5-pro"
|
|
56
|
+
protocol = "gemini_generate_content"
|
|
57
|
+
enabled = false
|
|
58
|
+
description = "Gemini Generate Content 渠道"
|
|
59
|
+
tags = ["tools"]
|
|
60
|
+
context_window_tokens = 1000000
|
|
61
|
+
max_output_tokens = 8192
|
|
62
|
+
sort_order = 20
|
|
63
|
+
|
|
64
|
+
[models.gemini-main.capabilities]
|
|
65
|
+
streaming = true
|
|
66
|
+
tools = true
|
|
67
|
+
parallel_tool_calls = false
|
|
68
|
+
reasoning = true
|
|
69
|
+
vision = true
|
|
70
|
+
model_discovery = true
|
|
71
|
+
prompt_cache = false
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# OmniCrawl 子代理设置模板(首次启动自动复制为 subagents.toml)
|
|
2
|
+
# 子代理设置已从 config.toml 完全迁移到本文件;程序只读取 subagents.toml,
|
|
3
|
+
# 不再回退读取 config.toml 的 [subagents] 段。
|
|
4
|
+
version = 1
|
|
5
|
+
|
|
6
|
+
# SubAgent 全局边界:默认关闭;普通角色仅只读,verify 还需单独显式启用。
|
|
7
|
+
[subagents]
|
|
8
|
+
enabled = false
|
|
9
|
+
max_depth = 1
|
|
10
|
+
max_concurrency = 2
|
|
11
|
+
max_tasks_per_batch = 4
|
|
12
|
+
default_timeout_seconds = 3600
|
|
13
|
+
model_request_concurrency = 2
|
|
14
|
+
allow_background = false
|
|
15
|
+
# 仅开放已脱敏父公开上下文的 read_only/verify Fork;默认关闭。
|
|
16
|
+
allow_fork = false
|
|
17
|
+
allow_shared_workspace_writes = false
|
|
18
|
+
allow_worktree = false
|
|
19
|
+
allow_standard_agent = false
|
|
20
|
+
enable_verify_agent = false
|
|
21
|
+
verify_command_timeout_seconds = 120
|
|
22
|
+
task_retention_minutes = 60
|
|
23
|
+
result_summary_chars = 6000
|
|
24
|
+
|
|
25
|
+
# 单独设置每个子代理使用的模型;key 必须与 Agent 定义名一致(如 explore/plan/verify)。
|
|
26
|
+
# model 支持:models.toml key/alias、profile/model_id 或裸 model_id;
|
|
27
|
+
# 缺省或写 inherit 表示沿用父模型(与任务级 model=inherit 语义一致)。
|
|
28
|
+
[subagents.models.explore]
|
|
29
|
+
# model = "default-chat"
|
|
30
|
+
|
|
31
|
+
[subagents.models.plan]
|
|
32
|
+
# model = "default-chat"
|
|
33
|
+
|
|
34
|
+
[subagents.models.verify]
|
|
35
|
+
# model = "default-chat"
|
|
36
|
+
|
|
37
|
+
[subagents.models.general-purpose]
|
|
38
|
+
# model = "default-chat"
|