Skip to content

AnyClaw Cloud Marketplace and Existing Architecture Adaptation Analysis #307

@TheShigure7

Description

@TheShigure7

1. 文档目标

本文档专门回答下面这个问题:

AnyClaw 1.4 为现状基线,如果要新增“独立云端 Skill / Agent / CLI 市场”能力,怎样才能尽量不改原有架构,而是在当前结构上低侵入接入?

因此,这不是一份纯产品文档,也不是完整项目架构说明,而是一份:

  • 现状调研
  • 可复用/可扩展/需新增模块分析
  • 接入路径分析
  • 对现有架构影响分析

文档。


2. 调研范围

本次分析基于 AnyClaw 1.4 当前代码与已有文档,重点查看了:

  • pkg/gateway/gateway_routes_platform.go
  • pkg/gateway/gateway_market_control_api.go
  • pkg/gateway/gateway_market_artifacts_api.go
  • pkg/marketplace/control_plane.go
  • pkg/marketplace/artifacts.go
  • ui/src/features/market/useMarketDirectory.ts
  • 本地 skills、agent profile/config、clihubruntimePool

3. 1.4 当前已经有什么

3.1 已有统一市场对象模型

1.4 已经在 pkg/marketplace 中定义了统一对象:

  • Artifact
  • ArtifactKind
  • Binding
  • Source
  • ControlPlaneView

这说明:

agent / skill / cli 已经被组织进同一套市场视图,不再像 1.2 那样主要分散在 plugin/store/skill 入口里。

结论:

  • 后续不应再创造第二套“云端市场专属对象模型”
  • 应继续沿用 Artifact / Binding / Source

3.2 已有统一市场入口

1.4 已经在 Gateway 上暴露:

  • GET /market/control-plane
  • GET /market/artifacts
  • POST /market/install
  • GET /market/bindings
  • POST /market/bindings

同时还兼容旧市场接口。

结论:

  • 不需要重起一套新的市场路由
  • 新功能应沿用 /market/*

3.3 已有本地安装、绑定、刷新闭环

当前 1.4 已经具备:

  • 安装 skill
  • 安装 agent
  • 安装 cli
  • 保存 binding
  • 应用 binding
  • 刷新 runtime

并且已有:

  • runtimePool.InvalidateAll()
  • runtimePool.InvalidateByAgent(...)

结论:

  • 新功能不需要重做“本地落地链”
  • 更合理的是继续复用现有安装/绑定/刷新闭环

3.4 已有市场 UI 消费层

前端已经消费:

  • /market/control-plane
  • /market/artifacts
  • /market/install
  • /market/bindings

并且已经区分:

  • agent / skill / cli
  • local / cloud

结论:

  • 新功能不需要重做市场页
  • 重点是补齐市场页背后的数据与决策能力

4. 1.4 当前缺什么

尽管 1.4 已经有统一市场控制面,但它目前更像:

本地统一市场消费层

而不是:

对接独立云端 Registry 的正式市场客户端

当前主要缺下面 4 块。

4.1 缺少远端目录客户端

还没有一个正式的:

  • Remote Catalog Client

来对接未来独立云端 Registry 的目录接口。

缺失后果:

  • 远端来源接入分散
  • 新来源不易标准化

4.2 缺少远端检索层

还没有一个正式的:

  • Remote Retrieval Client

来承接:

  • fulltext
  • tag/filter
  • vector retrieval
  • hybrid retrieval

缺失后果:

  • 文档里的“向量命中 / 混合检索”没有模块落点
  • 云端检索无法和本地聚合器明确解耦

4.3 缺少本地最终决策层

还没有一个正式的:

  • Local Selector

来负责:

  • 本地硬过滤
  • 风险检查
  • 兼容性判断
  • Auto / Ask / Block

缺失后果:

  • 只能列出和安装
  • 还做不到真正的静默安装控制

4.4 缺少安装回执与已安装索引

还没有统一记录去表达:

  • 这个包来自哪个远端来源
  • 下载了哪个版本
  • checksum/signature 是什么
  • 安装到了哪里
  • 是否可升级/回滚

缺失后果:

  • 后续升级/回滚/审计能力薄弱

5. 可复用、需扩展、需新增模块清单

这部分是整份文档最重要的内容,因为它直接体现:

好的架构接入新功能,不需要大改主骨架。

5.1 可复用模块

模块 当前所在位置 复用方式 为什么可以直接复用
Gateway /market/* 入口 pkg/gateway 直接复用 已有统一市场 HTTP 入口
Artifact / Binding / Source pkg/marketplace 直接复用 已有统一市场对象模型
SkillsManager 本地能力层 直接复用 skill 安装后仍落到原 skill 系统
Agent Profiles / Config 配置层 直接复用 agent 安装后仍通过 profile/config 接入
CLIHub CLI 能力层 直接复用 cli 安装后仍由 CLIHub 管理
runtimePool 刷新入口 运行时层 直接复用 已有刷新运行时能力
市场 UI 页面骨架 ui/src/features/market 直接复用 已有市场展示与交互壳子

5.2 需扩展模块

模块 原职责 扩展点 影响范围
Artifact Aggregator / 条目聚合器 聚合 local/cloud 条目 增加独立 Registry 来源;增加远端检索候选和 score;增加 trust/risk/compatibility 字段 影响 /market/artifacts 的 cloud 聚合逻辑
Market Artifacts API / 市场条目接口 返回市场条目列表 增加 filters、paging、retrieval metadata、score 透出 影响前端查询参数和返回结构
Artifact Installer / 条目安装协调器 按 kind 分流安装 增加本地选择器、下载校验、安装回执 影响安装链,但不改变最终落地位置
Binding Repository / 绑定存储器 存储 binding 增加来源/version/receipt_ref 关联 影响 binding 记录结构
Binding Applier / 绑定应用器 将 binding 写回本地配置 增加来源上下文与细粒度 target 控制 影响 binding 应用逻辑
Control Plane Builder / 控制面构建器 输出市场蓝图 增加独立 Registry 来源、检索能力、策略能力说明 影响 /market/control-plane 返回内容
Runtime Refresh Coordinator / 运行时刷新协调器 安装/绑定后刷新运行时 增加“静默安装后恢复执行”的挂点 影响执行后恢复体验
Agent/Skill/CLI Source Adapter / 来源适配器 将来源映射成 Artifact 增加远端 Registry 协议映射 影响 cloud 条目质量与统一性

5.3 需新增模块

模块 为什么必须新增 接入位置
Remote Catalog Client / 远端目录客户端 1.4 没有正式 Registry 客户端 pkg/marketplace/remote
Remote Retrieval Client / 远端检索客户端 1.4 没有 fulltext/tag/vector/hybrid 召回层 pkg/marketplace/remote
Local Selector / 本地选择与静默安装策略器 1.4 没有本地最终决策层 pkg/marketplace/selector.go
Install Receipt & Installed Index / 安装回执与已安装索引 1.4 缺远端安装回执、来源版本索引 pkg/marketplace/install_receipts.go

6. 模块之间怎么对接

不只是看“有哪些模块”,更要看“请求怎么穿过这些模块”。

6.1 市场浏览链

  1. Market Shell UI
  2. Gateway /market/artifacts
  3. Artifact Aggregator
  4. Remote Retrieval Client
  5. 云端 Search / Retrieval Service
  6. 返回候选与 score
  7. Artifact Aggregator 统一成 Artifact
  8. 返回 UI

说明:

  • Gateway 主结构不变
  • 扩展点主要在聚合器的 cloud 分支

6.2 手动安装链

  1. Market Shell UI
  2. Gateway /market/install
  3. Artifact Installer
  4. Local Selector
  5. Remote Catalog Client
  6. 云端 Catalog / Distribution
  7. 本地落地到:
    • SkillsManager
    • Agent Profiles / Config
    • CLIHub
  8. Install Receipt & Installed Index
  9. 返回安装结果

说明:

  • skill/agent/cli 的最终落地系统不变
  • 新增的是选择器、目录客户端和回执系统

6.3 绑定启用链

  1. Market Shell UI
  2. Gateway /market/bindings
  3. Binding Applier
  4. Binding Repository
  5. Runtime Refresh Coordinator
  6. runtimePool / MainRuntime

说明:

  • binding 机制本身不变
  • 扩展的是 binding 上下文和刷新粒度

6.4 自动补能链

  1. 任务/聊天入口
  2. 执行编排发现缺能力
  3. Remote Retrieval Client
  4. 云端 Search / Retrieval Service
  5. Local Selector
  6. Artifact Installer
  7. Install Receipt
  8. Binding Applier
  9. Runtime Refresh Coordinator
  10. 原任务恢复执行

说明:

  • 这是 1.4 目前没有完整做出的新链路
  • 但仍然复用现有市场安装与绑定能力

7. 为什么这体现了“好的架构不用大改”

这件事不能只靠口头说,要靠事实证明。

这里有 4 个证据:

证据 1:入口没变

仍然使用:

  • /market/control-plane
  • /market/artifacts
  • /market/install
  • /market/bindings

证据 2:核心对象没变

仍然使用:

  • Artifact
  • Binding
  • Source

证据 3:能力落地方式没变

仍然是:

  • skill -> SkillsManager
  • agent -> Agent Profiles / Config
  • cli -> CLIHub

证据 4:运行时刷新机制没变

仍然使用:

  • runtimePool.InvalidateAll()
  • runtimePool.InvalidateByAgent(...)

所以可以得出结论:

AnyClaw 1.4 的当前架构具备较好的扩展性。新增云端市场功能时,不需要重写 Gateway、Runtime、Skill、Agent、CLI 主体系统,只需要在既有扩展点上新增少量模块,并增强少量连接点。


8. 这个新功能对现有架构产生什么影响

8.1 对 Gateway 的影响

  • 不改 Gateway 主体组织方式
  • 只增强 /market/* 的语义和返回字段

8.2 对 marketplace 域层的影响

  • 从“本地统一市场控制面”
  • 升级成“本地市场客户端”

主要新增:

  • 远端目录
  • 远端检索
  • 本地选择器
  • 安装回执

8.3 对本地能力层的影响

  • skill/agent/cli 的本地落地方式不变
  • 只是市场安装结果要接入原有能力层

8.4 对运行时的影响

  • 安装后需要按粒度刷新 runtime
  • 自动补能需要在执行编排处新增“调用市场”的入口

这说明:

  • 运行时确实会受影响
  • 但影响点是明确、有限、可控的

9. 最终结论

基于 AnyClaw 1.4 的现状,可以得到一个明确判断:

  1. 1.4 已经有统一市场控制面雏形。
  2. 它已经适合承接 agent / skill / cli 统一市场能力。
  3. 新增云端市场功能时,最合理的路线不是重做一整套新架构,而是:
    • 复用现有 /market/*
    • 复用 Artifact / Binding
    • 复用本地 skill/agent/cli 落地链
    • 在聚合、检索、决策、回执四处补新模块

一句话总结:

1.4 为基线时,AnyClaw 新增云端市场功能并不需要大改原有架构;更合理的路线是把 1.4 已有的统一市场控制面升级为“本地市场客户端”,再通过远端目录、远端检索和本地选择器把独立云端 Registry 接进来。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions