NebulaAgent 是一个革命性的AI驱动的Android设备自动化解决方案。它将先进的自然语言处理技术与设备控制相结合,让用户能够通过简单的中文或英文指令来控制Android设备执行复杂的操作任务。
- 🗣️ 自然语言交互 - 无需学习复杂命令,用日常语言描述您的需求
- 🧠 智能应用识别 - 自动识别并启动合适的应用程序
- 🔄 步骤化执行 - 将复杂任务分解为可执行的简单步骤
- ✅ 实时状态验证 - 确保每个操作步骤正确执行
- 📚 知识库驱动 - 内置应用操作知识,支持手动添加
🎯 智能任务执行
- 🗣️ 自然语言交互: 支持中文和英文指令,理解用户意图
- 🤖 自动应用识别: 智能分析任务需求,自动选择合适的应用
- ⚡ 步骤化执行: 复杂任务自动分解为可执行的操作序列
- ✅ 状态验证: 每步操作后自动验证执行结果,确保任务完成
📚 知识库管理
- 📖 应用文档库: 内置常用应用的详细操作指南和帮助文档
- 🔍 语义搜索: 基于向量化的智能搜索,快速定位相关操作
- 🧠 持续学习: 支持手动添加新应用知识和操作经验
- 📊 数据管理: 可视化管理应用数据和文档内容
🛠️ 设备控制
- 🔌 ADB集成: 通过Android Debug Bridge实现底层设备控制
- 📱 多设备支持: 自动检测并管理多个连接的Android设备
- 👆 UI交互: 支持点击、滑动、长按、输入等全面的交互操作
- 👁️ 屏幕分析: 实时解析屏幕内容和UI元素结构
🌐 可视化配置
- 💻 Web管理界面: 基于Streamlit的现代化配置管理界面
- ⚙️ 统一配置: 集中管理API密钥、模型设置和系统参数
- 📥📤 数据交换: 支持批量导入导出应用数据和文档
- 📊 实时监控: 实时查看系统运行状态和数据库信息
| 组件 | 版本要求 | 说明 |
|---|---|---|
| Python | 3.10+ | 主要开发语言 |
| Android设备 | API 21+ | 需开启USB调试模式 |
| ADB工具 | 最新版本 | Android Debug Bridge |
| 操作系统 | Windows/macOS/Linux | 跨平台支持 |
# 克隆仓库
git clone https://github.com/NebulaMao/NebulaAgent.git
cd NebulaAgent# 方法一:使用 uv(推荐,更快的包管理器)
uv sync
# 方法二:使用传统 pip
pip install streamlit pandas numpy openai requests fastmcp python-dotenv# 1. 确保Android设备已连接并开启USB调试
# 2. 验证设备连接状态
adb devices
# 应该看到类似输出:
# List of devices attached
# [device_id] device# 启动Web配置界面
./start_ui.sh
# 或者直接运行
streamlit run main_ui.py- 在浏览器中访问
http://localhost:8501 - 配置以下必要参数:
- OpenAI Base URL: API服务地址
- OpenAI API Key: API访问密钥
- Actions Model: 动作执行模型(默认:
zai-org/glm-4.5) - ADB Path: ADB工具路径(默认:
adb)
# 启动NebulaAgent
python main.py启动后,您可以尝试以下示例指令:
💬 "帮我发一条朋友圈:今天天气真好!"
💬 "打开微信并给张三发消息"
💬 "帮我设置一个明天早上7点的闹钟"
💬 "打开支付宝查看余额"
|
📝 社交应用操作 |
⏰ 系统设置操作 |
|
🛒 电商购物操作 |
🎵 娱乐应用操作 |
# 开发者模式启动(详细日志)
streamlit run main_ui.py --server.runOnSave=true --server.enableCORS=false --logger.level=debug
# 检查当前配置状态
python config_loader.py
# 使用自定义端口启动
streamlit run main_ui.py --server.port 8502| 变量名 | 必需 | 默认值 | 说明 | 示例 |
|---|---|---|---|---|
openai_baseurl |
✅ | - | AI模型API服务地址 | https://api.openai.com/v1 |
openai_key |
✅ | - | API访问密钥 | sk-xxx... |
actions_model |
✅ | zai-org/glm-4.5 |
动作执行模型名称 | gpt-4 |
ADB_PATH |
✅ | adb |
ADB工具路径 | /usr/local/bin/adb |
db_path |
❌ | mobile_agent_help.db |
知识库文件路径 | ./data/knowledge.db |
NebulaAgent 支持多种配置方式,按优先级从高到低排列:
1. 🔧 运行时环境变量 (最高优先级)
↓
2. 📄 .env 文件配置
↓
3. 📋 config.json 文件 (最低优先级)
.env 文件示例:
# AI模型配置
openai_baseurl=https://your-api-server.com/v1
openai_key=sk-your-api-key-here
actions_model=zai-org/glm-4.5
# 设备控制配置
ADB_PATH=/usr/local/bin/adb
# 数据库配置
db_path=./data/mobile_agent_help.dbconfig.json 文件示例:
{
"openai_baseurl": "https://your-api-server.com/v1",
"openai_key": "sk-your-api-key-here",
"actions_model": "zai-org/glm-4.5",
"ADB_PATH": "adb",
"db_path": "mobile_agent_help.db"
}NebulaAgent/
├── 📂 core/ # 🔧 核心功能模块
│ ├── 📂 Agent/ # 🤖 AI助手模块
│ │ ├── 📄 KnowledgeAssistant.py # 🧠 知识库助手
│ │ └── 📄 ActionAgent.py # ⚡ 动作执行助手
│ ├── 📂 Base/ # 🏗️ 基础组件
│ │ ├── 📄 AgentBase.py # 🎯 代理基类
│ │ ├── 📄 JsonUtil.py # 🔧 JSON工具类
│ │ └── 📄 vector_db.py # 🗄️ 向量数据库
│ └── 📄 phone.py # 📱 设备控制核心
├── 📄 config_loader.py # ⚙️ 配置加载器
├── 📄 main_ui.py # 🌐 Web配置界面
├── 📄 main.py # 🚀 主程序入口
├── 📄 knowledge_manager.py # 📚 知识库管理器
├── 📄 start_ui.sh # 🏃 启动脚本
├── 📂 static/ # 🎨 静态资源
│ └── 🖼️ logo.png # 📷 项目Logo
├── 📄 pyproject.toml # 📦 项目配置
├── 📄 config.json # ⚙️ 配置文件
└── 📄 README.md # 📖 项目文档
graph TB
A[👤 用户输入] --> B[🧠 KnowledgeAssistant]
B --> C[🗄️ 知识库查询]
C --> D[🎯 应用识别]
D --> E[⚡ ActionAgent]
E --> F[📱 设备控制]
F --> G[✅ 状态验证]
G --> H[✨ 任务完成]
I[🌐 Web界面] --> J[⚙️ 配置管理]
J --> K[📚 知识库管理]
K --> C
| 组件 | 职责 | 主要功能 |
|---|---|---|
| 📱 Phone类 | 设备控制核心 | ADB包装、UI交互、屏幕分析 |
| 🧠 KnowledgeAssistant | 知识查询助手 | 知识库检索、应用识别、任务理解 |
| ⚡ ActionAgent | 任务执行引擎 | 自动化操作、步骤分解、状态管理 |
| ⚙️ 配置系统 | 环境管理 | 参数配置、环境变量、设置验证 |
| 🌐 Web界面 | 可视化管理 | 配置界面、数据管理、监控面板 |
💡 征集贡献者: 以下应用的操作指南需要社区贡献!欢迎提交PR添加详细的操作文档。
| 分类 | 应用名称 | 包名 | 状态 | 贡献 |
|---|---|---|---|---|
| 📞 社交通讯 | 🟢 微信 | com.tencent.mm |
🟡 需要文档 | 贡献 |
com.tencent.mobileqq |
🟡 需要文档 | 贡献 | ||
| 💰 支付购物 | 🔵 支付宝 | com.eg.android.AlipayGphone |
🟡 需要文档 | 贡献 |
| 🟠 淘宝 | com.taobao.taobao |
🟡 需要文档 | 贡献 | |
| 🎵 娱乐媒体 | ⚫ 抖音 | com.ss.android.ugc.aweme |
🟡 需要文档 | 贡献 |
| 🛒 其他常用 | 📱 小红书 | com.xingin.xhs |
📋 待添加 | 贡献 |
| 🎬 哔哩哔哩 | tv.danmaku.bili |
📋 待添加 | 贡献 | |
| 🍕 美团 | com.sankuai.meituan |
📋 待添加 | 贡献 |
您可以通过以下方式为NebulaAgent添加更多应用支持:
- 访问配置界面
http://localhost:8501 - 进入「应用管理」页面
- 点击「添加新应用」
- 填写应用信息:
- 应用名称
- 包名(Package Name)
- 操作文档
- 使用说明
# 使用知识库管理器添加应用文档
python knowledge_manager.py --add-app "应用名称" --package "包名" --docs "操作文档路径"| 状态 | 标识 | 说明 |
|---|---|---|
| 完全支持 | ✅ | 全面的操作文档,支持复杂任务自动化 |
| 需要文档 | 🟡 | 基本框架已有,急需操作指南贡献 |
| 实验性支持 | 🧪 | 试验阶段,功能有限 |
| 待添加 | 📋 | 等待社区贡献应用支持 |
📢 我们急需您的帮助!
目前系统框架已经完善,但各个应用的详细操作指南还需要社区贡献。您的贡献将帮助成千上万的用户更好地使用NebulaAgent!
以下应用使用频率最高,急需操作指南:
| 应用 | 所需文档 | 难度 | 预估工作量 |
|---|---|---|---|
| 🟢 微信 | 发消息、朋友圈、支付、群聊管理 | ⭐⭐⭐ | 2-3小时 |
| 🔵 支付宝 | 转账、付款码、生活缴费、理财 | ⭐⭐ | 1-2小时 |
| 🟠 淘宝 | 搜索商品、下单、查看订单 | ⭐⭐⭐ | 2-3小时 |
| ⚫ 抖音 | 搜索视频、点赞评论、发布视频 | ⭐⭐ | 1-2小时 |
贡献操作指南时,请参考以下模板:
# [应用名称] 操作指南
## 基本信息
- 应用名称:[中文名称]
- 包名:[package_name]
- 版本要求:[最低支持版本]
## 核心功能操作
### 1. [功能名称,如:发送消息]
**触发词**: "发消息", "发微信", "联系"
**操作步骤**:
1. 打开应用
2. 点击搜索或联系人
3. 选择目标联系人
4. 输入消息内容
5. 点击发送
**UI元素定位**:
- 搜索框: `resource-id="com.tencent.mm:id/search"`
- 发送按钮: `text="发送"`
**常见问题**:
- 问题描述和解决方案
### 2. [其他功能...]- 📋 选择应用: 从上表中选择一个您熟悉的应用
- 🔍 分析界面: 使用ADB工具分析应用UI结构
- 📝 编写文档: 按照模板编写操作指南
- 🧪 测试验证: 在NebulaAgent中测试您的指南
- 📤 提交贡献: 通过PR提交您的操作指南
为了感谢贡献者,我们提供:
- 🏆 贡献者徽章: 在README中展示您的贡献
- 📚 技术成长: 深入了解AI自动化和移动应用分析
- 🌟 开源影响力: 帮助更多用户,提升个人开源项目影响力
- 🎁 特别感谢: 重要贡献者将获得项目特别感谢
📋 步骤详解
-
📊 应用分析
# 获取应用包名 adb shell pm list packages | grep "应用关键词" # 分析应用界面结构 adb shell uiautomator dump
-
📝 文档编写
- 创建应用操作指南
- 定义常用操作步骤
- 编写UI元素定位方法
-
🧪 功能测试
- 在Web界面添加应用信息
- 测试知识库搜索功能
- 验证自动化操作流程
-
✅ 集成验证
- 端到端测试完整流程
- 性能和稳定性测试
- 文档和示例完善
🔧 开发方向
- 🤖 AI模型集成: 支持更多AI模型和API服务
- 🎯 操作精度提升: 增强UI元素识别和定位精度
- 📊 分析能力: 扩展屏幕内容理解和分析能力
- 🔍 搜索算法: 优化知识库搜索和匹配算法
- ⚡ 性能优化: 提升响应速度和资源利用效率
我们欢迎社区贡献!请按以下流程参与:
# 1. Fork 项目到个人仓库
git clone https://github.com/your-username/NebulaAgent.git
# 2. 创建功能分支
git checkout -b feature/your-feature-name
# 3. 开发和测试
# ... 进行开发工作 ...
# 4. 提交更改
git add .
git commit -m "feat: 添加新功能描述"
# 5. 推送分支
git push origin feature/your-feature-name
# 6. 创建 Pull Request我们使用 Conventional Commits 规范:
feat:新功能fix:错误修复docs:文档更新style:代码格式调整refactor:代码重构test:测试相关chore:构建过程或辅助工具的变动
-
设备连接失败
# 检查ADB连接 adb devices # 重新连接设备 adb kill-server adb start-server
-
配置加载失败
# 检查配置文件 cat config.json # 重新配置 python config_loader.py
-
应用启动失败
# 检查应用是否安装 adb shell pm list packages [package_name] # 查看错误日志 adb logcat
-
Web界面无法访问
# 更换端口 streamlit run streamlit_config.py --server.port 8502 # 检查防火墙设置 sudo ufw status
# 启用详细日志
export PYTHONPATH=$PYTHONPATH:.
python main.py
# Streamlit调试模式
streamlit run streamlit_config.py --logger.level=debug本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
如果您在使用过程中遇到问题或有改进建议,请:
让AI为您的智能手机生活带来便利! 🎉
Made with ❤️ using Python, Streamlit, and AI

