Ooder A2UI 从难产到重生的深度实践 —— 当 AI 原生编程遇上渐进式披露Harness 如何让不确定的 LLM 输出变成可驾驭的工程系统​Ooder 架构团队 · 2026 年 4 月 30 日 · Java Harness Engineering 渐进式披露 SPI1. 引言A2UIooder 家族中最难产的孩子在 ooder 庞大的技术家族中**A2UIAugmented Autonomous UI**堪称最难产的一个。它的诞生史几乎是一部微缩的 AI 原生编程进化史。1.1 三段式难产历程第一阶段RAD 可视化设计器时代最初的 A2UI 脱胎于传统的 RADRapid Application Development可视化设计器。开发者通过拖拽组件、配置属性来生成界面。这个阶段的核心理念是所见即所得但问题是——它仍然需要人类开发者手动操作。当业务需求爆炸式增长时这种人工配置的方式成为了瓶颈。第二阶段NLP A2UI 引擎的觉醒随着大语言模型LLM的崛起团队开始探索说一句话生成一个界面的可能性。自然语言处理NLP被引入 A2UI用户可以用给我一个带分页的员工列表这样的描述直接生成对应的 UI 组件。这听起来很美好但很快遇到了一个根本性问题LLM 的输出是不确定的。同样的输入可能今天生成 TreeGrid明天生成 FormLayout置信度高低无从得知出错时更是哑巴吃黄连——系统不会告诉你它哪里没把握。第三阶段SkillFlow 与 A2UI 的整合阵痛为了解决纯 LLM 的不可靠性团队引入了 SkillFlow 架构——通过预定义的技能Skill来约束 LLM 的输出空间。TreeGridSkill、FormSkill、ChartSkill……每个技能都是一个精确定义的模具。但新的问题随之而来技能系统和 LLM 引擎之间如何协作当技能无法匹配时是回退到 LLM还是直接报错多个引擎的决策如何融合这一阶段A2UI 面临的是多引擎协作的复杂性危机。1.2 当前版本基于 Harness Engineering 的重构直到 Harness Engineering 方法论的引入A2UI 才真正找到了自己的灵魂。Harness Engineering 不是又一个框架而是一种_工程哲学__它承认 LLM 的不确定性但不放任这种不确定性它接受 AI 的黑盒本质但要求在黑盒外面装上缰绳Harness——置信度仪表盘、渐进式披露开关、多引擎协作协议、反馈学习回路。_图 1A2UI 从 RAD 到 Harness Engineering 的四阶段演进2. AICode 发展的三个阶段与 A2UI 的宿命2.1 阶段一模板式生成Template-Driven早期的 AICode 工具本质上是高级模板引擎。它们根据固定模板填充变量生成代码。优点是确定性高缺点是灵活性低——面对稍微复杂的业务逻辑就束手无策。A2UI 在 RAD 时代就是这个阶段。2.2 阶段二提示工程Prompt EngineeringLLM 出现后AICode 进入了提示工程阶段。开发者精心构造 Prompt试图诱导模型生成正确的代码。这个阶段的核心矛盾是Prompt 的脆弱性——换一个模型、调一个参数结果可能天差地别。A2UI 的 NLP 引擎阶段正是如此。2.3 阶段三Harness 式驾驭Harness-DrivenHarness Engineering 代表了 AICode 的第三个阶段。它不再试图消除不确定性而是将不确定性纳入工程体系进行管理。图 2Prompt Engineering 与 Harness Engineering 的核心差异对比维度Prompt EngineeringHarness Engineering对不确定性的态度试图消除承认并管理输出质量评估主观判断置信度量化失败处理重试/报错渐进降级/澄清请求可解释性黑盒全程透明报告多引擎协作串行回退并行融合学习能力无反馈闭环修正3. Harness Engineering从祈祷式编程到驾驭式工程3.1 什么是 Harness EngineeringHarness驾驭一词借自马术——不是让马消失而是给马配上鞍、缰、镫让骑手能够安全、可控地驾驭这匹力量强大的动物。在 AICode 语境下LLM 就是那匹烈马力量强大但难以预测。Harness Engineering 就是给 LLM 装上缰绳Confidence Thresholds置信度阈值控制让系统知道什么时候该停鞍具Stage Contracts阶段契约每个处理节点都有输入验证、输出验证和失败回退仪表盘Transparency Report透明度报告全程记录系统在想什么训练场Feedback Harness反馈系统让系统从错误中学习3.2 为什么 Harness 是 AICode 的灵魂传统的软件工程建立在确定性之上给定输入 A必然得到输出 B。但 AICode 的核心——LLM——本质上是概率性的给定输入 A得到输出 B 的概率是 85%输出 C 的概率是 10%还有 5% 的概率会胡说八道。Harness Engineering 的灵魂在于它让概率性系统变得可工程化。通过置信度量化、渐进披露、契约验证、反馈学习我们第一次可以对 LLM 说——“我知道你不确定但没关系告诉我你有多确定我们按确定程度来决定下一步。”4. Harness 五层模型给 AI 装上缰绳与仪表盘在 A2UI 的重构中我们设计了 Harness 五层模型图 3Harness 五层模型 —— 从意图理解到反馈学习的完整驾驭体系4.1 第一层意图驾驭Intent Harness职责理解用户到底想要什么。自然语言是模糊的。“做一个员工管理页面”——是要列表表单还是仪表盘Intent Harness 通过多维度分析关键词匹配、上下文推断、历史行为来量化理解程度。// IntentAnalysisStage 的核心逻辑publicHarnessResultJSONObjectprocess(Object input){String userInput(String)input;// 多维度意图分析double keywordConfidenceanalyzeKeywords(userInput);double contextConfidenceanalyzeContext(userInput);double historyConfidenceanalyzeHistory(userInput);// 加权融合double overallConfidenceweightedFusion(keywordConfidence,contextConfidence,historyConfidence);if(overallConfidenceCLARIFICATION_THRESHOLD){// 不够确定直接问用户returnHarnessResult.needsClarification(您需要的是1) 数据列表 2) 录入表单 3) 统计仪表盘,IntentAnalysis);}returnHarnessResult.success(requirement,overallConfidence,IntentAnalysis);}4.2 第二层策略驾驭Strategy Harness职责选择最优的执行策略。A2UI 中有多个引擎可以完成同一个任务A2uiSkill精确匹配置信度高但覆盖率低、SkillsBridge本地规则匹配速度快、LLMInterface通用能力强但成本高、延迟大。Strategy Harness 不是简单地选一个而是并行执行所有可用引擎然后基于置信度做加权融合。4.3 第三层组件驾驭Component Harness职责将策略输出转化为具体的 UI 组件。这一层处理组件选择、属性绑定、事件关联。每个决策都带有置信度标签——“这个组件选择我有 92% 的把握”“这个事件绑定我只有 65% 的把握建议人工复核”。4.4 第四层契约驾驭Contract Harness职责确保每个阶段都说到做到。通过StageContract接口每个 Pipeline Stage 都必须实现输入验证、核心处理、输出验证、失败回退。这是 Harness Engineering 的工程根基——契约化编程。4.5 第五层反馈驾驭Feedback Harness职责让系统从一次性执行变成可学习进化。记录每次执行轨迹、缓存历史结果、应用人工修正、提升后续置信度。5. 渐进式披露当系统说我不太确定时5.1 核心理念渐进式披露Progressive Disclosure是 Harness Engineering 最具用户价值的设计。它回答了一个关键问题当系统不确定时应该给用户看什么传统方案是全有或全无——要么生成完整代码要么报错。Harness 方案是有多少给多少图 4渐进式披露 —— 根据置信度自动决定生成内容的详细程度置信度区间披露级别用户看到的内容0.00 - 0.30骨架只有组件框架没有细节0.30 - 0.60基础核心组件 基本配置0.60 - 0.85完整完整实现含事件、样式0.85 - 1.00优化生产级优化代码5.2 代码实现publicenumDisclosureLevel{SKELETON(0.30,骨架,仅生成组件框架结构),ESSENTIAL(0.60,基础,生成核心组件和基本配置),COMPLETE(0.85,完整,生成完整实现包括事件和样式),POLISHED(0.95,优化,生成优化后的生产级代码);publicbooleanshouldProceed(double currentConfidence){returncurrentConfidenceconfidenceThreshold;}}在 Pipeline 执行过程中每个 Stage 完成后都会检查当前置信度对应的披露级别。如果某个 Stage 的置信度跌破阈值Pipeline 不会直接失败而是返回已生成的部分结果Partial Result附带澄清问题Clarification Questions标记需要人工复核的节点Requires Review这种设计让 A2UI 从要么成功要么失败的二元系统变成了连续谱系的渐进系统。6. 协作式策略多引擎共舞的置信度加权融合6.1 从单选到协作传统多引擎架构通常是串行回退先试试 A不行再试 B再不行试 C。这种模式的缺点是延迟累积、失败隔离差、没有融合。Harness 的CollaborativeHarnessStrategy采用并行执行 置信度加权融合图 5协作式策略 —— 多引擎并行执行按置信度加权融合决策publicHarnessResultObjectexecute(ConversionRequest request){// Step 1: 并行执行所有可用引擎FutureHarnessResultObjectskillFutureexecutor.submit(()-executeSkillsBridge(request));FutureHarnessResultObjectllmFutureexecutor.submit(()-executeLLMInterface(request));FutureHarnessResultObjecta2uiSkillFutureexecutor.submit(()-executeA2uiSkill(request));// Step 2: 收集结果带超时保护HarnessResultObjectskillResultskillFuture.get(SKILL_TIMEOUT,MS);HarnessResultObjectllmResultllmFuture.get(LLM_TIMEOUT,MS);HarnessResultObjecta2uiResulta2uiSkillFuture.get(SKILL_TIMEOUT,MS);// Step 3: 置信度加权融合决策returnmakeFusionDecision(a2uiResult,skillResult,llmResult,request);}6.2 融合决策逻辑融合不是简单的选最高的而是根据业务场景动态决策privateHarnessResultObjectmakeFusionDecision(HarnessResultObjecta2uiResult,HarnessResultObjectskillResult,HarnessResultObjectllmResult,ConversionRequest request){// 优先级1A2uiSkill 高置信度 → 直接使用if(a2uiResult!nulla2uiResult.isReliable()){returna2uiResult;}// 优先级2多引擎都可靠 → 加权融合if(isMultiEngineReliable(a2uiResult,skillResult,llmResult)){returnweightedFusion(a2uiResult,skillResult,llmResult);}// 优先级3部分可靠 → 返回最佳 建议returnselectBestWithSuggestions(a2uiResult,skillResult,llmResult);}7. 反馈闭环让系统从一次性变成可学习7.1 FeedbackHarness 设计publicclassFeedbackHarness{privatefinal ListExecutionTracetraces;// 执行轨迹privatefinal MapString,ListCorrectioncorrectionMap;// 修正记录privatefinal MapString,HarnessResult?historyCache;// 历史缓存publicvoidrecordTrace(String stage,HarnessResult?result,Object input);publicvoidaddCorrection(String stage,Correction correction);publicHarnessResult?applyCorrection(HarnessResult?result,String stage);publicExplainabilityReportgenerateReport();}图 6Feedback Harness —— 从执行到学习到进化的完整闭环7.2 自我修正机制当用户对某个生成结果进行人工修正后系统会记录修正什么 Stage、什么输入、从什么改为什么提升置信度下次遇到类似输入该 Stage 的初始置信度提升缓存结果相同输入直接返回修正后的结果生成报告透明度报告包含所有修正历史这让 A2UI 从一个 Stateless 的生成器变成了 Stateful 的学习系统。8. 代码实战Harness 核心实现解析8.1 HarnessResult让结果会说话publicclassHarnessResultT{privatefinalTdata;// 实际数据privatefinal double confidence;// 置信度 0.0-1.0privatefinal String source;// 来源SKILL / LLM / RULE / HYBRIDprivatefinal ListStringharnessLog;// 驾驭日志privatefinal boolean requiresReview;// 是否需要复核privatefinal ListStringsuggestions;// 改进建议publicbooleanisReliable(){returnconfidence0.85;}publicbooleanneedsClarification(){returnconfidence0.60;}}HarnessResult 解决了 AICode 的核心痛点LLM 输出不再是裸数据而是带有完整元信息的会说话的结果。8.2 NlpHarnessPipeline契约化编排publicclassNlpHarnessPipeline{privatefinal ListPipelineStage?,?stages;privatefinal FeedbackHarness feedbackHarness;privatevoidinitializeStages(){stages.add(newIntentAnalysisStage());// 意图分析stages.add(newComponentSelectionStage());// 组件选择stages.add(newEventDesignStage());// 事件设计stages.add(newStyleGenerationStage());// 样式生成stages.add(newLayoutCompositionStage());// 布局编排stages.add(newCodeGenerationStage());// 代码生成}publicJSONObjectexecute(String userInput){// 每个 Stage 都有输入验证、处理、输出验证、失败回退for(PipelineStage stage:stages){ValidationResult inputValidationstage.validateInput(currentData);if(!inputValidation.isValid()){HarnessResult fallbackstage.fallback(currentData,error);continue;}HarnessResult stageResultstage.process(currentData);if(stageResult.needsClarification()){returncreateClarificationResponse(stageResult);}currentDatastageResult.getData();}}}8.3 TransparencyReport可解释性的工程化publicclassTransparencyReport{publicvoidaddDecisionStep(String stage,String decision,String reason,double confidence);publicvoidrecordEngineUsed(String engineName);publicvoidsetFinalResult(double confidence,String source);// 生成人类可读报告publicStringgenerateHumanReadableReport();// 生成 JSON 报告供系统消费publicJSONObjectgenerateJsonReport();}9. 结语Harness Engineering 是 AICode 的灵魂回顾 A2UI 的演进历程——从 RAD 可视化设计器到 NLP A2UI 引擎到 SkillFlow 整合再到如今的 Harness Engineering 重构——我们走过了一条从确定性幻觉到不确定性驾驭的认知升级之路。9.1 三个核心洞察洞察一LLM 的不确定性不是 Bug是 FeatureHarness Engineering 的伟大之处在于它不再试图消除 LLM 的不确定性而是将其转化为可量化的工程参数。置信度、披露级别、契约验证——这些概念让不确定变得可以计算、可以控制、可以优化。洞察二AICode 的质量不是生成得好不好而是驾驭得好不好一个好的 AICode 系统不是每次都能生成完美代码的系统而是知道自己什么时候确定、什么时候不确定不确定时能优雅降级而不是硬撑失败时能给出清晰的诊断和建议能从错误中学习越用越好这正是 Harness Engineering 所定义的驾驭。洞察三渐进式披露是 AI 与人类的共同语言在传统的软件工程中机器要么完全服从要么完全拒绝。Harness 的渐进式披露创造了一种新的交互范式机器可以试探性地给出部分结果人类可以指导性地提供反馈双方在迭代中共同逼近最优解。9.2 面向未来Harness Engineering 在 A2UI 中的实践只是一个开始。随着多模态模型、Agent 系统、AutoML 的发展Harness 的五层模型可以自然扩展Intent Harness→ 多模态意图理解文本 语音 草图Strategy Harness→ Agent 协作网络多个 AI Agent 的置信度博弈Component Harness→ 动态组件市场实时下载、验证、集成第三方组件Contract Harness→ 形式化验证用数学证明替代单元测试Feedback Harness→ 联邦学习跨用户、跨组织的集体进化9.3 最后的话A2UI 是 ooder 家族中最难产的孩子但也许正是因为这份难产让它成为了最有深度的孩子。Harness Engineering 不是银弹它不能消除 AI 的不确定性但它给了我们一套_与不确定性共处的工程智慧__。_在 AICode 的时代写代码的方式正在发生根本性变革。但有一条工程法则永远不会变好的系统不是不出错的系统而是出错时知道如何优雅处理的系统。Harness Engineering就是让 AI 学会优雅的那根缰绳。