第 8 章 · 01 高级配置 本节摘要:前面七章你已经能把 Strix 跑起来、调好模型、用对扫描模式。本节把旋钮拧到最细——讲透 Strix 的高级配置项:LLM 与推理强度( )、专用的去重模型( )、可选的 Perplexity 联网检索、遥测开关、Docker 镜像与运行时后端、以及沙箱执行/连接超时。重点是让你知道「哪个旋钮管什么、什么时候该调、调错了会怎样」,从而在大型仓库、慢网络、严格合规等真实场景下把 Strix 调到稳定可用。配置调优,是从「能跑」到「跑得稳、跑得省」的关键一跃。 内容来源:原项目文档 ,汉化并套用体系化模板。 ⚠️ 本节所有配置仅影响你自己的 Strix 运行环境,不涉及对他人系统的测试。
本节摘要:前面七章你已经能把 Strix 跑起来、调好模型、用对扫描模式。本节把旋钮拧到最细——讲透 Strix 的高级配置项:LLM 与推理强度(
STRIX_REASONING_EFFORT)、专用的去重模型(STRIX_DEDUPE_MODEL)、可选的 Perplexity 联网检索、遥测开关、Docker 镜像与运行时后端、以及沙箱执行/连接超时。重点是让你知道「哪个旋钮管什么、什么时候该调、调错了会怎样」,从而在大型仓库、慢网络、严格合规等真实场景下把 Strix 调到稳定可用。配置调优,是从「能跑」到「跑得稳、跑得省」的关键一跃。
内容来源:原项目文档
docs/advanced/configuration.mdx,汉化并套用体系化模板。
⚠️ 本节所有配置仅影响你自己的 Strix 运行环境,不涉及对他人系统的测试。
阅读完本节,你应当能够:
STRIX_DEDUPE_MODEL)为什么能省钱、何时该单独配。~/.strix/cli-config.json 或 --config)管理多套环境。STRIX_TELEMETRY)与本地/远程 OTEL 的区别。Strix 的所有配置都通过环境变量或配置文件生效。从作用域看,可以归为三大类:
💡 记忆口诀:「模型怎么调、功能开不开、沙箱怎么跑」。先想清楚要解决哪类问题,再去找对应的旋钮,避免在几十个环境变量里迷路。
这是最常动的一类。核心字段如下:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
STRIX_LLM |
无(必填) | LiteLLM 格式的模型名,如 openai/gpt-5.4、anthropic/claude-sonnet-4-6 |
LLM_API_KEY |
无 | 模型供应商的 API Key;本地模型或 Vertex/Bedrock 这类云鉴权可省略 |
LLM_API_BASE |
无 | 自定义 API 基址,也接受 OPENAI_API_BASE、LITELLM_BASE_URL、OLLAMA_API_BASE |
LLM_TIMEOUT |
300 |
单次 LLM 请求超时(秒) |
STRIX_LLM_MAX_RETRIES |
5 |
瞬时失败时的最大重试次数 |
STRIX_REASONING_EFFORT |
high |
推理模型的思考强度,取值 none/minimal/low/medium/high/xhigh |
STRIX_MEMORY_COMPRESSOR_TIMEOUT |
30 |
上下文压缩(记忆摘要)超时(秒) |
其中最值得专门讲的是 STRIX_REASONING_EFFORT:
high,适合深度扫描,思考链长、更易挖出复杂漏洞,但更慢更贵。medium,这是 quick 模式「快」的原因之一。xhigh 跑极限深度的分析,但要承受更高的 token 消耗与延迟。⚠️ 不要在「省成本」和「准」之间一刀切。一个常见误区是常年挂
low省钱——结果漏洞挖不出来,反而浪费了一整次扫描的算力。正确做法:生产/深度扫描用high,日常快速回归用medium,只在明确的「就是随便看看」场景用low。
渗透扫描会产生大量候选发现(finding),其中很多是重复的(同一个注入点被多个代理反复命中)。Strix 用一个 LLM 调用来判断「这个候选发现是否与已有报告重复」——这是一个廉价、结构化的分类任务。
默认它跑在主模型上,但你可以把它路由到一个更小更便宜的模型,既不影响真正做测试的代理,又能显著省钱:
| 环境变量 | 说明 |
|---|---|
STRIX_DEDUPE_MODEL |
去重模型名;不设则回退到 STRIX_LLM |
DEDUPE_LLM_API_KEY |
去重模型的独立 Key(可选) |
DEDUPE_LLM_API_BASE |
去重模型的独立 API 基址(可选) |
STRIX_DEDUPE_REASONING_EFFORT |
去重模型的推理强度(可选) |
💡 典型用法:主模型用
openai/gpt-5.4这类强模型,去重模型挂一个openai/gpt-4.1-mini之类的小模型。去重只是「比较两段描述像不像」,小模型完全胜任,而它能拦截的重复调用往往占总量的大头——这是单点配置里性价比最高的一项。
| 环境变量 | 说明 |
|---|---|
PERPLEXITY_API_KEY |
启用 Perplexity 联网检索;扫描时可用于 OSINT 与漏洞情报查证 |
联网检索能让代理在遇到陌生组件、新 CVE、特定版本行为时实时查证,而不是只凭训练知识硬猜。对扫历史悠久的内网老系统帮助不大,对扫新框架、新版本的目标价值很高。
| 环境变量 | 默认值 | 说明 |
|---|---|---|
STRIX_TELEMETRY |
1 |
遥测总开关;设为 0/false/no/off 关闭(PostHog、Scarf、OTEL 全关) |
TRACELOOP_BASE_URL |
无 | 远程 OTLP 导出基址;不设则只写本地 |
TRACELOOP_API_KEY |
无 | 远程导出 Key;两者同时设置才启用远程导出 |
TRACELOOP_HEADERS |
无 | 自定义 OTEL 头(支持 JSON 或 k=v,k2=v2),适配 Langfuse/自建网关 |
strix_runs/<run_name>/events.jsonl
⚠️ 本地 vs 远程:
TRACELOOP_*不设时,Strix 仍会把完整的运行遥测写到上面的本地 JSONL 文件;两者都设时,Strix 双写(本地 + 远程)。所以「关掉遥测」和「不要远程上报」是两件事:前者用STRIX_TELEMETRY=0,后者只需不设TRACELOOP_*。
沙箱是 Strix 真实验证的承载体,这里的旋钮直接影响大仓库、慢网络场景下的稳定性。
| 环境变量 | 默认值 | 说明 |
|---|---|---|
STRIX_IMAGE |
ghcr.io/usestrix/strix-sandbox:1.0.0 |
沙箱容器使用的镜像 |
DOCKER_HOST |
无 | Docker daemon 套接字路径;用于远程 Docker 或自定义配置 |
STRIX_RUNTIME_BACKEND |
docker |
沙箱运行时后端 |
STRIX_MAX_LOCAL_COPY_MB |
1024 |
本地目录目标按文件复制的最大体积(MB);超限会提前退出并建议改用 --mount;设为 0 关闭该检查 |
💡 大仓库场景:当你的目标仓库很大(超过 1 GB),默认的「逐文件复制进沙箱」会慢且占空间。此时要么调高
STRIX_MAX_LOCAL_COPY_MB,要么直接用strix --target ./app --mount把目录挂载进去,跳过复制。
| 环境变量 | 默认值 | 说明 |
|---|---|---|
STRIX_SANDBOX_EXECUTION_TIMEOUT |
120 |
沙箱操作的最大执行时间(秒) |
STRIX_SANDBOX_CONNECT_TIMEOUT |
10 |
连接到沙箱容器的超时(秒) |
⚠️ 如果你扫的是大型单体仓库、或沙箱里跑的是
trivy/semgrep这类重型扫描(--timeout 30m级别),默认的 120 秒执行超时一定会误杀。务必把STRIX_SANDBOX_EXECUTION_TIMEOUT调到 300 甚至更高,否则你会在日志里看到大量「沙箱操作超时」,而代理会误以为工具失败。
环境变量适合一次性设置,但当你有多套环境(开发、生产、不同的模型组合)时,配置文件更清爽。Strix 默认读取:
~/.strix/cli-config.json
也可以用 --config 指定自定义文件:
strix --target ./app --config /path/to/config.json
配置文件格式(就是把环境变量塞进 env 字段):
{ "env": { "STRIX_LLM": "openai/gpt-5.4", "LLM_API_KEY": "sk-...", "STRIX_REASONING_EFFORT": "high" } }
💡 实战建议:为不同场景维护几份配置文件——
config-deep.json(高推理强度、长超时、强模型)、config-quick.json(中等推理、短超时、便宜模型 + 小去重模型)。用--config切换,比每次改环境变量可靠得多,也方便纳入版本管理(记得把 Key 换成占位符或读自密钥管理)。
下面是一份按场景速查的配置组合,可直接抄:
# 场景 A:深度扫大型单体仓库 export STRIX_LLM="openai/gpt-5.4" export STRIX_REASONING_EFFORT="high" export STRIX_DEDUPE_MODEL="openai/gpt-4.1-mini" # 去重走小模型 export STRIX_SANDBOX_EXECUTION_TIMEOUT="600" # 给重型扫描留够时间 strix --target ./big-app --mount # 大仓库用挂载 # 场景 B:CI/CD 里的快速回归 export STRIX_LLM="openai/gpt-5.4" export STRIX_REASONING_EFFORT="medium" export STRIX_DEDUPE_MODEL="openai/gpt-4.1-mini" export STRIX_TELEMETRY="0" # CI 里关遥测,日志更干净 # 场景 C:合规环境,只要本地遥测、不上报 unset TRACELOOP_BASE_URL TRACELOOP_API_KEY # 不设即只写本地 JSONL
STRIX_REASONING_EFFORT 是「准 vs 快/省」的核心开关,深度扫用 high、快速回归用 medium,别常年挂 low。STRIX_DEDUPE_MODEL 把「判断重复」这种廉价分类任务路由到小模型,是单点性价比最高的省钱配置。STRIX_TELEMETRY=0 全关;只不设 TRACELOOP_* 则仍写本地 JSONL、不上报远程。--mount 跳过逐文件复制,同时调高 STRIX_SANDBOX_EXECUTION_TIMEOUT,否则重型扫描必被误杀。~/.strix/cli-config.json 或 --config 适合管理多套环境,比环境变量更适合纳入版本管理。配置是把工具调深;下一节我们走进 Strix 的核心机制——技能体系(Skills):看看 agent 在创建时是如何被注入「专家知识」的,以及为什么「最多 5 个 skill」这个数字背后有讲究。