Jerry Liang 6fd0b7e93d feat: Android App 会话中可切换模型(0.1.1) 6 ngày trước cách đây
..
android 8cebdbbd3d feat: Android App(Capacitor,接入 Agent API 与 Bot API)与下载页 1 tuần trước cách đây
src 6fd0b7e93d feat: Android App 会话中可切换模型(0.1.1) 6 ngày trước cách đây
README.md 8cebdbbd3d feat: Android App(Capacitor,接入 Agent API 与 Bot API)与下载页 1 tuần trước cách đây
capacitor.config.ts 8cebdbbd3d feat: Android App(Capacitor,接入 Agent API 与 Bot API)与下载页 1 tuần trước cách đây
index.html 8cebdbbd3d feat: Android App(Capacitor,接入 Agent API 与 Bot API)与下载页 1 tuần trước cách đây
package.json 6fd0b7e93d feat: Android App 会话中可切换模型(0.1.1) 6 ngày trước cách đây
tsconfig.json 8cebdbbd3d feat: Android App(Capacitor,接入 Agent API 与 Bot API)与下载页 1 tuần trước cách đây
uno.config.ts 8cebdbbd3d feat: Android App(Capacitor,接入 Agent API 与 Bot API)与下载页 1 tuần trước cách đây
vite.config.ts 8cebdbbd3d feat: Android App(Capacitor,接入 Agent API 与 Bot API)与下载页 1 tuần trước cách đây

README.md

Android App(apps/mobile)

自己使用的 Android 客户端:在 App 里填写 Agent Key 和 Bot Key,直接调用 AgentServer 的 /v1(对话)和 /bot/v1(工作组)。

技术栈:Vue 3 + Capacitor 8,界面复用 @agent-server/chat-ui(AgentChat、TeamChat),请求复用 @agent-server/client。

功能

模块 功能
对话(Agent Key) 选择 Profile 新建会话;会话列表、已归档、重命名、归档、删除;流式输出、中断、审批与提问、上传附件;定时任务与后台调用(组件自带);会话文件;用量统计
工作组(Bot Key) 新建工作组(选组长、组员,查看能力卡片);按状态筛选;群聊、@ 机器人、任务进度、限额卡片;暂停、恢复、关闭、重新打开、重命名、删除;成员的添加、移出、停止、开始新会话;任务列表(继续或取消);文件;用量;限额
设置 服务地址、两种 Key(可测试连接)、在工作组中的称呼、主题

文件:图片和文本在 App 内预览,其他文件通过系统分享面板用其他 App 打开或保存。

服务端需要的配置

App 的 WebView 来源是 https://mobile.zenpower.local(见 capacitor.config.ts)。需要在后台「系统设置」的「允许浏览器直接调用 API 的业务平台来源(CORS)」中加入这个地址,否则请求会被跨域拦截。

开发

pnpm dev:mobile          # 浏览器中调试:http://127.0.0.1:5175,/v1 与 /bot/v1 通过 Vite 代理转发
AGENT_SERVER_URL=http://127.0.0.1:8788 pnpm dev:mobile   # 改为转发到本地开发服务

浏览器调试时,用 DevTools 切换到手机尺寸。设置保存在 localStorage 中,不需要配置跨域。

打包 APK

pnpm apk                 # 构建前端 → cap sync → gradlew assembleDebug

产物:apps/mobile/android/app/build/outputs/apk/debug/app-debug.apk,复制到手机后安装(需要允许安装未知来源的应用)。

本机环境:

  • JDK 21(Capacitor 8 需要),通过 ~/.gradle/gradle.properties 的 org.gradle.java.home 指定
  • Android SDK 在 ~/Android/Sdk,通过 android/local.properties 的 sdk.dir 指定(该文件不提交);缺少的 SDK 平台由 Gradle 自动下载

发布到下载页

# 先修改 package.json 的 version(versionCode 由它计算,覆盖安装要求只增不减)
deploy/release-apk.sh    # 打包 → dist-mobile/ → /srv/agent-server/app/mobile/,不需要重启服务

下载页:https://agent.zenpower.cc/app(公开,含介绍、扫码与安装说明);/app/index.json 为最新版本信息。

pnpm -r build(部署脚本使用)不会构建这个应用:前端构建命令是 build:web,不叫 build。

限制

  • App 在后台时系统会断开流式连接,回到前台后自动重连并补齐消息;没有推送通知。
  • Key 保存在 App 的私有存储中(未加密)。手机丢失时,到后台停用对应的 Key。