Strix 使用本地模型时工具调用被输出为纯文本导致扫描停滞怎么排查?

发布时间:2026/9/11 18:12:56
Strix 使用本地模型时工具调用被输出为纯文本导致扫描停滞怎么排查?
Strix 使用本地模型时工具调用被输出为纯文本导致扫描停滞怎么排查【免费下载链接】strixOpen-source AI penetration testing tool to find and fix your app’s vulnerabilities.项目地址: https://gitcode.com/GitHub_Trending/strix/strix用 Strix 跑本地模型Ollama、LM Studio、vLLM 或 llama.cpp 自建的推理服务时如果扫描中途卡住、代理反复请求模型却始终没有实际进展最可能的原因不是模型能力不够而是推理服务器把工具调用当成普通助手文本吐了出来。本文针对这个症状给出判定依据和分服务器的修复步骤最终目标是让端点返回结构化的tool_calls而不是把调用泄露成纯文本。前提是你已经按本地模型方式配置好 Strix。以 Ollama 为例配置长这样LM Studio、vLLM 等 OpenAI 兼容端点则把LLM_API_BASE换成对应端口# Ollama export STRIX_LLMollama/qwen3-vl export LLM_API_BASEhttp://localhost:11434 # LM Studio / OpenAI 兼容端点 export STRIX_LLMopenai/local-model export LLM_API_BASEhttp://localhost:1234/v1 # 按实际端口调整先确认是不是工具调用变成了纯文本Strix 完全由工具驱动每个有效的轮次都必须是一次原生函数/工具调用。如果推理服务器把工具调用作为纯文本、而不是结构化的tool_calls字段返回Strix 就看不到任何可执行的调用代理不会真正推进——它会重新提示模型补一个工具调用直到重试耗尽后就放弃。文档明确指出这类问题几乎都是推理服务器的配置问题不是模型问题也不是 Strix 的问题。判断方法是看模型输出的内容。出现下面这种把调用当文字打印出来的形态就说明命中了这个问题tool_call{name: exec_command, arguments: {cmd: nmap ...}} exec_command(cmdnmap ..., timeout180) {action: exec_command, params: {cmd: nmap ...}}上面是 docs/llm-providers/local.mdx 里给出的症状示例。正确配置的端点要么返回结构化调用、要么直接拒绝请求——绝不会把调用泄露为文本。按推理服务器修复让工具 token 被解析成结构化 tool_calls修复点在推理服务器一侧它必须被配置成把模型的 tool token 解析成结构化tool_calls。按你实际跑的服务器选对应分支。llama.cppllama-server用--jinja启动并提供与模型匹配的 tool-use 聊天模板--chat-template/--chat-template-file。较新的构建默认启用--jinja——如果你的没有先升级。对思考模型对齐或关闭推理--reasoning-format、-rea off以免破坏工具调用解析。较低的温度如--temp 0.2能提高工具调用的可靠性。Ollama使用较新版本的 Ollama以及模板接了工具的模型。现代 Ollama 会在模板不支持工具时直接拒绝工具tools param requires --jinja flag。对推理模型如 qwen3关闭模型的thinking模式——thinking 开着时工具调用经常被推进文本content里而不是结构化的tool_calls字段。在 Ollama 侧关闭用非思考的模型变体或在模型参数 /Modelfile里写think: false。把num_ctx提到至少 16k–32k。Strix 会发送较大的系统提示加很多工具 schema在 Ollama 默认的小上下文下工具定义会被截断出提示模型随后停止输出有效调用。短测试提示可能看着没问题、真实扫描却会失败所以要显式设置而不是靠一次快速检查去推断。vLLM用--enable-auto-tool-choice启动配一个匹配的--tool-call-parserhermes、qwen3_xml或llama3_json推理模型再配一个匹配的--reasoning-parser。三条通用建议对开放权重模型把采样温度降到大约 0.2–0.6视模型家族而定能明显减少格式错误的工具调用——在服务器端或模型参数里设置。验证修复与模型能力限制修完之后核心判断点还是回到那一条端点要么返回结构化调用、要么直接拒绝请求绝不会把调用泄露成文本。短测试提示可能看起来正常、真实扫描却失败原因就是上面的上下文截断所以不要只用快速测试下结论显式把num_ctx设到位再跑真实扫描。最后要留意模型规模带来的硬限制即使配置正确小于约 30B 的小模型产生格式错误或文本形态工具调用的频率也远高于前沿模型要获得可靠的代理行为应优先选能力足够的模型。本地模型里文档推荐 Qwen3 VL、DeepSeek V3.1、Devstral 2对关键评估文档更建议直接用 Claude 4.5 Sonnet 或 GPT-5 这类云模型——本地模型只应在隐私是绝对优先时才用。【免费下载链接】strixOpen-source AI penetration testing tool to find and fix your app’s vulnerabilities.项目地址: https://gitcode.com/GitHub_Trending/strix/strix创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考