OpenCLI 学习 02:CLI、Harness、Skill 的关系

1. 为什么我会觉得这个项目里的 harness 有点奇怪

因为我之前接触过的 harness,更像是:

  • 一个黑盒环境
  • 给 LLM 设定边界和工具
  • 让 LLM 在里面自己探索、执行、达成目标

而这个项目里的 harness 明显不是这个意思。

2. 这个项目里的 harness 是什么

当前我的理解:

这里的 harness 更像是“站在 Agent 视角,为某个具体软件搭建的一整套能力接入系统”。

它不只是一个脚本,也不只是一个 CLI 文件,而是通常包含:

  • CLI 入口
  • core 业务模块
  • backend 真实软件适配
  • session 状态管理
  • tests
  • README
  • TEST.md
  • SKILL.md

所以它比单纯的 CLI 概念更大。

3. CLI 和 harness 的关系

我当前最认可的说法是:

  • CLI 是对外的能力形态
  • harness 是背后的完整接入实现

也就是说,这个项目表面上在做 CLI,实际上是在做以 CLI 为外在形式的 agent harness。

4. 为什么说 CLI 只是存在形式

因为项目真正关心的不是“黑框交互体验”,而是:

  • 怎么把软件能力抽象出来
  • 怎么把能力按命令树组织
  • 怎么让 Agent 更容易探索和调用
  • 怎么保证结果可测试、可验证

所以 CLI 更像它最终对外暴露的一层皮肤。

5. Skill 在里面扮演什么角色

SKILL.md 不是执行代码,也不是核心实现。

它更像是:

  • 给 Agent 看的使用说明书
  • 告诉 Agent 这个 harness 是干什么的
  • 告诉 Agent 什么时候应该用它
  • 告诉 Agent 命令结构、调用范式、注意事项

所以我现在把三者关系理解为:

  • core/backend:真正干活
  • CLI:把能力暴露出来
  • SKILL:帮助 Agent 理解和使用这套能力

6. 命令树为什么关键

这个项目不是把功能平铺成一堆命令,而是做成命令树,例如:

cli-anything-gimp project new
cli-anything-gimp layer add-from-file
cli-anything-gimp filter add
cli-anything-gimp export render

这样做的好处是:

  • 领域边界更清晰
  • 更像业务模型
  • Agent 更容易探索能力地图
  • 更适合组合成工作流

所以命令树其实是业务模型在 CLI 层的映射。

7. 当前我的一句话总结

这个项目中,harness 是完整接入系统,CLI 是对外能力形式,Skill 是面向 Agent 的说明层,三者共同构成一个可被 Agent 使用的软件能力包装。

Read more

MCP 服务端的隐藏设计:结论性数据如何改变

Agent 的工作方式 我们以为 MCP 服务只是查数据的管道,拆开一看,发现服务端已经把分析结论都算好了。这个发现改变了我对 Agent 架构的理解。 起因:一次对 MCP 服务的逆向探索 最近在研究 MCP(Model Context Protocol)的实际应用,我选了一个真实的商业 MCP 服务 —— 某电商卖家流量分析平台作为研究对象。该服务提供了 27 个工具,覆盖关键词分析、流量运营、广告洞察等领域。 最初的预期很简单:MCP 服务就是一个数据接口,Agent(LLM)调用它拿到原始数据,然后自己分析、得出结论、给用户建议。 实际拆开一看,完全不是这么回事。 第一个发现:返回数据里藏着完整的分析结论 我写了一个 Python 脚本,绕过所有 AI 客户端,直接用

By ladydd

FastAPI 异步任务服务的并发设计演进:从单进程轮询到多 Worker 协程直处理

本文记录了一个 FastAPI 异步任务服务在并发架构上的思考和演进过程。这个服务的本质很简单:接收客户端请求,转发给下游 AI API,把结果存起来供客户端轮询。它不做复杂的业务计算,不做数据聚合,就是一个纯转发层——接活、派活、存结果。正因为场景足够简单,我们才有机会做一次化繁为简的架构妥协,把原本"看起来该用任务队列"的设计砍到只剩三行核心配置。 一、先说清楚场景:我们到底在干什么 这个服务做的事情可以用一句话概括: 客户端提交参数 → 服务转发给下游 AI API → 等结果 → 存 Redis → 客户端来取。 关键特征: * 纯 IO 转发:服务本身不做任何 CPU 密集计算,所有耗时都花在等下游 API 返回。一次调用几秒到几十秒不等,全是网络等待。 * 异步模式:客户端提交任务后立即拿到 task_id,

By ladydd

从连上一个 MCP 服务到理解 AI 系统的工程本质

一次从"会用"到"理解原理"再到"能优化"的完整探索记录。 本文记录了我通过实际动手连接一个远程 MCP 服务(SIF —— 亚马逊卖家流量分析平台),一步步深入理解 MCP 协议机制、LLM 上下文管理、注意力资源分配、以及工具编排优化方案的全过程。 一、起点:连上一个真实的 MCP 服务 什么是 MCP? MCP(Model Context Protocol)是 Anthropic 主导设计的一个开放协议,目的是标准化 AI 应用与外部工具/数据源之间的通信方式。你可以把它理解为"AI 世界的 USB 接口"

By ladydd
陕公网安备61011302002223号 | 陕ICP备2025083092号