想让 Agent 帮小店查配送规则,难点不只是让它启动:它每次能不能算对、会不会碰不该碰的文件、关掉后还能不能找回规则,出了错又怎么发现?我用 OpenClaw 和 Ollama 核对三条虚构订单,并让两款本机模型各跑三次。Gemma4-12B 三轮都答对;Qwen3.8-27B 三轮都漏掉同一项免配送费。这个结果只适用于这组订单和这台电脑,不能拿来给模型做通用排名。
你需要准备
| 准备项 | 本次环境 |
|---|---|
| 电脑 | M1 Max、64GB 内存;模型文件分别约 7.1GB 和 16GB,以本机 Ollama 列表为准 |
| 软件 | OpenClaw 2026.10.1、Ollama 0.35.1;还没装可先看OpenClaw 接 Ollama 的本机安装教程 |
| 练习资料 | 三条虚构订单和一份配送规则,在评测练习包里 |
| 时间和费用 | 已有模型后约 15 分钟;首次下载另算。本次模型在本机运行,OpenClaw 记录的推理 API 费用为 0。下载、磁盘和用电不计入这个数字 |
先把任务写成能核对的答案
Agent 会把任务交给模型,按模型的选择调用工具,再把工具结果交回来继续处理。OpenClaw 的执行循环包含上下文、模型推理、工具执行和回复。要判断它是否可靠,先写下每条订单的标准答案,再让它读取文件。
练习包里有三条订单。正确结果是:A101 在 3 公里范围内,26 元要收 5 元;A102 超出范围,不能配送;A103 在范围内,31 元达到免配送费门槛,但没有星期和时间,不能判断当时是否营业。
把练习包中的 shop-policy.md、orders.csv 和 prompt.txt 放进前一篇教程创建的 $HOME/openclaw-shop-demo 工作区。先完成Agent 与聊天机器人的区别里的本机配置,再使用只读权限。如果按本文的安装环境操作,先切换到安装 OpenClaw 时使用的 Node.js 版本:
nvm use 24.21.0
然后收紧工具权限:
openclaw --profile shop-demo config set tools.allow '["read"]'
openclaw --profile shop-demo config set tools.deny '["write","edit","apply_patch","group:runtime","group:web","group:messaging","browser"]'
openclaw --profile shop-demo config set tools.fs.workspaceOnly true
openclaw --profile shop-demo config get tools
检查结果里 allow 只有 read,workspaceOnly 是 true。工具策略决定 Agent 能调用什么,提示词只是任务要求;OpenClaw 还区分 write 和 apply_patch,所以要分别限制。官方工具策略说明
用独立 session 运行一次:
openclaw --profile shop-demo agent --local --json \
--model ollama/gemma4-12b:latest --thinking off \
--session-id s157-run-1 \
--message-file "$HOME/openclaw-shop-demo/prompt.txt"
再把 session 名改成 s157-run-2、s157-run-3,重复两次。比较另一款模型时,把模型参数改成 ollama/qwen3.8-27b:latest,仍使用同一条提示词。每轮都从同一份文件开始,别把上一轮对话接着用;否则历史上下文会影响比较。评测结果要和练习包里的 expected-results.json 对照。
五件容易出问题的事
1. 稳定:重复运行同一题
同一个任务连续答对三次,比一次“看起来不错”更能说明模型在这件事上是否稳定。三轮也不能代表所有订单;遇到节假日、特殊配送规则或退款争议,要增加对应测试案例。
本次关闭了思考模式,让两款模型使用相同设置。每轮都新开 session,减少旧对话对结果的影响。练习输入直接写明星期和时间,不让 Agent 从系统日期猜营业日。
2. 成本:把推理费和机器成本分开看
本次使用本机 Ollama,OpenClaw 的每轮推理费用记录为 0;电脑耗电、模型占用的磁盘和运行时间仍然存在。若改用云模型,费用取决于模型价格和输入、输出 token;OpenClaw 在有模型定价和用量数据时才会估算费用。Token 用量说明
这次正式对比的三轮中位耗时为:Gemma4-12B 25.8 秒,Qwen3.8-27B 41.0 秒。重复任务可以先关掉思考模式试跑,再用验收结果判断是否够用;不要只看模型参数量或回答速度。
3. 权限:只开放任务用得到的工具
我先把允许工具设为 read,并拒绝写入、补丁、命令执行、联网和消息工具。然后分别让 Gemma 和 Qwen 创建一个测试文件。两者都说明自己没有写入权限,检查工作区时文件也都不存在。
这比在提示词里写“不要写文件”更容易核实。接真实资料前,用虚构文件做一次越权探针;如果你希望 Agent 处理订单,只让它先读副本,别一开始就给真实订单和消息渠道。
4. 记忆:把需要带到新会话的内容存下来
OpenClaw 的长期记忆是工作区里的 Markdown 文件。MEMORY.md 会在新会话开始时加载,日常记录则可以通过记忆检索找回。记忆概览和检索说明列出了两种用法。
我在独立工作区放入一条虚构记忆,开全新 session 后请 Gemma 回答其中的标记和规则。它没调用文件工具就答对了。你可以在隔离工作区把练习包里的 MEMORY.md.sample 复制并改名为 MEMORY.md,再把 memory-probe-prompt.txt 放进同一目录,然后用新 session 测试:
openclaw --profile shop-demo agent --local --json \
--model ollama/gemma4-12b:latest --thinking off \
--session-id s157-memory-test \
--message-file "$HOME/openclaw-shop-demo/memory-probe-prompt.txt"
如果工作区已有自己的 MEMORY.md,请另外建一个临时 profile 来测,别覆盖原文件。
如果要检索每日笔记,先运行 openclaw --profile shop-demo memory status 看当前嵌入模型。我的隔离配置显示 provider 是 openai,而本机没有嵌入模型,所以没有启动索引。只装了本地聊天模型,不代表记忆检索也完全本地;先按官方文档配置本地嵌入,再处理含客户信息的资料。
5. 评测:记录错误,不听模型自评
评测练习包的答案由规则逐条算出,不由模型自己判分。正式三轮里,Gemma4-12B 的 27 个字段全部正确,三轮都通过;Qwen3.8-27B 答对 24 个字段,但三轮都把 A103 的配送费输出为 null。规则明明写着满 30 元免配送,31 元应该是 0 元。
所以这次小店订单核对我会先选 Gemma4-12B,再保留人工复核。若金额必须准确,就把门槛计算交给普通程序,Agent 负责读规则和解释结果;模型连续三次给出同一个错答案,依然是错答案。
| 本机模型 | 文件大小 | 完全正确的轮次 | 正确字段 | 中位耗时 |
|---|---|---|---|---|
| Gemma4-12B | 约 7.1GB | 3/3 | 27/27 | 25.8 秒 |
| Qwen3.8-27B | 约 16GB | 0/3 | 24/27 | 41.0 秒 |
大小来自本机已安装模型列表,量化方式和标签不同会改变下载体积。每轮只核三笔虚构订单;不要把这张小表当成模型通用榜单。
常见问题
本机模型显示费用为零,是不是完全免费?
没有按 token 收取的云端推理费,不代表没有电费、磁盘和时间成本。用云端模型时也要检查输入、输出和缓存 token 的计价方式。
Agent 记住了资料,权限就安全吗?
不是。记忆能保存规则,工具策略才限制读取、写入、联网或发消息。OpenClaw 文档也说明,记忆可以保留审批背景,但不会替权限设置执行控制。
这次结果能说明 Gemma 一定比 Qwen 好吗?
不能。只是在这台电脑、这组虚构订单和当前设置下,Gemma 更适合这项小任务。换成长文分析、代码或图片,应该另做同样可核对的测试。
工具清单
| 工具 | 用途 | 入口 |
|---|---|---|
| OpenClaw | 运行 Agent、管理工具权限和记忆 | 本机安装教程 |
| Ollama | 在本机运行语言模型 | 安装教程 |
| Gemma 4 | 本次订单任务表现较好的候选模型 | 使用前查看模型页及许可 |
| Qwen3.8 | 本次重复测试的对照模型 | 使用前查看模型页及许可 |
本文使用的全是虚构订单,没有接入真实顾客资料、微信或其他消息渠道。要用于商业流程,先核对当前模型和软件许可,再用自己的规则重新做评测。