决赛提交材料:演示PPT(内嵌视频)+ 演示视频 + 四份PDF文档 + 原创承诺书
- presentation/决赛现场演示PPT.pptx:官方模板19页,含嵌入的演示视频
- presentation/决赛演示视频.mp4:2分25秒 / 26.9MB(界面演示台实录)
- docs/:项目说明书 / 项目创新说明 / 成员分工及主要贡献说明 / AI及第三方工具使用说明(均为PDF)
- 作品原创承诺书.pdf:按提交说明放置于仓库根目录
Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
MigrationCoder —— 基于大模型 Coding Agent 的复杂移动应用自动迁移与评测
1. 项目简介
复杂移动应用向 OpenHarmony/HarmonyOS 迁移的难点不是语法翻译,而是三类 OS 语义鸿沟: Ability 架构(Activity/Service → UIAbility/ExtensionAbility)、分布式能力适配、 安全权限模型(Android 动态权限 → module.json5 细粒度声明)。
MigrationCoder 从 Android 源码出发,经过五阶段迁移管线(源码分析 → 迁移规划 → 多文件生成 → 真实编译闭环修复 → OS 合规验证与评测),产出可在 HarmonyOS 工程中真实编译出 HAP 的迁移产物, 并给出确定性、可复现的多层量化报告。
决赛阶段三项核心改进(较初赛的实质性提升)
hvigorw assembleHap构建替代静态检查;ArkTS 错误分类学(6 类)驱动定向修复;跨文件错误目标重绑定;缺失文件自增量生成;多轮 Success@k 修复曲线src/pipeline/compiler.py、repair_loop.py、error_taxonomy.pytests/compile_loop/(真实错误日志探针+修复曲线)、tests/raw_logs/(对照实验)005)+ module.json5 权限↔行为一致性矩阵(PERM-001005)+ 分布式采纳三态评估;全部确定性规则,不依赖 LLM 判分src/evaluation/os_conformance/tests/test_os_conformance.py(15 项正反例)、os_conformance_report.jsonsrc/pipeline/context_builder.py、src/benchmark/cascade_attribution.pytests/test_context_and_attribution.py、F 组消融与负结果(README §10.1)、cascade_report.json研究贡献的组织(点 → 面):三项创新不是并列的技巧,而是围绕同一主线的三层结构——
RULE_SOURCES.md),不依赖 LLM 判分;EVALUATION_PRINCIPLES.md)——把全部实验发现(静态高估、编译门禁、指标饱和、口径翻转)系统化为对赛题”评测体系设计”的回答。C1 供证据、C2 供裁决、C3 供方法论——评测体系不是附属产物,而是作品的研究内核之一。
2. 应用场景
tests/compile_loop/probe_logs/,7 类真实错误格式)与规则库可直接用于鸿蒙迁移教学3. 主要功能
migratecompileconformancebenchmarkablationtests/experiments/run_matrix.py支持的 LLM Provider(可插拔,7 种)
4. 系统环境
5. 依赖要求
外部工具链(不在 pip 依赖内):
configs/default.yaml的compiler段填写绝对路径6. 构建方法(工具链配置)
验证:
7. 运行方法
8. 测试方法
tests/test_compiler.pytests/test_repair_loop.pytests/test_os_conformance.pytests/test_context_and_attribution.pytests/compile_loop/tests/raw_logs/tests/experiments/run_matrix.py9. 已知限制
.env(API Key)不入库。10. 实验结果
10.1 实验矩阵总览(每行 = 一次真实迁移 run)
A 组 静态 vs 编译闭环(创新①核心证据,SampleNoteApp 同配置对照)
B 组 Context 消融(编译闭环开启)
C 组 重复性(同配置 3 次):0.847 / 0.855 / 0.884,pass³ = 3/3(波动 ≤0.04)
D 组 跨应用泛化(修复环根因修复前后对照)
E 组 第三方留出应用(非自建真实工程,泛化验证)
@Entry过滤注册)F 组 创新③消融:上游接口注入(各条件 3 次重复,统一指标重算)
G 组 单 Prompt 基线(赛题”必须为 Coding Agent 而非单一 prompt”的对照)
arkts-no-misplaced-imports)@Entry页面约束)H 组 规模压力与预注册实验(假设先于运行锁定,见
PRE_REGISTRATION.md)10.2 场景级与覆盖指标(方向一核心数据,37 场景真实参与评测)
scenario_report.json;场景集随归属标注演进(NAV-001 归入 SN 后为 19)coverage_report.json10.3 端到端迁移演进(开发期真实 run,修复环能力曲线)
10.4 验证分层与边界声明(对”运行时未验证”的正面设计)
本作品按”证据强度分层”组织验证,并对未覆盖的边界做显式声明(而非默认沉默):
tests/compile_loop/previewer_probe/):可启动、参数体系可达,阻塞于 hvigor 预览编译链内部缺陷(addOhmurlToHarAbility),已归档精确阻塞点10.5 初赛基线(静态检查口径,供对照)
初赛方案在 2 个样例应用、27 场景基准:Android 残留率 2.9%(FTP 97.1%)、调用链全满分行。 注:初赛”编译通过”为静态口径;决赛改为真实编译,口径差异正是创新①的动机与证据。
10.6 评测体系设计原则(研究贡献 C3)
六条原则全文见 EVALUATION_PRINCIPLES.md:分层 / 饱和度 / 口径统一 / 机制-噪声分离(预注册,
PRE_REGISTRATION.md)/ 级联归因 / 边界显式化。 一句话概括:本 benchmark 的”区分度”是被设计出来的——饱和指标(场景负向判据、API 覆盖)承担回归 防护,未饱和指标(多轮 Success@k、依赖边完整性)承担方案比较。这直接回应赛题”是否能通过 benchmark 区分不同 pipeline / context 方案优劣”:B 组消融即在该机制下区分出 plan_only 失败(0.576)与 plan+callchain 最优(0.893)。11. 与现有工作的关系
12. 参考文献