# BetterAIChat
**原生 Android AI 智能体**:自带 API Key、让 AI 操作你的手机。
[English](README.md) · 简体中文

> 由 Verlintas 独立开发。一款完全自主的 Android AI 助手:接入你自己的 API Key(OpenAI 兼容 / Anthropic / Gemini),AI 可以搜索网页、操作应用、自动化任务——所有数据留在你手机上。
## 截图
| 会话列表 | 聊天 | 设置 |
|---|---|---|
|
|
|
|
## 功能
### 聊天与模型
- 接入你自己的 API Key(加密存储于 Android Keystore),支持任意 OpenAI 兼容端点(含 DeepSeek / Kimi / Qwen / GLM 等国产模型)、Anthropic Claude、Google Gemini
- 内置精选模型目录(GPT-5.x / Claude / Gemini / DeepSeek V4 / Kimi K3 / Qwen 3.8 等),也可自定义模型
- 流式打字机输出、Markdown 渲染(自定义表格组件)、代码高亮、思考过程展示
- Token 用量实时显示
### Agent——一键配置,按会话选用
**Agent** 是一套完整配置:服务商 + API Key + 模型 + 温度/Max Tokens/深度推理 + 可选自定义系统提示。
- **4 步引导新建**:粘贴 API Key 自动识别服务商(sk-ant- → Claude、AIza → Gemini),内置 DeepSeek / 通义千问 / Kimi / 智谱 GLM / SiliconFlow 快捷预设 → 一键拉取模型列表 → 选模型 → 调参数 → 默认或自定义系统提示
- 每个对话可独立选择 Agent(⋮ → 选择 Agent);设置 → Agent 统一管理(新建/编辑/删除/设默认)
- API Key 系统级加密;旧版配置首启自动迁移为默认 Agent
### 模式(opencode 风格)
| 模式 | 行为 |
|---|---|
| `Chat` | 纯对话,不调用工具 |
| `Plan` | 只读分析,不执行操作 |
| `Build` | 每个工具执行前请求你确认 |
| `Max` | 自主多步工具调用 + 深度思考 |
### AI 可以操作你的设备(63 个工具)
| 工具 | 功能 |
|---|---|
| `open_app` | 打开任意已安装应用 |
| `send_notification` | 发送通知 |
| `set_brightness` / `set_volume` / `set_screen_timeout` | 调节系统设置 |
| `set_flashlight` | 手电筒 |
| `take_screenshot` | 截屏 |
| `device_info` | 设备/电池/存储信息 |
| `set_clipboard` / `get_clipboard` | 剪贴板读写 |
| `set_alarm` | 一次性提醒 |
| `schedule_repeat` | 每日/每周/每小时重复提醒 |
| `speak_text` | TTS 朗读 |
| `web_search` / `web_read` | 多引擎实时搜索(Bing/百度/Brave/DDG/Mojeek 合并)与网页读取 |
| `open_settings` | 跳转系统设置 |
| `run_shell` | **通过 Shizuku 执行 shell 命令**(root 级能力) |
| `get_time` / `network_status` / `get_foreground_app` | 时间 / 网络 / 前台应用 |
| `media_control` / `set_ringer_mode` / `vibrate` | 媒体控制 / 铃声模式 / 震动 |
| `share_text` / `open_dialer` / `download_file` / `write_document` | 分享 / 拨号 / 下载 / 文档保存 |
| `fetch_rss` / `get_weather` / `get_exchange_rate` / `ping_network` | RSS / 天气 / 汇率 / 网络延迟 |
| `calculator` / `generate_qr` / `keep_screen_on` | 计算 / 二维码 / 屏幕常亮 |
| `get_location` / `transcribe_audio` / `ocr_file` / `send_email` | 定位 / 录音转写 / 图片 OCR / 邮件 |
| `set_dnd` / `manage_app` / `set_wifi` / `set_power_saver` | 勿扰 / 应用管理 / WiFi / 省电 |
| `screen_record` / `list_installed_apps` | 录屏 / 应用列表 |
| `screen_ocr` | **读取屏幕文字(附每行坐标)**(截屏 + 端侧中英文 OCR) |
| `create_automation` / `list_automations` / `delete_automation` | 自动化管理 |
| `ua_type` / `ua_tap` / `ua_swipe` / `ua_press` | **无障碍 UI 自动化**:输入 / 点击 / 滑动 / 按键 |
| `ua_tap_text` / `ua_find_text` | **按文字查找/点击界面元素**(比坐标点击可靠) |
| `load_skill` | 加载并执行已导入的 SKILL.md 技能 |
| `read_notifications` / `get_screen_state` | 通知读取 / 屏幕状态 |
| `create_calendar_event` | 创建日历日程(打开日历预填,用户确认保存) |
| `get_app_usage` | 各应用使用时长统计(需「使用情况访问」权限) |
| `unit_convert` | 单位换算(长度/重量/温度/面积/速度/数据/时间) |
| `search_contacts` | 按姓名搜索联系人(需通讯录权限) |
| `list_files` / `read_text_file` | 浏览 / 读取下载与文档目录中的文件 |
### 屏幕分析——AI 能"看见"屏幕
一键截屏 → 视觉模型描述屏幕内容并给出操作建议。支持任意视觉模型。
### 长期记忆
- AI 自动提炼用户重要信息(姓名/偏好/约定),持久化保存并注入每次对话
- 每 10 条消息自动提炼;对话菜单可手动触发
- 设置页「记忆」可查看/删除
### 无缝上下文衔接
- 用量达到 85% 自动压缩;压缩前保存最近对话快照
- 「导入最近对话」一键恢复上下文
### 自动化——设置后自动运行
- **定时触发**:如"每天 22:00 静音并开启勿扰"
- **电量触发**:如"电量低于 20% 时提醒充电"
- 后台无人值守执行工具序列,完成通知回报
- 设置 → 自动化 管理(列表/开关/删除)
### 完整 UI 自动化——AI 能"驾驶"你的手机
1. `ua_find_text` / `screen_ocr` 查看界面元素与文字位置(含坐标)
2. `ua_tap_text` 按文字点击(或 `ua_tap` 按坐标),`ua_swipe` / `ua_type` / `ua_press` 执行操作
3. `screen_ocr` / `take_screenshot` 验证结果
无需 root、无需 Shizuku。
### Skills(opencode 风格)
- 导入 `SKILL.md`(YAML frontmatter)
- 技能可自带工具(alarm/notification/clipboard/intent/settings 动作)
- 对话中多步操作可录制保存为技能
### 附件与文档
- 图片(最多 4 张,自动压缩,发送给视觉模型)
- **PDF**(端侧中文 OCR)、Word、Excel(全部工作表)、文本文件(≤1MB)
### 免提
- **语音助手模式**:AI 朗读回复、自动开麦、语音回答自动发送——完整免提闭环
- 语音输入、任意消息朗读、自动朗读开关
### 组织管理
- 会话列表:搜索、置顶、归档、滑动删除、最后消息预览
- 会话内搜索:关键字定位历史消息(计数 + 上下跳转)
- 图片查看支持双指缩放/双击放大;收藏消息、清除上下文、导出对话、上下文压缩(AI 总结)
### 主题
8 套强调色(橙/红/粉/靛蓝/蓝/紫/绿/青),默认橙色呼应图标,即时切换
### 国际化
支持中 / 英文界面切换(设置 → 对话 → 语言)
## 开始使用
### 下载
从 [Releases](https://github.com/Verlintas/BetterAIChat/releases) 下载:
- **full**:完整版(含屏幕 OCR)
- **lite**:精简版(约 10MB,无 OCR)
### 配置(Agent 引导)
1. 设置 → Agent → **新建 Agent**(或在聊天页 ⋮ → 选择 Agent → 新建)
2. 第 1 步:粘贴 API Key——自动识别服务商并填充 Base URL(sk-ant- → Claude、AIza → Gemini),也可点 DeepSeek / 通义千问 / Kimi / 智谱 GLM / SiliconFlow 预设,再点「自动识别」拉取服务端模型列表
3. 第 2 步:选模型 · 第 3 步:温度 / Max Tokens / 深度推理 · 第 4 步:默认或自定义系统提示 → 保存
4. 开始对话。Build/Max 模式下让 AI 做事:「打开计算器」「每天 9 点提醒我喝水」「搜索今天的新闻并总结」
5. 想换角色?多建几个 Agent,每个对话在 ⋮ → 选择 Agent 切换
### 从源码构建
需要 JDK 17 + Android SDK 36:
```
./gradlew assembleFullDebug
```
## 权限说明
| 能力 | 权限 | 用途 |
|---|---|---|
| 屏幕分析 / OCR | MediaProjection | 截屏、屏幕文字识别 |
| UI 自动化 | 无障碍服务 | 输入/点击/滑动/按键 |
| Shell 命令 | Shizuku | root 级操作 |
| 通知读取 | 通知使用权 | read_notifications |
| 前台应用 | 使用情况访问 | get_foreground_app |
| 定位 / 录音 / 相机 / 震动 | 运行时权限 | 相应工具 |
## 技术栈
Kotlin · Jetpack Compose (Material 3) · OkHttp (SSE) · kotlinx.serialization · Room · Android Keystore · ML Kit (中文 OCR)
```
:app UI(会话、聊天、设置、统计、收藏)
:core 模型、引擎、SSE、存储、数据库、技能解析
:providers OpenAI 兼容 / Anthropic / Gemini 适配器
:skills 设备工具 + 工具注册表 + 动作执行器
```
### 学习这个项目
想学习或接手这个项目?**[docs/zh/HOW_IT_WORKS.zh-CN.md](docs/zh/HOW_IT_WORKS.zh-CN.md)** 是完整的开发者手册(26 章):上手(构建/运行/测试/用 mock 服务器调试)、模块架构、消息管线、SSE 流式、工具调用循环、权限桥接、自动化引擎、UI 渲染内幕——以及 Agent、联网搜索管线、长期记忆的专章,扩展指南(几分钟添加一个工具/服务商),排障与已知平台限制,和覆盖仓库之外一切的交接清单。
## 路线图
- 多模型对比(同一问题,多模型并排回答)
- 桌面小组件
- Agent 市场 / 可分享的 Agent
## 开源协议
[MIT](LICENSE)
---
*项目:[BetterAIChat](https://github.com/Verlintas/BetterAIChat) · 原生 Android AI 智能体,63 个内置工具。*