提供开源鸿蒙场景的代码生成、模拟器操作等能力,插件化,可以支持不同的CodeAgent平台。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 |
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 的
devecoprovider(推理走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),通过 OpenCodeskills.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 相同:
- OpenCode /
deveco-harness.jsonc里为ui_verificationagent 配置的多模态模型(provider/model,并在对应 provider 上提供options.baseURL与options.apiKey) - 环境变量
UI_VERIFY_BASE_URL/UI_VERIFY_API_KEY/UI_VERIFY_MODEL_NAME - 已登录华为账号时的内置模型(
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 插件架构:
src/index.ts默认导出PluginModule。src/create-plugin-module.ts构建server()插件并返回 hooks。confighook 覆盖 OpenCode 的build/plan/goalAgent,注入 skill 路径,并在已登录时拉取codeGenie/modelConfig写入provider.deveco。toolhook 通过插件内置的devecocli暴露 DevEco CLI 工具,并通过 vendoredui-verification-mcp暴露verify_ui三件套。authhook 打开浏览器完成华为账号登录,并把 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 配置。