给 AI 一个实体化身,让 AI 不再只是手机里的软件。
打造一个固定在手机支架上的小型实体机器人。它不是传统意义上的机器人,而是给 AI 一个实体化身。
- 用户正在刷抖音
- AI 实时理解评论区 + 屏幕画面
- AI 以「可不」的人格发表吐槽、共情或调侃
- 悬浮窗展示 AI 回复,用户可随时进入聊天对话
- (规划中)实体机器人做出对应的表情和动作
| 用户行为 |
可不 (KAFU) |
机器人反馈 |
| 刷到搞笑视频 |
"哈哈哈这个也太离谱了吧 XD" |
(¬‿¬) + 轻微摇头 |
| 看到 emo 评论 |
"呜呜……抱抱你,会好起来的" |
(´;ω;`) + 轻轻点头 |
| 用户主动聊天 |
"诶?你今天也刷到这个了呀~" |
^_^ + 歪头 |
- 走路 / 导航 / 避障
- 机械臂 / 自动跟随
- 本地大模型部署
- 内容感知 → AI 理解 → 人格化表达
- 核心理念:机器人只是 AI 的身体
┌────────────────────┐ ┌─────────────────────┐
│ Douyin App UI │ │ Phone Screen │
│ (Accessibility) │ │ (MediaProjection) │
└────────┬───────────┘ └──────────┬──────────┘
│ AccessibilityEvent │ captureOnce() per tick
┌────────▼───────────────────────────▼──────────┐
│ DouyinCommentService (5s timer) │
│ ┌────────────────┐ ┌──────────────────────┐ │
│ │ extractRecursive│ │ ScreenCaptureService │ │
│ │ parse + dedup │ │ imageToBitmap + save │ │
│ └───────┬────────┘ └──────────┬───────────┘ │
│ │ │ │
│ ┌───────▼──────────────────────▼───────────┐ │
│ │ CommentDiffer.diff() │ │
│ │ three-state comparison + smart scoring │ │
│ └───────┬──────────────────────────────────┘ │
│ │ bestComment.text() │
│ ▼ │
│ ┌──────────────────────────────────────────┐ │
│ │ ContextBuilder (ring buffers) │ │
│ │ recentComments(max 5) + screenshots(5) │ │
│ │ + timeline(max 30) + videoDescription │ │
│ └───────┬──────────────────────────────────┘ │
│ │ │
│ ┌───────▼──────────────────────────────────┐ │
│ │ MemoryCollector │ │
│ │ videos(≤40) → descriptions + comments │ │
│ └──────────────────────────────────────────┘ │
└──────────┬────────────────────────────────────┘
│ sendComment(text)
┌──────────▼────────────────────────────────────┐
│ AiService / ChatAiService │
│ SYSTEM_PROMPT (可不 KAFU persona) │
│ OkHttp POST → DeepSeek API │
│ 3x exponential backoff retry │
│ Cancel safety + response close │
└──────────┬────────────────────────────────────┘
│ onAiResponse(text)
┌──────────▼────────────────────────────────────┐
│ FloatingWindowService │
│ 气泡态 (48dp) → 评论列表 → AI 评价卡片 │
│ 打字指示器 ··· + 自适应收回 2.5~12s │
└───────────────────────────────────────────────┘
| 模块 |
说明 |
DouyinCommentService |
AccessibilityService — 5 秒定时器遍历评论树,三态 diff + 智能评分 |
ScreenCaptureService |
MediaProjection 截帧,JPEG 80% 写入缓存,复用 Bitmap 缓冲区 |
ContextBuilder |
融合评论 + 截图 + 时间线 + 视频简介,环形缓冲区(线程安全) |
CommentDiffer |
NO_UPDATE / PARTIAL_UPDATE / FULL_UPDATE 三态对比,去重 + 评分排序 |
MemoryCollector |
按视频分组采集简介(≤40 个视频)和高赞评论(❤>50,≤20 条/视频),JSON 持久化,支持删除 |
| 模块 |
说明 |
AiService |
自动模式 — 定时器触发,内容哈希去重,指数退避重试(3 次),取消安全 |
ChatAiService |
聊天模式 — 完整对话历史 + 记忆上下文注入,单次请求不重试 |
Constants.SYSTEM_PROMPT |
可不 (KAFU) 角色设定 — 16-18 岁迷糊少女,天然呆、温柔、共情力强 |
| 模块 |
说明 |
FloatingWindowService |
悬浮窗三态 UI — 气泡 / 评论列表 / AI 评价卡片,自适应宽度 + 打字指示器 |
MainActivity |
主界面 — DrawerLayout + 内嵌聊天 + 聊天记录管理 + 服务控制 |
MusicPlayer |
MediaPlayer 单例 — 5 首歌曲,播放模式(顺序/随机/单曲循环),封面联动 |
MusicMenuPopup |
抽屉式侧滑音乐面板 — 拖拽手势驱动,180dp 白色圆角卡片 |
AnimationPlayer |
MP4 片头动画 — SurfaceView 覆盖层播放 |
MainImageHandler |
主界面手势 — 双击→内嵌聊天,拖拽→音乐面板,支持聊天模式 |
| 模块 |
说明 |
ChatActivity |
全屏聊天界面(保留,侧边栏历史记录可跳转) |
ChatAdapter |
聊天消息适配器 — 3 种 viewType(用户/AI/打字指示器)+ 秘书模式 |
ChatSessionManager |
JSON 文件持久化 — 双重检查锁定单例,索引 + 会话文件,支持置顶/类型标记 |
| 模块 |
说明 |
ScheduleData |
数据模型 — ScheduleItem / DailySchedule |
ScheduleDataManager |
单例 — 加载 assets 日程 JSON,按星期轮换生成当日计划 |
ScheduleStateManager |
状态机 + AlarmManager 调度 — PENDING → START_SENT → END_CHECK_SENT → ADJUSTING → COMPLETED |
ScheduleSecretaryService |
前台服务 — 闹钟驱动,主动发消息 + 弹通知,动态调整计划 |
核心理念:可不(KAFU)切换为知性沉稳的秘书人格,按《暑期学习计划》自动管理每日日程。系统闹钟驱动 → 到点主动提醒 → 结束温柔回访 → 根据用户反馈 AI 动态调整后续计划。
秘书人格:独立于日常 KAFU(迷糊少女)的知性大姐姐形象,温和理性带俏皮,不因执行偏差说教。
| 模块 |
说明 |
Comment |
Java 17 record — user, text, likeCount, time, location |
AppContext |
统一上下文 record + TimelineEvent |
SecurePrefs |
EncryptedSharedPreferences 封装(AES-256-GCM) |
定位: 不是问答机器人,而是旁观者 / 朋友 / 吐槽搭子。
- 16-18 岁迷糊少女,天然呆、温柔、共情力强
- 说话轻柔软糯,常用「えっ……?」、「そうなの?」
- 接地气有网感,搞笑评论跟着笑,emo 评论温柔共情
- 偶尔提及咖喱乌冬、音乐等个人爱好
| 场景 |
可不的反应 |
| 看到搞笑视频 |
"哈哈哈这个也太离谱了吧,我要笑死了 XD" |
| 看到猫咪翻车 |
"呜呜小猫咪你没事吧……它好像在装没事哈哈哈" |
| 看到 emo 评论 |
"抱抱你……会好起来的,今天也要好好吃饭哦" |
| 用户主动聊天 |
"诶?你也喜欢这首歌呀!我最近一直在单曲循环呢~" |
| Phase |
内容 |
状态 |
| 1 |
AccessibilityService → 评论提取 + 点赞数 |
✅ 完成 |
| 2 |
MediaProjection 屏幕截帧 |
✅ 完成 |
| 3 |
ContextBuilder 多模态融合 |
✅ 完成 |
| 4 |
AI 服务 + 悬浮窗交互 |
✅ 完成 |
| 2+ |
AI 聊天 + 音乐播放 + 片头动画 + 记忆收集 |
✅ 完成 |
| 6 |
日程秘书 — 闹钟驱动每日管理 + AI 动态调整 |
✅ 完成 |
| 5 |
实体机器人(ESP32-S3 + LCD + 舵机) |
❌ 待开始 |
- 语言: Java 17(record, text blocks, switch expressions)
- 最低 SDK: 21(Android 5.0)
- 目标 SDK: 36
- 构建: Gradle 8.14.4 + AGP 8.13.0
- 依赖: OkHttp 4.12.0, Security-Crypto 1.1.0-alpha06, Material 1.11.0
- AI API: DeepSeek API(可配置为其他 OpenAI 兼容 API)
- 测试: JUnit 4.13(CommentParserTest — 25 个测试用例)
# 构建 Debug APK
./gradlew assembleDebug
# 安装到手机
adb install -r app/build/outputs/apk/debug/app-debug.apk
# 查看日志
adb logcat -s DouyinComment # 评论提取
adb logcat -s ZuoYouAI # AI 服务
adb logcat -s ChatAiService # 聊天 AI
adb logcat -s MusicPlayer # 音乐播放
adb logcat -s MemoryCollector # 记忆收集
adb logcat -s ScheduleSecretary # 日程秘书
adb logcat -s ScheduleState # 日程状态机
MIT