Skip to content

[book-flight-ai-agent] 默认 LLM_MODEL=qwq 门槛较高,建议补充模型推荐和 fallback 说明 #1085

@Harry33t

Description

@Harry33t

问题描述

我在本地测试 book-flight-ai-agent sample 时,发现 .env.example 中默认模型为:

LLM_MODEL = qwq

qwq 模型参数量较大,对本地机器的显存/内存要求较高。对于普通开发者电脑来说,直接按照 README 跑这个 sample 可能会遇到模型无法加载、响应很慢,或者 Agent 行为不稳定的问题。

我本地使用较小模型 qwen3:4b 测试时,服务可以启动,HTTP/SSE 接口也能返回内容,但模型没有正确触发订票工具,而是把用户的查票请求判断为不相关任务。

请求:

curl -X POST http://127.0.0.1:8080/api/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "帮我查明天从北京到上海的航班", "bin": ""}'

返回的 SSE 流中出现了类似内容:

**Thought**: Greeting task is unrelated.
**Action**: ```json { "method": "TaskUnrelated", "params": {} } ```

说明小模型虽然能跑通接口,但不一定能稳定完成 Agent 工具调用流程。

测试环境

OS: Windows 11
Go: 1.25
Docker Desktop
Ollama: qwen3:4b
Sample: book-flight-ai-agent

复现步骤:

进入 book-flight-ai-agent 目录:

cp .env.example .env

将 .env 中模型改为本地可运行的小模型:

LLM_MODEL = qwen3:4b
LLM_URL = http://127.0.0.1:11434

启动 server:

go run ./go-server/cmd/server.go
启动 frontend:
go run ./go-client/frontend/main.go

调用聊天接口:

curl -X POST http://127.0.0.1:8080/api/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "帮我查明天从北京到上海的航班", "bin": ""}'

实际结果

服务可以启动,接口可以返回 SSE 流,但较小模型可能无法稳定触发 SearchFlightTicketTool,导致 demo 的核心订票流程无法完整展示。

同时,README 中没有说明:

  1. 推荐使用多大参数量的模型;
  2. 最低可用模型配置;
  3. 普通开发者机器跑不动 qwq 时应该怎么办;
  4. 是否有 mock/fallback 模式可以绕过 LLM,直接验证 RPC 和工具链路。

预期结果

README 应该补充模型要求和推荐配置,让用户知道:
1、默认模型 qwq 对硬件要求较高;
2、 推荐使用哪些 Ollama 模型;
3、 小模型可能只能验证接口,不一定能稳定完成 Agent 工具调用;
4、如果只是想验证 sample 的 RPC/Web/SSE 链路,是否可以使用 mock 模式或固定响应模式。

建议修复方式

建议在 README 中增加一个模型推荐章节:

Model requirements

This sample uses an LLM to decide when to call flight booking tools.

Recommended models:

Model Purpose
qwen2.5:7b / qwen3:8b Basic local test
qwen2.5:14b Recommended for more stable tool calling
qwq Best reasoning quality, but requires much more memory

Small models may run the HTTP/SSE flow successfully, but may fail to call tools reliably.

也可以考虑增加一个 mock/fallback 模式:

LLM_MODE = mock

当用户只想验证 sample 是否跑通时,mock 模式可以直接返回固定航班查询结果,避免本地模型能力不足导致误判为代码问题。

影响

这个问题不会阻塞代码编译或服务启动,但会明显影响新用户体验。用户可能会误以为 sample 本身有 bug,实际上是默认模型门槛较高或小模型工具调用能力不足。

如果这个修复方向可以接受,我可以继续提交 PR。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions