惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
Jina AI
Jina AI
The Cloudflare Blog
V
Visual Studio Blog
博客园_首页
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
T
Tailwind CSS Blog
博客园 - Franky

博客园 - egreen

在Visual Studio里用原版Copilot交互,烧DeepSeek等国模的Token,让微软和深度求索都为你打工 macOS 上通过二进制安装 Qdrant 并配置为 launchd 服务 cli-proxy-api 工业AI报警插件 ZL.Simulator 工业级多仪器仿真与合成数据平台 SyncBus:让多台设备“齐舞”,告别协同烦恼 ZL.ParamEditor:把WinForms配置从‘苦力活’变成‘享受’! 彻底告别 WinForms SOP 开发的“老大难”! 告别“屎山”代码!Gear.NET:专为 .NET 工业自动化打造的微编排框架 electron 安装失败 【MacOS】彻底卸载Navicat dotnet项目编译运行 pnpm 安装后无法使用 macOS 彻底卸载和重装 Node.js 指南 Serena 最佳实践方案 Create Custom Endpoint in Directus directus 的endpoint功能 CAN通讯上位机开发快问快答与最佳实践 在老项目中Claude code 中使用 ccpm功能 个人注册企业微信及机器人
CLI-Anything + Gear 最佳实践与踩坑修复沉淀
egreen · 2026-03-15 · via 博客园 - egreen

1. 目标与边界

1.1 目标

  • 让用户通过自然语言输入(中文为主)生成可执行的 gear-plan-v1
  • 全链路保持可审计:NL -> plan -> validate -> dry-run -> run -> report
  • 支持工业电检高频场景(绝缘/耐压/功能)并可持久化到 CSV/SQLite。

1.2 边界

  • cli-anything-gear 负责语义规划与编排,不复制 Gear 业务执行逻辑。
  • GearCLI 负责严格执行与结果输出。
  • 原业务代码最小改动,优先在 agent-harness/cli_anything/gear 层完成能力增强。

2. 最终确认的最佳实践(已落地)

2.1 分层职责(强约束)

  1. 语义层:NL -> Plan(结构化)。
  2. 能力层:工位需求与场景能力对齐(capability taxonomy)。
  3. 执行层:GearCLI 只接 plan / 强类型参数,严格执行。

2.2 strict 原则

  • strict 模式不猜测:信息不足/能力缺口/低置信度直接失败。
  • 失败必须返回可修复信息:候选、分数、原因、能力缺口。

2.3 可扩展原则

  • 不做“关键词硬编码大全”。
  • 用“工位意图 + 能力模型 + 动态场景索引”替代设备/命令硬绑定。

3. 关键实现(已完成)

3.1 taxonomy

  • 工位词典:
    • agent-harness/cli_anything/gear/scenarios/station_taxonomy.json
  • 能力词典:
    • agent-harness/cli_anything/gear/scenarios/capability_taxonomy.json

3.2 核心模块

  • 能力定义与推断:
    • agent-harness/cli_anything/gear/core/capability_taxonomy.py
  • 场景动态索引(含 capabilities/riskFlags):
    • agent-harness/cli_anything/gear/core/scenario_index.py
  • NL 编译(能力约束前置评分):
    • agent-harness/cli_anything/gear/core/plan_intent.py
  • Plan 解析(strict 缺口报告 + 持久化检查):
    • agent-harness/cli_anything/gear/core/plan_resolver.py
  • CLI 命令扩展:
    • agent-harness/cli_anything/gear/gear_cli.py

3.3 新增/增强命令

  • scenario-index:输出 tokens/actionKeys/nodeTypes/capabilities/riskFlags。
  • station-taxonomy:输出工位语义映射。
  • capability-taxonomy:输出能力需求映射。
  • plan-from-nl:受控阶段执行(compile->resolve->audit->validate->dry-run->optional run)。

4. 典型踩坑与修复闭环

坑 1:生成三站 plan 但三站场景雷同或不可执行

  • 现象:多站都指向同一个低质量场景,执行失败或超时。
  • 根因:早期仅关键词匹配,未纳入执行风险与能力缺口。
  • 修复:
    1. 引入 capabilities 打标。
    2. 引入 riskFlags(如 sampling:stability_quantity_zero, timeout:long)降权。
    3. 非 strict 模式允许回退到 taxonomy 首选可运行场景。
  • 预防:每次改动后执行中文冒烟测试。

坑 2:plan-compile --strict 通过,但 plan-from-nl --strict 在 resolve 失败

  • 现象:前后阶段结果不一致。
  • 根因:compile 与 resolver 评分模型不一致。
  • 修复:统一 resolver 能力加权逻辑,前后模型对齐。
  • 预防:新增“同一提示词 strict 全链路”回归。

坑 3:strict 对真实可复用场景过度惩罚

  • 现象:重复使用同一可执行场景被强罚,导致低置信失败。
  • 根因:重复路径惩罚过重(-10)。
  • 修复:调整为温和惩罚(-3),允许合理复用。
  • 预防:保留惩罚但不阻断真实工艺复用。

坑 4:能力识别漏判(如 MeasureVoltage/ResTester_1)

  • 现象:出现“能力缺口”误报。
  • 根因:仅精确词命中。
  • 修复:改为“精确 + 子串”识别。
  • 预防:固定样例覆盖不同表达和 token 形式。

坑 5:测试环境不一致导致假失败

  • 现象:python -m cli_anything.gear 报 click 缺失。
  • 根因:解释器/虚拟环境不一致。
  • 修复:E2E 默认调用 cli-anything-gear 二进制(支持 GEAR_CLI_BIN 覆盖)。
  • 预防:统一 .venv + pip install -e .

5. 标准门禁(每次改动必须执行)

5.1 单元回归

PYTHONPATH=agent-harness pytest -q agent-harness/cli_anything/gear/tests/test_core.py

5.2 中文冒烟回归(新增)

  • 样例集文件:
    • agent-harness/cli_anything/gear/scenarios/SMOKE_PROMPTS.zh-CN.json
  • 冒烟测试:
    • agent-harness/cli_anything/gear/tests/test_full_e2e.py::test_chinese_prompt_smoke_e2e
RUN_GEAR_E2E=1 pytest -q agent-harness/cli_anything/gear/tests/test_full_e2e.py::test_chinese_prompt_smoke_e2e

6. 规范化流程(建议固定)

  1. commands --json(能力边界)
  2. plan-from-nl --strict --no-execute(语义到计划)
  3. plan-audit(路径/证据审计)
  4. plan-validate(schema)
  5. plan-dry-run(执行预演)
  6. plan-run(真实执行)
  7. report-compare(回归对比)

7. 防跑偏清单(执行前自检)

  • 是否把自由文本直接交给 GearCLI 执行?(禁止)
  • 是否绕过 strict 且没有人工审查?(禁止)
  • 是否新增能力但未更新 taxonomy?(禁止)
  • 是否修改匹配逻辑但未跑中文冒烟?(禁止)
  • 是否在 harness 里复制 Gear 业务逻辑?(禁止)