昇腾AI赋能智能分享Agent
针对金融行业应用Agent黑客松竞赛基于昇腾Ascend硬件与AtomGit AI官方平台实现一个安卓手机聊天应用使其能通过微信的复制功能及通讯录中的复制操作智能识别并分享文字内容。核心是利用AtomGit上的开源多模态AI模型如Open-AutoGLM构建一个能理解屏幕内容并执行操作的智能体Agent。一、系统架构与实施步骤项目采用“感知-决策-执行”的智能体架构自动捕获安卓系统剪贴板变化理解上下文并触发分享。1. 整体架构与组件| 层级 | 组件 | 职责说明 || :--- | :--- | :--- ||感知层|剪贴板监听服务| 安卓后台服务持续监听系统剪贴板ClipboardManager的内容变化当检测到新文本时触发后续流程。 ||决策层|上下文理解Agent| 调用部署在昇腾NPU上的AtomGit开源模型如GLM-4.6V或GLM系列分析剪贴板文本的语义、来源如判断是否来自微信聊天窗口或通讯录详情页和用户意图是否适合分享。 ||执行层|自动化操作Agent| 基于Open-AutoGLM等模型提供的自动化能力生成操作指令模拟用户点击打开目标应用如微信、短信的分享界面并填入处理后的文本。 ||平台层|昇腾NPU推理服务|在本地或边缘服务器部署AtomGit开源模型利用昇腾CANN进行高性能、低延迟推理为决策层和执行层提供AI能力支撑。 ||应用层|安卓聊天应用| 提供用户界面用于启用/禁用Agent、查看分享历史、配置分享规则等。 |2. 关键实施代码示例a. 安卓端剪贴板监听与内容捕获在安卓应用中注册一个后台服务来监听剪贴板变化。// ClipboardMonitorService.kt import android.app.Service import android.content.ClipboardManager import android.content.ClipData import android.content.Intent import android.os.IBinder import kotlinx.coroutines.*import okhttp3.* // 用于与本地AI服务通信 import java.io.IOException class ClipboardMonitorService : Service() { private lateinit var clipboardManager: ClipboardManager private val client OkHttpClient() private val scope CoroutineScope(Dispatchers.IO) override fun onCreate() { super.onCreate() clipboardManager getSystemService(CLIPBOARD_SERVICE) as ClipboardManager // 添加剪贴板变化监听器 clipboardManager.addPrimaryClipChangedListener(clipboardListener) } private val clipboardListener ClipboardManager.OnPrimaryClipChangedListener { val clipData: ClipData? clipboardManager.primaryClip clipData?.let { if (it.itemCount 0) { val text it.getItemAt(0).text?.toString() text?.let { copiedText - // 当复制到新文本时触发AI分析 scope.launch { analyzeAndShare(copiedText) } } } } } private suspend fun analyzeAndShare(copiedText: String) { // 1. 调用本地部署的昇腾NPU推理服务分析文本上下文和意图 val analysisResult callAIAnalysisService(copiedText) // 2. 如果AI判断需要且适合分享则执行自动化分享操作 if (analysisResult.shouldShare) { executeAutoShare(analysisResult.processedText, analysisResult.targetApp) } } private suspend fun callAIAnalysisService(text: String): AnalysisResult { // 构建请求调用运行在昇腾服务器上的AtomGit模型服务 val requestBody FormBody.Builder() .add(text, text) .add(task, context_and_intent_analysis) .build() val request Request.Builder() .url(http://{your_ascend_server_ip}:8080/v1/analyze) // 昇腾NPU服务地址 .post(requestBody) .build() return withContext(Dispatchers.IO) { try { val response client.newCall(request).execute() // 解析返回的JSON示例{shouldShare: true, processedText: 精简后的文本, targetApp: wechat} val json response.body?.string() // 简化的解析逻辑 if (json?.contains(\shouldShare\: true) true) { AnalysisResult(true, extractProcessedText(json), extractTargetApp(json)) } else { AnalysisResult(false, text, ) } } catch (e: IOException) { e.printStackTrace() AnalysisResult(false, text, ) } } } private fun executeAutoShare(text: String, targetApp: String) { // 使用无障碍服务(AccessibilityService)或UI Automator执行自动化操作 // 此处以启动微信并填充剪贴板文本到输入框为例 val intent packageManager.getLaunchIntentForPackage(com.tencent.mm) intent?.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) startActivity(intent) // 在实际应用中此处需集成Open-AutoGLM的自动化指令来模拟点击、输入等操作 // 例如通过AccessibilityService找到微信聊天输入框并设置文本 // accessibilityService?.performGlobalAction(GLOBAL_ACTION_PASTE) } data class AnalysisResult(val shouldShare: Boolean, val processedText: String, val targetApp: String) // ... onDestroy中移除监听器等 }b. 昇腾NPU服务端上下文理解与决策在昇腾服务器上部署AtomGit的GLM系列模型提供分析API。# ascend_ai_service.py from flask import Flask, request, jsonify import acl # 昇腾计算语言库 import json app Flask(__name__) # 初始化昇腾模型示例需根据实际模型调整 class AscendContextAnalyzer: def __init__(self, model_path): # 初始化ACL加载模型例如GLM-4.6V的量化版本 ret acl.init() self.model_id, ret acl.mdl.load_from_file(model_path) # ... 创建模型描述准备输入输出内存 def analyze(self, text): 分析剪贴板文本。 返回是否分享、处理后的文本、目标应用。 # 1. 预处理文本 processed_text self._preprocess(text) # 2. 使用NPU进行推理判断意图和上下文 # 例如判断文本是否来自微信聊天包含“微信”关键词或特定格式或通讯录包含“电话”、“联系人” input_data self._prepare_input(processed_text) output_data self._infer_on_npu(input_data) # NPU推理 # 3. 解析模型输出 intent self._parse_output(output_data) should_share False target_app # 规则示例如果文本是短消息且非敏感信息则建议分享到微信 if intent.get(source) in [wechat, contacts] and intent.get(is_shareable): should_share True target_app wechat # 默认分享到微信可根据意图调整 # 对文本进行智能摘要或脱敏处理如去除电话号码 final_text self._summarize_or_sanitize(processed_text, intent) else: final_text processed_text return { shouldShare: should_share, processedText: final_text, targetApp: target_app } analyzer AscendContextAnalyzer(/path/to/glm_model.om) app.route(/v1/analyze, methods[POST]) def analyze_text(): data request.form text data.get(text, ) if not text: return jsonify({error: No text provided}), 400 result analyzer.analyze(text) return jsonify(result) if __name__ __main__: app.run(host0.0.0.0, port8080)c. 自动化执行集成利用AtomGit上开源的Open-AutoGLM项目实现安卓端的自动化操作。# 自动化操作配置文件 (auto_operations.yaml) tasks: - name: share_to_wechat steps: action: launch_app params: package_name: com.tencent.mm - action: wait_for_element params: element_id: com.tencent.mm:id/chat_input # 微信输入框ID - action: set_text params: text: {processed_text} # 由AI服务返回的处理后文本 - action: click params: element_id: com.tencent.mm:id/send_btn # 发送按钮在安卓应用中可以调用Open-AutoGLM的引擎来解析并执行上述YAML中定义的任务流。二、需达到的竞赛要求| 要求维度 | 具体指标与说明 || :--- | :--- ||功能完整性| 1.精准触发能可靠监听来自微信聊天窗口和安卓系统通讯录详情页的“复制”操作并捕获文本。2.智能理解利用昇腾NPU加速的AtomGit模型如GLM-4.6V准确判断文本上下文如区分闲聊文字与重要地址、金额信息和分享意图避免误分享。3.自动化执行集成Open-AutoGLM等自动化框架能自动打开微信或指定应用并完成粘贴、发送等操作无需人工干预。 ||性能与体验| 1.低延迟从复制到触发AI分析再到准备分享端到端延迟应** 2秒**其中昇腾NPU推理延迟** 300ms**。2.低功耗安卓端后台监听服务需优化避免频繁唤醒和耗电。 ||安全与合规| 1.隐私保护所有剪贴板内容分析均在本地或受信任的边缘昇腾服务器完成不上传至公网。2.用户授权首次使用需明确告知用户并获取“无障碍服务”和“剪贴板读取”权限。 ||创新与实用性|1.场景贴合针对金融行业可特别优化对金额、账号、合同摘要等敏感信息的识别与脱敏处理。2.可扩展性Agent架构支持轻松扩展新的来源应用如邮件、钉钉和分享目标。 ||工程化与部署| 1.AtomGit开源项目代码、模型适配代码及部署脚本需完整提交至AtomGit AI官方平台并包含清晰的README。2.昇腾适配提供完整的CANN模型转换ONNX-OM与推理代码证明其在昇腾硬件上的高效运行。 |参考来源GLM-5大模型在AtomGit平台的AI应用实践与优化GitCode 10月G-Star Landscape 3.0 更新。AtomGit 全新升级暨人工智能开源社区发布会举行。不仅是技术突围从智谱 AtomGit 开源矩阵看国产开源如何用数据讲故事智谱开源天团登陆 AtomGit4 大模型覆盖多模态全场景微信 openclaw 集成方案让微信成为你的 AI 助手

相关新闻

AI绘图提示词工程:六组景观分析图高效生成模板与工作流

AI绘图提示词工程:六组景观分析图高效生成模板与工作流

之前在做景观设计项目时,经常需要快速生成一系列风格统一、分析逻辑清晰的分析图,从前期场地分析到后期方案推演,每张图都需要耗费大量时间构思和绘制。最近深度使用Midjourney等AI绘图工具后,发现了一套高效生成“六组景观分析图…

2026/10/20 19:04:30 阅读更多 →
dtplyr常见操作示例:filter、mutate、group_by等dplyr动词的高效实现

dtplyr常见操作示例:filter、mutate、group_by等dplyr动词的高效实现

dtplyr常见操作示例:filter、mutate、group_by等dplyr动词的高效实现 【免费下载链接】dtplyr Data table backend for dplyr 项目地址: https://gitcode.com/gh_mirrors/dt/dtplyr dtplyr是一个为dplyr提供data.table后端的R包,它能将dplyr代码自…

2026/10/20 1:31:48 阅读更多 →
AI Agent 编排与云原生 AI 应用部署:上下文与工具的职责边界

AI Agent 编排与云原生 AI 应用部署:上下文与工具的职责边界

AI Agent 编排与云原生 AI 应用部署:上下文与工具的职责边界范围说明: 本文代码与故障路径为演练示例;资源、超时和恢复指标需在目标集群、版本和负载下复核。示例场景:在对 AI 智能体编排服务进行稳定性排查时,观测到…

2026/10/18 4:44:28 阅读更多 →

最新新闻

基于改进鲸鱼算法的六自由度机械臂3-5-3多项式时间最优轨迹规划

基于改进鲸鱼算法的六自由度机械臂3-5-3多项式时间最优轨迹规划

机械臂的轨迹规划,说白了就是在“怎么走”和“走多快”之间做交易。生产线节拍压得紧,机械臂末端就得跑得更快,但速度一上来,关节的冲击和振动也跟着上来,时间久了螺丝都能给你抖松。我做过的一个很典型的项目——基于…

2026/10/20 19:04:03 阅读更多 →
SpringBoot+Vue民宿管理系统源码实战:从跑通到吃透

SpringBoot+Vue民宿管理系统源码实战:从跑通到吃透

这种基于SpringBootVue的民宿管理系统源码项目,这几年一直特别多,到2025年依然有不少人拿着类似标题的代码来找我帮忙跑通、改需求。原因不复杂:民宿短租业务贴近实际、模块边界清晰、技术栈覆盖面够广,作为课程设计、毕业设计或者…

2026/10/20 19:04:03 阅读更多 →
从传统CSS到Tailwind CSS:原子化开发实战心得与避坑指南

从传统CSS到Tailwind CSS:原子化开发实战心得与避坑指南

如果过去两年你一直在写前端,很难没听过 Tailwind CSS 这个名字。我第一次在真实项目里全面用它的时候,周围不少同事的第一反应是:这不就是把内联样式换了个写法?但真正用过大半年、把老项目也一个个迁过来之后,我发现…

2026/10/20 19:04:02 阅读更多 →
基于Django的图书推荐系统:标签画像与信息流反馈闭环实战

基于Django的图书推荐系统:标签画像与信息流反馈闭环实战

1. 为什么图书馆的找书体验,天然就是反人类的1.1 图书馆不是为"找书"设计的,它只是为"存书"设计的先说一个反直觉的观察:图书馆的物理空间和排架规则,本质上是为了"让管理员能精准定位一本书放在哪里&qu…

2026/10/20 19:04:02 阅读更多 →
UART红外接近感应免开发方案:一键学习与集成实战指南

UART红外接近感应免开发方案:一键学习与集成实战指南

做硬件集成的人应该都有这种体会:需求方丢过来一句“加个感应功能”,具体怎么实现、要改多少代码、会不会后期误触发,全都得自己扛。我最近给一个展示柜项目做改版,要求是“有人靠近柜门时,灯带和屏幕依次亮起来”。一…

2026/10/20 19:04:02 阅读更多 →
Playwright实战指南:从Selenium到下一代Web自动化

Playwright实战指南:从Selenium到下一代Web自动化

做Web自动化这些年,身边越来越多的人开始把Playwright当作首选,尤其是接触过旧的Selenium体系之后,再回头看Playwright,确实会有一句“原来早就该这样了”的感叹。写这篇文章的原因很简单,Playwright被称作“下一代Web…

2026/10/20 19:03:02 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →