基于昇腾(Ascend)与AtomGit AI联合举办的「昇腾 Model Agent 模型适配大赛(第二季)」,其核心目标是开发能够理解用户自然语言指令,并自动在安卓应用(如小红书、抖音)中执行任务或生成内容的AI Agent。其技术实现主要遵循端云协同的架构。

###核心架构与工作流程

整个系统的工作流程可以概括为:云端理解与规划 -> 端侧轻量化执行。具体步骤如下表所示:

阶段 执行位置 核心功能 关键技术/组件
1. 指令理解与任务规划 云端服务器 解析用户自然语言指令(如“在小红书发布一条关于杭州西湖的笔记”),将其分解为可执行的原子操作序列。 云端大语言模型(LLM),利用昇腾NPU进行加速推理。
2. 指令生成与下发 云端 -> 安卓端 将规划好的原子操作序列,转化为安卓系统可识别的自动化指令(如UI操作坐标、文本输入)。 任务规划器,指令编码器。
3. 端侧轻量模型推理 安卓设备端 运行轻量化模型,用于实时理解当前App界面状态,辅助精准执行云端下发的指令。 端侧轻量化模型,使用昇腾NNRT(Neural Network Runtime)进行高效推理。
4. 自动化执行与内容生成 安卓设备端 通过自动化框架(如AccessibilityService)执行指令,操作目标App(小红书/抖音),完成内容发布、搜索等任务。 安卓自动化框架,虚拟身份注入,受控搜索服务。

关键技术解析

1. 应用直达与虚拟身份

系统需要预先配置目标应用(如小红书、抖音)的包名和主页Activity,实现“直达”操作。同时,为执行自动化操作,需在设备上注入一个“虚拟身份”,该身份拥有必要的权限,但与实际用户账号隔离,以确保安全和合规。

2. 受控搜索

对于“搜索”这类需要访问外部信息的操作,系统并非让Agent直接访问公网,而是通过一个白名单后端服务进行。Agent将搜索请求发送至该服务,服务返回结构化结果,再由Agent填入App的搜索框。这实现了搜索能力的可控、可审计。

3. 端云协同推理

  • 云端:负责复杂的意图理解和任务分解,利用大模型能力强和昇腾NPU算力高的优势。
  • 端侧:负责实时环境感知和指令执行,利用轻量化模型和昇腾NNRT实现低延迟、高能效的推理。

代码示例:端侧指令执行框架

以下是一个高度简化的示例,展示安卓端如何接收云端指令并模拟UI操作。实际实现会复杂得多,并涉及与轻量化模型的交互。

// 示例:一个简单的指令执行服务(基于AccessibilityService)
public class ModelAgentService extends AccessibilityService {
    private static final String TAG = "ModelAgentService";

    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {
        // 监听界面变化,用于辅助决策当前状态 }

    @Override public void onInterrupt() {}

    // 执行从云端下发的原子操作指令 public void executeAction(ActionCommand command) {
        AccessibilityNodeInfo rootNode = getRootInActiveWindow();
        if (rootNode == null) return;

        switch (command.getType()) {
            case CLICK:
                // 根据资源ID、文本或坐标查找并点击节点 List<AccessibilityNodeInfo> targetNodes = rootNode.findAccessibilityNodeInfosByViewId(command.getTargetId());
                if (!targetNodes.isEmpty()) {
                    targetNodes.get(0).performAction(AccessibilityNodeInfo.ACTION_CLICK);
                }
                break;
            case INPUT_TEXT:
                // 向焦点节点或指定节点输入文本
                AccessibilityNodeInfo inputNode = ... // 查找输入框节点 Bundle args = new Bundle();
                args.putCharSequence(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE, command.getText());
                inputNode.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, args);
                break;
            case SCROLL:
                // 执行滚动操作 rootNode.performAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD);
                break;
            case LAUNCH_APP:
                // 启动目标应用,如小红书或抖音 Intent launchIntent = getPackageManager().getLaunchIntentForPackage(command.getAppPackageName());
                if (launchIntent != null) {
                    launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    startActivity(launchIntent);
                }
                break;
        }
    }
}

// 云端下发的指令数据模型示例
class ActionCommand {
    enum ActionType { CLICK, INPUT_TEXT, SCROLL, LAUNCH_APP }
    private ActionType type;
    private String targetId; // 例如:”com.xiaohongshu:id/post_btn“
    private String text;     // 要输入的文本内容
    private String appPackageName; // 如:”com.xiaohongshu“

    // getters and setters...
}

内容生成场景应用

结合上述技术,针对小红书、抖音的内容生成场景,一个典型的工作流如下:

  1. 用户指令:“用我的抖音账号,发布一个关于‘昇腾AI芯片’的短视频,并带上#科技话题。”
  2. 云端解析与规划:LLM将指令分解为:[启动抖音] -> [点击‘+’号] -> [选择相册中指定视频] -> [输入描述文案‘...’] -> [添加话题‘#科技’] -> [点击发布]
  3. 指令下发与端侧执行:云端将操作序列下发至安卓端的Model Agent。Agent依次执行每个步骤,期间可能调用端侧轻量模型确认界面元素,最终完成视频发布。

总结:该技术方案通过端云协同,将大模型的复杂推理能力与端侧的实时操作能力结合,实现了自然语言到安卓App(特别是小红书、抖音等媒体平台)自动化内容生成与操作的无缝衔接。


参考来源

 

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐