在 HarmonyOS SDK 26 中,利用全新的 Agent Framework Kit,开发者可以通过约40行代码在端侧快速构建一个具备对话、上下文记忆和流式输出能力的智能体(Agent)。

核心步骤与代码示例

构建一个基础智能体主要涉及三个核心步骤:创建智能体、配置技能(Skill)、以及启动对话。以下是一个完整的 ArkTS 代码示例:

// 1. 导入必要的模块
import { Agent, Skill, AgentBuilder, AgentContext } from '@ohos.agentframework';
import { promptAction } from '@ohos.agentframework'; // 用于处理自然语言指令

// 2. 定义一个自定义技能(Skill)
class MyCustomSkill implements Skill {
  // 技能的唯一标识符 id: string = 'my_custom_skill';
  // 技能的名称描述 name: string = '我的计算器技能';
  // 技能支持的指令或意图描述 description: string = '可以进行简单的数学计算,如加法、减法。';

  // 技能的执行方法,当智能体匹配到意图时会调用此方法
  async execute(context: AgentContext): Promise<void> {
    // 从用户输入中解析意图和参数
    const userInput = context.getInput();
    // 此处应集成自然语言理解(NLU)来解析,为简化示例,假设已解析出操作和数字 // 实际开发中,可使用Intents Kit或集成云端语义理解服务
    if (userInput.includes('加') || userInput.includes('+')) {
      const numbers = this.extractNumbers(userInput);
      const result = numbers.reduce((a, b) => a + b, 0);
      // 通过上下文对象输出结果,系统会托管UI进行流式展示
      context.reply(`计算结果是:${result}`);
    } else {
      context.reply('我目前还无法处理这个请求。');
    }
  }

  // 一个简单的辅助函数,用于从文本中提取数字(示例用)
  private extractNumbers(input: string): number[] {
    const regex = /\d+/g;
    const matches = input.match(regex);
    return matches ? matches.map(Number) : [];
  }
}

// 3. 创建并配置智能体@Entry
@Component
struct AgentDemo {
  private myAgent: Agent | null = null;

  aboutToAppear() {
    // 使用AgentBuilder构建智能体 const builder = new AgentBuilder();
    
    // 设置智能体的基本属性 builder.setName('我的端侧助手')
 .setDescription('一个演示用的简单计算助手');

    // 创建并添加自定义技能实例
    const mySkill = new MyCustomSkill();
    builder.addSkill(mySkill);

    // (可选)添加预置技能或配置多轮对话记忆等高级功能
    // builder.enableMemory(true); // 启用多轮上下文记忆

    // 构建智能体实例 this.myAgent = builder.build();
  }

  // 4. 在UI中触发智能体对话
  build() {
    Column() {
      Button('开始与智能体对话')
        .onClick(() => {
          if (this.myAgent) {
            // 启动智能体对话界面。系统将托管完整的对话UI,包括输入框和流式输出区域。
            // promptAction是触发系统级智能体交互的入口。
            promptAction.start({
              agent: this.myAgent,
              onSuccess: (data) => {
                console.info('智能体对话完成:', data);
              },
              onFail: (error) => {
                console.error('启动智能体失败:', error);
              }
            });
          }
        })
    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
  }
}

关键特性与优势

特性 说明 对应SDK能力
极简集成 约40行核心代码即可完成智能体的创建、技能定义与UI启动。 Agent Framework Kit 2.0
系统托管UI 无需自行实现聊天界面,系统提供完整的对话UI,支持流式输出。 Agent Framework Kit
多轮上下文记忆 通过简单配置即可让智能体记住之前的对话内容。 Agent Framework Kit
自定义技能扩展 通过实现 Skill 接口,可以赋予智能体调用API、处理复杂任务的能力。 Agent Framework Kit 的标准化Skill开发能力
意图调度 可结合 Intents Kit,使智能体能够解析用户指令并拉起其他应用的服务。 Intents Kit

总结借助 HarmonyOS SDK 26 的 Agent Framework Kit,开发者可以通过定义技能(Skill)并利用系统提供的对话框架,以极少的代码量在应用中嵌入智能体能力,实现从“被动应用”到“主动智能服务”的转型。上述示例展示了最基础的集成流程,在实际开发中,还可以结合 Multimodal Awareness Kit(多模态感知)和 Data Augmentation Kit(知识增强)等构建更强大的端侧智能体。


参考来源

 

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐