OHMCP/docs/OPENHARMONY_MAPPING.md

2.1 KiB
Raw Permalink Blame History

OpenHarmony 落地映射

当前原型定位

当前实现是用户态系统服务原型,核心价值是验证 OS-native MCP 的接口、性能、安全和观测模型。它不依赖真实 OpenHarmony 编译环境,便于初赛评委快速复现。

迁移到 OpenHarmony 的映射关系

当前模块 OpenHarmony 落地形态
Rust Native MCP Broker SystemAbility 或用户态系统服务
/rpc HTTP endpoint IPC/RPC 接口,对应用和 Agent 框架暴露
configs/policy.json 系统权限配置、应用沙箱策略、签名证书绑定
Context Cache 系统服务内存缓存,可扩展为分布式软总线缓存
Mock Tool Runtime OpenHarmony ability、设备服务、外设服务、云边工具
/metrics 接入 HiDumper、HiTrace、系统诊断或性能面板
Python Agent SDK ArkTS / C++ / Rust SDK

SystemAbility 草图

flowchart LR
    A["Agent App / ArkTS"] --> B["MCP Client SDK"]
    B --> C["MCP SystemAbility IPC"]
    C --> D["Auth + Policy"]
    C --> E["Context Cache"]
    C --> F["Tool Adapter"]
    F --> G["Local Ability"]
    F --> H["Distributed Device"]
    F --> I["Cloud / Edge Tool"]
    C --> J["HiTrace / Metrics"]

迁移步骤

  1. 抽象 broker core把当前 HTTP handler 内的 auth、policy、cache、tool dispatch 拆成库。
  2. 替换传输层:将 /rpc 替换为 OpenHarmony IPC / RPC。
  3. 接入权限模型:将 agent_id 绑定到应用 UID、bundle name 或签名证书。
  4. 接入系统观测:将 metrics 输出到系统诊断工具。
  5. 扩展 tool adapter适配本地 Ability、分布式设备服务和云边服务。
  6. 资源受限优化:为低内存设备增加 cache TTL、LRU 和 payload hard limit。

为什么不是内核协议栈

MCP 面向 Agent 与工具调用,语义层级高于网络包和文件系统操作。将其作为用户态系统服务更合适:

  • 可以复用 OS 权限、应用生命周期和 IPC。
  • 不把 JSON-RPC、tool schema、Agent policy 放入内核。
  • 便于更新协议、适配 MCP 生态演进。
  • 仍然能体现 OS-native统一授权、统一缓存、统一观测、统一分发。