Skip to content

wp-a/AIMeetingAssistant

Repository files navigation

智析·MeetingMind

面向 Android 移动办公场景的全场景会议智能体。它以会议录音为入口,把语音转写、图片笔记、可追溯纪要、待办闭环、PPT 生成、日历同步和云端归档串成一条可执行的移动办公流程。

项目定位

智析·MeetingMind 不是单一的录音工具,也不是只会生成摘要的聊天助手。项目目标是做一个 App 内部超级 Agent:用户用手机完成会议记录后,系统自动理解内容、拆解任务、生成交付物,并把结果同步到日历、资料库和云端。

典型场景:

用户:整理今早客户会议内容,并生成一份汇报 PPT。

系统:
1. 读取录音转写与图片笔记
2. 生成带时间戳证据链的可编辑纪要
3. 提取待办、负责人、优先级和截止时间
4. 写入任务闭环与日历提醒
5. 生成移动端 PPT 草稿
6. 本地保存并按配置同步到阿里云 OSS

当前项目聚焦 Android 原生应用,不宣称支持 iOS / Web 多平台。

核心卖点

卖点 说明
语音触发多任务 从“录制会议”到“整理纪要、提取待办、生成 PPT、同步日历”形成完整链路
可追溯摘要 AI 摘要绑定 evidenceMap,每条结论可回到原始转写片段和时间戳
会中实时 Agent 边录边提取“决策 / 风险 / 待办”卡片,帮助用户会中掌握重点
任务闭环 ActionItem 支持 TODO / ASSIGNED / IN_PROGRESS / DONE 状态机和周期催办
企业记忆 RAG Room 存储向量,端侧 Cosine TopK 检索历史会议上下文
一句话生成 PPT 根据主题或会议摘要匹配模板,生成演示文稿并支持导出分享
本地优先与云同步 数据先落本地,OSS 配置可用时加密同步,离线也能继续使用
竞赛演示友好 提供演示模式、可视化 Agent 流程和可回放证据链,便于评审理解创新点

功能状态

模块 当前状态 依赖配置
本地会议录音 已实现 麦克风权限
实时语音转写 已实现接入 科大讯飞 IFLYTEK_APP_ID / API_KEY / API_SECRET,或 Android 系统语音服务
录音文件保存与播放 已实现 本地文件权限由 App 沙盒管理
AI 摘要与证据链 已实现 AI_API_KEY
待办状态机与催办 已实现 本地 WorkManager,通知权限
日历同步 已实现 系统日历读写权限
PPT 生成与导出 已实现 AI_API_KEY,导出使用本地生成逻辑
图片笔记 / OCR 已实现 相册/图片权限,ML Kit
阿里云 OSS 云同步 已实现 OSS endpoint、bucket、AccessKey
Agent 工具编排 已实现 MVP 依赖上述本地工具与云端配置
战前简报 / 主动提醒 已实现基础链路 日历权限、AI Key、通知权限

说明:如果未配置语音服务,App 会进入本地录音模式,只保存音频,不会伪造实时转写内容。

Agent 架构

当前 Agent 不是 LangGraph,也不是直接嵌入第三方 GUI Agent 框架,而是 Android 原生 Kotlin 编排框架。这样做的原因是移动端需要强控制权限、生命周期、离线存储、录音、日历、通知和文件导出,原生实现更容易落地。

核心结构:

用户语音/文本指令
        ↓
AssistantQueryHeuristics / OfficeHubCommandService
        ↓
OfficeHubAgentOrchestrator
        ↓
OfficeHubPlanFactory 生成执行计划
        ↓
ToolRegistry 调度工具
        ↓
┌─────────────────────────────┐
│  EnterpriseMemoryContextTool │  检索历史记忆
│  MeetingSummaryTool          │  生成摘要与证据链
│  ExtractActionItemsTool      │  提取待办与状态
│  CalendarSyncActionItemsTool │  写入日历
│  PresentationGenerateTool    │  生成 PPT
│  CloudSyncBundleTool         │  云端备份
└─────────────────────────────┘
        ↓
AgentProcessMonitor / UI 状态透传
        ↓
用户审批、编辑、分享或归档

设计特点:

  • 工具中枢化:把录音、摘要、待办、PPT、日历、云同步统一抽象为工具。
  • 本地优先:日历权限缺失、OSS 不可用时不阻断主流程,先保留本地结果。
  • 可观测:Agent 步骤通过 UI 展示进度与失败状态,适合评审演示。
  • 可恢复:部分流程支持失败恢复和下一步继续执行。
  • 可扩展:后续可接入云端 LangGraph / MCP / GUI-Owl 等作为复杂规划层,但 Android 端仍保留本地 Runtime。

技术栈

分类 技术
语言 Kotlin 2.0.21
UI Jetpack Compose + Material 3
架构 Clean Architecture + MVVM + Hilt
异步 Coroutines + Flow
本地数据库 Room
后台任务 WorkManager
AI API SiliconFlow Chat / Embedding API
语音识别 科大讯飞 WebSocket ASR + Android SpeechRecognizer 兜底
OCR Google ML Kit Text Recognition
PPT 自研 PPT 模板引擎 + Apache POI / PPTX 导出
云同步 阿里云 OSS + AES-GCM 加密快照
测试 JUnit / Kotest / Android Instrumentation

项目结构

app/src/main/java/com/aimeetingassistant/
├── agent/                  # App 内部 Agent 编排层
│   ├── core/               # 工具、计划、Artifact、执行模型
│   ├── runtime/            # OfficeHubAgentOrchestrator 与工具注册
│   └── tools/              # 摘要、待办、PPT、日历、云同步等工具
├── core/                   # 配置、主题、导航、DI、网络、启动优化
├── data/                   # Room、Repository、Service、Worker
├── domain/                 # 领域模型、Repository 接口、UseCase
├── presentation/           # Compose UI 页面与通用组件
├── AIMeetingAssistantApp.kt
└── MainActivity.kt

重点文件:

文件 作用
agent/runtime/OfficeHubAgentOrchestrator.kt Agent 主编排器
agent/tools/OfficeHubTools.kt Agent 工具实现
data/service/AssistantAgentService.kt 助手任务服务层
data/service/EnterpriseMemoryService.kt 企业记忆与向量检索
data/repository/HierarchicalSummaryGenerator.kt 分层摘要与证据链生成
presentation/screens/meeting/MeetingViewModel.kt 录音、转写、摘要生成主状态机
presentation/screens/meeting/MeetingSummaryScreen.kt 会议洞察、转写、摘要、待办展示
presentation/screens/home/HomeScreen.kt 首页与 Agent 入口

本地运行

1. 环境要求

  • Android Studio Hedgehog 或更高版本
  • JDK 17
  • Android SDK 35
  • 最低支持 Android 8.0,API 26

2. 配置 local.properties

复制示例文件:

cp local.properties.example local.properties

填写必要配置:

# Android SDK,通常由 Android Studio 自动生成
sdk.dir=/Users/your_name/Library/Android/sdk

# AI 能力:摘要、PPT、翻译、Embedding
AI_API_KEY=your_siliconflow_api_key

# 语音转写:科大讯飞
IFLYTEK_APP_ID=your_iflytek_app_id
IFLYTEK_API_KEY=your_iflytek_api_key
IFLYTEK_API_SECRET=your_iflytek_api_secret

# 云同步:阿里云 OSS,可选
OSS_ENDPOINT=oss-cn-qingdao.aliyuncs.com
OSS_BUCKET=your_bucket
OSS_ACCESS_KEY_ID=your_access_key_id
OSS_ACCESS_KEY_SECRET=your_access_key_secret
OSS_OBJECT_KEY=aimeetingassistant/cloud_sync_snapshot.enc

# 演示开关,可选
USE_MOCK_AI=false
ENABLE_DEMO_TRANSCRIPT_FALLBACK=false

配置说明:

  • USE_MOCK_AI=true 只用于 AI 摘要、PPT 等生成兜底,不再伪造录音转写。
  • ENABLE_DEMO_TRANSCRIPT_FALLBACK=true 才会启用演示转写兜底;正式演示建议保持 false,避免用户误以为是假录音。
  • 没有科大讯飞配置时,录音页会保存本地音频,并提示配置语音服务后可实时转写。
  • 不要把真实 AccessKey 提交到 GitHub。

3. 构建

# 编译 Debug APK
./gradlew --no-configuration-cache :app:assembleDebug

# 运行单元测试
./gradlew --no-configuration-cache :app:testDebugUnitTest

# 编译 + 测试
./gradlew --no-configuration-cache :app:testDebugUnitTest :app:assembleDebug

Debug APK 路径:

app/build/outputs/apk/debug/app-debug.apk

关键流程

会议记录流程

开始录制
  ↓
本地保存音频
  ↓
实时转写(语音服务可用时)
  ↓
生成转写片段与时间戳
  ↓
AI 摘要 + evidenceMap
  ↓
待办提取 + 状态机
  ↓
本地入库
  ↓
可选:日历同步 / PPT 生成 / OSS 同步

一句话生成 PPT

输入主题或选择会议
  ↓
AI 生成结构化大纲
  ↓
匹配移动端模板
  ↓
生成幻灯片内容
  ↓
预览、编辑、导出
  ↓
分享或云同步

待办闭环

AI 提取待办
  ↓
推断负责人 / 优先级 / 截止时间
  ↓
TODO → ASSIGNED → IN_PROGRESS → DONE
  ↓
WorkManager 周期扫描
  ↓
到期前通知提醒
  ↓
可同步到系统日历

竞赛展示建议

建议现场重点展示 5 条主线:

  1. 录音到纪要:开始录制,展示转写、时间戳、摘要与证据链。
  2. 证据链可信 AI:点击摘要证据,回到对应原文片段,证明不是黑盒生成。
  3. 任务闭环:切换待办状态,展示截止时间、负责人和催办逻辑。
  4. Agent 工作流:一句话触发“整理会议并生成 PPT”,展示工具链执行过程。
  5. 端云协同:展示本地优先、OSS 同步、日历联动和资料库归档。

已验证命令

最近一次验证:2026-04-29

./gradlew --no-configuration-cache :app:testDebugUnitTest :app:assembleDebug
./gradlew --no-configuration-cache :app:assembleDebug

结果:通过。

注意事项

  • Android 模拟器可能没有可用麦克风输入,实时转写建议用真机验证。
  • Android 13+ 需要通知权限,否则催办、录音前台通知和战前简报可能无法弹出。
  • 日历同步需要系统日历读写权限。
  • OSS、讯飞、AI Key 都属于敏感信息,提交前必须确认没有写入仓库。
  • 当前 Agent 是 App 内部办公流程 Agent,不是跨 App GUI 自动点击 Agent;后续可借鉴 Mobile-Agent / GUI-Owl 做更高级的屏幕感知与跨 App 操作。

作品简介

智析·MeetingMind 是一款面向移动办公场景的 Android 智能会议 Agent。它以会议录音为入口,结合语音识别、大模型摘要、证据链追溯、向量记忆、待办状态机、PPT 自动生成、日历同步和阿里云 OSS 归档,帮助用户把会议内容从“记录”推进到“执行”。项目突出可信 AI、端侧轻量化、任务闭环和可演示的 Agentic 工作流,适合作为软件创新大赛中的移动办公智能体作品。

About

智会助手

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages