智能化落地鸿蒙7.0的分水岭,不在Demo能否跑通,而在能否用契约、评测与灰度把能力稳稳推到生产。本文聚焦工程化治理核心:场景筛选、契约校验、评测集构建、权限灰度控制,并给出一个可运行的端到端智能体编排器代码。
一、场景选择:决策树判断哪个功能该智能化
不是所有功能都适合做成智能体能力。用一个简单决策树来过滤:
- 该任务是否需要跨应用协作?否 → 保持传统流程;是 → 进入下一步。
- 该任务是否有明确意图(用户一句话能描述目标)?否 → 暂不智能;是 → 继续。
- 该任务的失败风险是否可控?高风险(如写操作)需要显式授权门控;低风险(如读操作)可自动执行。
以金融场景为例,“查账单并还款”是典型高价值高敏场景:账单读取是低风险读操作,还款是高风险写操作,必须在Skill之间插入显式授权门控。这正是工程化治理要解决的边界问题。
二、治理三件套(必做)
1. 契约校验:每个Skill的参数schema强制校验。缺参即反问用户,避免静默错误。
2. 评测集:把每次真实对话沉淀为样本,改prompt必重跑。每次发版自动执行黄金路径评测,指标掉则回滚。
3. 权限与灰度:高风险动作要求用户显式授权;新版本先放5%流量,观察任务完成率和人工接管率再全量。
三、代码实践:端到端智能体编排器
下面是一段可运行的编排器,把自然语言 → 意图框架路由 → Skill选择 → Skill调用MCP工具 → 返回结果串成一条链。运行`python harmony_agent_orchestrator.py`即可看到完整trace。- class Agent:
- def run(self, query):
- # ① 意图路由
- hit = next((r for r in INTENT_MAP
- if any(kw in query for kw in r["triggers"])), None)
- if not hit:
- return "抱歉,暂未接入该能力。"
- self.trace.append(f"意图框架: 命中 '{hit['intent']}' -> Skill '{hit['skill']}'")
- skill = SKILLS[hit["skill"]]
- # ② 参数抽取
- args = {pn: (m.group(1) if (m:=re.search(pat,query)) else None)
- for pn,pat in hit["param_patterns"]}
- self.trace.append(f"参数抽取: {args}")
- # ③ 调用 Skill(内部可能走 MCP)
- result = skill.invoke(args)
- self.trace.append(f"Skill '{skill.name}' 执行 -> {result}")
- return result
- # 三个样例:关空调(走MCP) / 查天气(走MCP) / 查账单(本地Skill)
- for q in ["关闭卧室的空调","北京今天天气怎么样","帮我查这个月账单"]:
- agent = Agent(); res = agent.run(q)
- print(q, "=>", res)
复制代码
运行后你会看到每条请求都打印出“意图命中 → 参数抽取 → Skill 执行”的完整链路。这正是鸿蒙7.0应用智能化的核心体验:用户只说目标,系统自动跨应用把事办成。而开发者要做的事,从“写流程”变成了“写可被编排的能力契约”。
四、度量协同效果
上线后不能只看“能不能用”,要看三个指标:
- 任务完成率:用户说的事是否真办成了。
- 跨应用跳数:平均要调几个Skill/MCP才完成,越少越好。
- 人工接管率:智能体搞不定时转人工的比例。前两个反映编排质量,第三个反映能力缺口。
建议每个场景建一条“黄金路径”评测,每次发版自动跑,指标掉就回滚——把“智能化”也纳入CI守门,而不是上线后凭感觉。 |