deveco_harness:基于开源鸿蒙生态的代码生成与模拟器操作项目

提供开源鸿蒙场景的代码生成、模拟器操作等能力,插件化,可以支持不同的CodeAgent平台。

分支1Tags0

deveco_harness

提供开源鸿蒙场景的代码生成、模拟器操作等能力,插件化,可以支持不同的CodeAgent平台。

English · 简体中文

面向 DevEco 与 HarmonyOS 开发工作流的 OpenCode 插件。

功能概览

  • Agents:覆盖 DevEco Code 风格的 build 与 plan,SDD 工作流 Agent(goal,以及 spec-implementation、spec-verify),并支持通过 deveco-harness.jsonc 自定义 Agent。
  • Tools:内置 devecocli(vendor/deveco-cli),用于 build_project、start_app、hdc_log;另有 switch_cwd、arkts_check、plan_write / plan_enter / plan_exit、spec_write;以及与 DevEco Code 对齐的 verify_ui / get_ui_verification_log / save_ui_screenshot(内置 ui-verification-mcp)。
  • 登录:opencode auth login 选择 Huawei DevEco 账号后,凭证写入与 DevEco Code 相同的路径(~/.config/deveco/token.enc、~/.local/share/deveco/auth.json),并自动提供给 devecocli。
  • 内置模型:登录后拉取华为 MaaS 模型目录,注入 OpenCode 的 deveco provider(推理走 https://cn.devecostudio.huawei.com/sse/codeGenie/maas/v2)。标题生成等小模型任务会使用目录里的 small_model。未登录或拉取失败时不注入该 provider。
  • Skills:迁移自 DevEco Code 的 Skills(arkts-error-fixes、arkts-grammar-standards、arkts-runtime-fix、deveco-create-project、deveco-cli、customize-deveco),通过 OpenCode skills.paths 注入。

安装

通过 DevEco CLI 安装(推荐)

deveco plugin deveco-harness

全局安装:

deveco plugin deveco-harness --global

本地开发

先构建本包:

bun install
bun run build

然后在 OpenCode 配置中添加插件:

{
  "plugin": ["file:///absolute/path/to/deveco-harness"]
}

在本工作区(Windows)的本地插件路径示例:

{
  "plugin": ["file:///c:/DiskF/gitcode/oc_omo/deveco-harness"]
}

配置

在以下任一位置创建 deveco-harness.jsonc:

  • ~/.config/opencode/deveco-harness.jsonc
  • <project>/deveco-harness.jsonc
  • <project>/.opencode/deveco-harness.jsonc

完整配置项见 deveco-harness.example.jsonc。

UI 意图校验

verify_ui 在设备上按自然语言测试计划操作应用,并用多模态模型判断截图。模型解析顺序与 DevEco Code 相同:

  1. OpenCode / deveco-harness.jsonc 里为 ui_verification agent 配置的多模态模型(provider/model,并在对应 provider 上提供 options.baseURL 与 options.apiKey)
  2. 环境变量 UI_VERIFY_BASE_URL / UI_VERIFY_API_KEY / UI_VERIFY_MODEL_NAME
  3. 已登录华为账号时的内置模型(task_default_model_map.ui_verification,缺省 Qwen3_VL_235B_A22B_Instruct),请求打到 MaaS /no-stream

权限对齐产品:build 为 ask,spec-verify 为 allow,plan / goal / explore / spec-implementation 为 deny。

OpenCode 配置示例:

{
  "provider": {
    "myprovider": {
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "baseURL": "https://example.com/v1",
        "apiKey": "your-api-key"
      },
      "models": {
        "qwen3-vl-plus": {
          "modalities": { "input": ["text", "image"], "output": ["text"] }
        }
      }
    }
  },
  "agent": {
    "ui_verification": {
      "mode": "subagent",
      "model": "myprovider/qwen3-vl-plus",
      "hidden": true
    }
  }
}

已登录华为账号时,第 3 条会自动生效,不必再配自定义多模态 provider。

架构

遵循 oh-my-openagent 使用的 OpenCode 插件架构:

  1. src/index.ts 默认导出 PluginModule。
  2. src/create-plugin-module.ts 构建 server() 插件并返回 hooks。
  3. config hook 覆盖 OpenCode 的 build / plan / goal Agent,注入 skill 路径,并在已登录时拉取 codeGenie/modelConfig 写入 provider.deveco。
  4. tool hook 通过插件内置的 devecocli 暴露 DevEco CLI 工具,并通过 vendored ui-verification-mcp 暴露 verify_ui 三件套。
  5. auth hook 打开浏览器完成华为账号登录,并把 JWT / access token 按 DevEco Code 格式加密保存;auth.loader 给华为推理请求加 Bearer、Chat-Id,并把非流式请求改写到 /no-stream/chat/completions。

构建会通过 npm install 把 @deveco/deveco-cli@1.2.2 打进 vendor/deveco-cli,并把 ui-verification-mcp@0.0.16 打进 vendor/ui-verification-mcp。运行时优先使用这些副本。

SDD 工作流

插件内置 Spec-Driven Development (SDD) 工作流,包含 5 个阶段:需求分析 → 架构设计 → 任务分解 → 实现 → 验证。

  • Agent:goal(主控)、spec-implementation(实现子 agent)、spec-verify(验证子 agent)
  • Tool:spec_write,用于创建 SDD 文档产物(spec.md、plan.md、tasks.md),内置文档结构验证
  • 资源:命令文件(src/sdd/commands/)、模板文件(src/sdd/templates/)、提示文件(src/sdd/prompts/)均位于 src/sdd/ 目录下,由 Agent 运行时自动解析

在 deveco-harness.jsonc 中可通过 agents.goal 覆盖 SDD Agent 配置。

项目介绍

提供开源鸿蒙场景的代码生成、模拟器操作等能力,插件化,可以支持不同的CodeAgent平台。

https://gitcode.com/openharmony-sig/deveco_harness定制我的领域