Skip to content

onion4/RNAgentOSDemo

Repository files navigation

React Native AgentOS Demo

基于 React Native 和 AgentOS SDK 的混合应用开发示例,展示了如何通过 React Native Bridge 调用 Android 原生 AgentOS SDK 功能,实现语音交互和智能 Action 系统。

🎯 主要功能概述

🔗 React Native Bridge 集成

  • 双向通信: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 (推荐)

1. 克隆项目

git clone <repository-url>
cd RNAgentOSDemo

2. 安装依赖

# 安装 Node.js 依赖
npm install

# 安装 React Native 依赖
npm install react-native

3. 配置 AgentOS SDK

确保 app/build.gradle.ktssettings.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")

4. 生成 React Native Bundle

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

5. 编译并安装应用

# 编译 APK
./gradlew assembleDebug

# 安装到设备
./gradlew installDebug

# 或者一步完成
./gradlew assembleDebug && ./gradlew installDebug

6. 启动应用

# 清理日志并启动
adb logcat -c && adb shell am start -n com.example.rnagentosdemo/.ReactNativeActivity

# 查看运行日志
adb logcat -s ReactNativeJS AgentOSModule

📁 模块结构介绍

🏗️ 项目结构概览

RNAgentOSDemo/
├── 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 依赖配置

🔑 核心模块详解

1. AgentOSModule.kt - 桥接核心

  • 职责:React Native 与 AgentOS SDK 的双向通信桥梁
  • 功能
    • PageAgent 生命周期管理 (create, begin, end)
    • Action 注册 (简单 Action + 复杂参数 Action)
    • 异步 ActionExecutor 机制
    • action.notify() 调用管理

2. ChatScreen.tsx - 前端交互界面

  • 职责:用户界面和交互逻辑
  • 功能
    • 聊天消息展示和自动滚动
    • 语音交互触发
    • Action 执行结果展示
    • 延迟提示和用户引导

3. AgentOSModule.ts - TypeScript 类型定义

  • 职责:为桥接模块提供类型安全
  • 功能
    • 接口定义和参数类型
    • 返回值结构约定
    • Action 配置类型定义

🔄 数据流向

用户语音输入 → AgentOS 规划 → ActionExecutor 触发 → 
AgentOSModule 桥接 → React Native 处理 → 
UI 展示结果 → 调用 notify() → AgentOS 后续处理

该项目为 React Native 与 AgentOS SDK 混合开发提供了完整的参考实现,适用于需要 AI 语音交互功能的跨平台应用开发。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors