大模型底层逻辑(六):Harness 与 Planning

3 阅读2分钟

很多人在使用 AI 时会发现:让它写个短句它很行,但让它开发一个完整的系统,它就会顾头不顾尾,甚至陷入逻辑死循环。这是因为模型本质上是“逐词预测”的,它缺乏对复杂任务的长远构思。

为了解决这个问题,Agent 架构引入了 Harness(运行环境) 来充当“监工”,并赋予模型 Planning(规划) 的能力。

1. Plan:给 AI 的脑子装个“进度条”

在执行复杂任务前,模型不再直接动手,而是先生成一份 Plan

  • 思维链 (CoT): 这就是最简单的 Planning。通过在 Prompt 中加入“一步步思考”,迫使模型在给出最终答案前,先在上下文里加载逻辑路径。

  • 动态修正: Plan 是可交互的。

    • 第一步:模型制定计划(Step 1... Step 2...)。
    • 第二步:Harness 检查计划,甚至请人类确认。
    • 第三步:执行过程中如果 Step 1 失败了,模型会修改剩下的 Plan。

2. Harness:不仅仅是“马具”

Harness(动力外壳/运行环境) 是包裹在 LLM 外面的一层软件系统。模型虽然聪明,但它是不完整的,它不能自发地去调 API 或循环思考。

Harness 的三大核心功能

graph TD
    User((用户指令)) --> Harness[Harness 调度器]
    
    subgraph Engine [循环控制中心]
        Harness --> LLM[LLM 决策]
        LLM --> Action[工具调用请求]
        Action --> Exec[执行器]
        Exec --> Result[执行结果]
        Result -->|回传/重试| Harness
    end

    subgraph Safety [安全与监控]
        Harness --- Token[Token/成本监控]
        Harness --- Guard[Guardrails 安全护栏]
        Harness --- Human[Human-in-the-loop 人工干预]
    end

    Harness --> Final((任务完成))

    style Harness fill:#f96,stroke:#333,stroke-width:2px
    style Engine fill:#f1f1f1,stroke:#333
  1. Loop (循环管理): Harness 会盯着模型。如果模型说“我需要查天气”,Harness 查完后会主动把结果塞回模型嘴里,问:“结果拿到了,下一步你干啥?”
  2. State (状态保持): 现在的模型依然有上下文限制。Harness 负责管理哪些记忆该保留,哪些该丢弃(这涉及到我们之前提过的 Memory 模块)。
  3. Error Handling (容错): 工具调用报错了怎么办?Harness 会捕捉异常并告诉模型:“API 挂了,请尝试换一个方法。”

3. Skill 的本质

为什么说 Skill(技能) 是封装好的经验?

一个 Skill 其实就是一个 “Harness 配置包 + 特定的 Planning 模板”

  • 例子: “代码重构 Skill”。
  • 当你加载这个 Skill 时,Harness 会自动加载一套 Rules(代码规范),并强制模型使用一种特定的 Planning 模式(先写测试用例,再改逻辑,最后跑测试)。

4. 人机协作:Human-in-the-loop

在这一层,Harness 还承担了一个重要定位:断路器。 涉及到高风险操作(如:删除数据库、发送支付指令)时,Harness 会挂起进程,弹出窗口问人类:“AI 计划执行删除操作,你批准吗?”

AI 能够进入生产环境的关键:智能由模型出,责任由系统担。


5. 总结:第六课的心得记录

  • Planning 解决了“鲁莽”: 让模型从“直觉反应”转向“逻辑规划”。
  • Harness 解决了“落地”: 没有这个运行外壳,模型只是一个只会说话的孤岛。
  • 系统化思维: 开发 AI 应用,本质上是写一个强大的 Harness,去管理那个聪明的 LLM。