基于 React Native 和 AgentOS SDK 的混合应用开发示例,展示了如何通过 React Native Bridge 调用 Android 原生 AgentOS SDK 功能,实现语音交互和智能 Action 系统。
- 双向通信:React Native JavaScript 层与 Android 原生 AgentOS SDK 的无缝桥接
- AgentOS SDK 集成:完整集成 AgentOS SDK v0.3.5,支持 PageAgent 生命周期管理
- Action 系统桥接:支持复杂 Action 注册,包含自定义参数和异步执行器
- 异步机制:ActionExecutor 返回值由 React Native 控制,action.notify() 独立调用
- 社保小助手:专业的社会保险咨询服务机器人
- 语音触发:支持"带我去茶水间"等自然语言指令
- 引领服务:模拟真实引领场景,成功/失败状态完整演示
- 实时反馈:UI 界面实时显示 Action 执行过程和结果
- 延迟提示:启动 3 秒后显示引领功能提示,避免信息过载
- 自动滚动:新消息自动滚动到底部,保持最佳用户体验
- 状态展示:完整展示 Action 触发、执行、通知的全流程
- 错误处理:完善的异常处理和用户提示机制
# 开发环境
- Android SDK (API 26+)
- JDK 11
- Node.js 16+
- React Native CLI
- Android Studio (推荐)git clone <repository-url>
cd RNAgentOSDemo# 安装 Node.js 依赖
npm install
# 安装 React Native 依赖
npm install react-native确保 app/build.gradle.kts 和 settings.gradle.kts 已正确配置:
// settings.gradle.kts - Maven 仓库配置
maven {
credentials.username = "agentMaven"
credentials.password = "agentMaven"
url = uri("https://npm.ainirobot.com/repository/maven-public/")
}
// app/build.gradle.kts - SDK 依赖
implementation("com.orionstar.agent:sdk:0.3.5-SNAPSHOT")npx react-native bundle \
--platform android \
--dev false \
--entry-file index.js \
--bundle-output app/src/main/assets/index.android.bundle \
--assets-dest app/src/main/res# 编译 APK
./gradlew assembleDebug
# 安装到设备
./gradlew installDebug
# 或者一步完成
./gradlew assembleDebug && ./gradlew installDebug# 清理日志并启动
adb logcat -c && adb shell am start -n com.example.rnagentosdemo/.ReactNativeActivity
# 查看运行日志
adb logcat -s ReactNativeJS AgentOSModuleRNAgentOSDemo/
├── Agent/v0.3.5/ # AgentOS SDK 官方文档
│ ├── AgentOS_SDK_Doc_v0.3.5.md # SDK 完整文档
│ ├── API_Reference.md # API 参考手册
│ ├── ClassPathList.md # 类路径清单
│ └── SampleCodes.md # 示例代码
├── Robot/v11.3C/ # RobotOS SDK 文档
│ ├── RobotAPI.md # 机器人 API 文档
│ └── robotservice_11.3.jar # RobotOS SDK JAR
├── app/src/main/ # Android 原生代码
│ ├── java/com/example/rnagentosdemo/
│ │ ├── AgentOSModule.kt # 🔑 核心桥接模块
│ │ ├── NavigationModule.kt # 导航模块示例
│ │ ├── NavigationPackage.kt # 模块注册管理
│ │ ├── ReactNativeActivity.kt # RN 容器 Activity
│ │ └── MainApplication.kt # 应用初始化
│ ├── assets/
│ │ ├── actionRegistry.json # AgentOS 配置文件
│ │ └── index.android.bundle # RN 打包后的 JS 文件
│ └── res/ # Android 资源文件
├── src/ # React Native 前端代码
│ ├── components/ # 可复用组件
│ ├── screens/
│ │ └── ChatScreen.tsx # 🔑 聊天界面主组件
│ └── types/
│ ├── index.ts # 通用类型定义
│ └── AgentOSModule.ts # 🔑 桥接模块类型定义
├── index.js # RN 应用入口
├── App.tsx # RN 根组件
└── package.json # Node.js 依赖配置
- 职责:React Native 与 AgentOS SDK 的双向通信桥梁
- 功能:
- PageAgent 生命周期管理 (create, begin, end)
- Action 注册 (简单 Action + 复杂参数 Action)
- 异步 ActionExecutor 机制
- action.notify() 调用管理
- 职责:用户界面和交互逻辑
- 功能:
- 聊天消息展示和自动滚动
- 语音交互触发
- Action 执行结果展示
- 延迟提示和用户引导
- 职责:为桥接模块提供类型安全
- 功能:
- 接口定义和参数类型
- 返回值结构约定
- Action 配置类型定义
用户语音输入 → AgentOS 规划 → ActionExecutor 触发 →
AgentOSModule 桥接 → React Native 处理 →
UI 展示结果 → 调用 notify() → AgentOS 后续处理
该项目为 React Native 与 AgentOS SDK 混合开发提供了完整的参考实现,适用于需要 AI 语音交互功能的跨平台应用开发。