# Android Agent调用示例 (Java版本) 这是一个使用Java开发的Android示例项目,演示如何调用情感分析Agent。 ## 📋 项目结构 ``` androidExampleDemo/ ├── app/ │ ├── src/ │ │ └── main/ │ │ ├── java/com/example/agentclient/ │ │ │ ├── MainActivity.java │ │ │ ├── models/ │ │ │ │ ├── Agent.java │ │ │ │ ├── AgentExecutionRequest.java │ │ │ │ ├── ExecutionResponse.java │ │ │ │ ├── ExecutionStatusResponse.java │ │ │ │ └── TokenResponse.java │ │ │ └── utils/ │ │ │ └── ApiClient.java │ │ ├── res/ │ │ │ ├── layout/ │ │ │ │ └── activity_main.xml │ │ │ ├── values/ │ │ │ │ └── strings.xml │ │ │ └── xml/ │ │ │ └── network_security_config.xml │ │ └── AndroidManifest.xml │ └── build.gradle ├── build.gradle ├── settings.gradle ├── gradle.properties └── README.md ``` ## 🚀 快速开始 ### 1. 配置API地址 在 `app/src/main/java/com/example/agentclient/utils/ApiClient.java` 中修改: ```java private static final String BASE_URL = "http://your-server-ip:8037"; ``` ### 2. 配置登录信息 在 `MainActivity.java` 中修改: ```java private static final String USERNAME = "admin"; private static final String PASSWORD = "123456"; private static final String AGENT_NAME = "情感分析Agent"; // Agent名称 ``` ### 3. 运行项目 1. 使用Android Studio打开项目 2. 同步Gradle依赖 3. 运行到Android设备或模拟器 ## 📱 功能特性 - ✅ 用户登录 - ✅ 调用Agent API - ✅ 实时显示执行状态 - ✅ 显示Agent回复 - ✅ 错误处理 ## 🔧 依赖库 - Retrofit2:网络请求 - OkHttp:HTTP客户端 - Gson:JSON解析 - AndroidX:Android支持库 ## 📝 使用说明 1. **登录** - 应用启动后会自动登录(使用配置的用户名和密码) - 登录成功后可以开始使用Agent 2. **发送消息** - 在输入框中输入文本 - 点击"发送"按钮 - 等待Agent处理并返回结果 3. **查看结果** - Agent的回复会显示在消息列表中 - 执行状态会实时更新 ## 🔑 API说明 ### 登录API ``` POST /api/v1/auth/login Content-Type: application/x-www-form-urlencoded username=admin&password=123456 ``` ### 执行Agent API ``` POST /api/v1/executions Authorization: Bearer Content-Type: application/json { "agent_id": "agent-id", "input_data": { "query": "用户输入", "USER_INPUT": "用户输入" } } ``` ### 获取执行状态API ``` GET /api/v1/executions/{execution_id}/status Authorization: Bearer ``` ### 获取执行结果API ``` GET /api/v1/executions/{execution_id} Authorization: Bearer ``` ## 🎯 示例:调用情感分析Agent ```java // 1. 登录获取token Call loginCall = ApiClient.getService().login("admin", "123456"); loginCall.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { if (response.isSuccessful()) { String token = "Bearer " + response.body().getAccessToken(); // 2. 通过名称查找Agent Call> agentsCall = ApiClient.getService() .getAgents("情感分析Agent", 100, token); agentsCall.enqueue(new Callback>() { @Override public void onResponse(Call> call, Response> response) { if (response.isSuccessful() && response.body() != null) { String agentId = response.body().get(0).getId(); // 3. 执行Agent Map inputData = new HashMap<>(); inputData.put("query", "这个产品真的很棒!"); inputData.put("USER_INPUT", "这个产品真的很棒!"); AgentExecutionRequest request = new AgentExecutionRequest(agentId, inputData); Call execCall = ApiClient.getService() .executeAgent(request, token); execCall.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { if (response.isSuccessful()) { String executionId = response.body().getId(); // 4. 轮询获取结果(见MainActivity.pollExecutionResult方法) } } @Override public void onFailure(Call call, Throwable t) { // 处理错误 } }); } } @Override public void onFailure(Call> call, Throwable t) { // 处理错误 } }); } } @Override public void onFailure(Call call, Throwable t) { // 处理错误 } }); ``` ## 📦 构建要求 - Android Studio Hedgehog | 2023.1.1 或更高版本 - JDK 17 或更高版本 - Android SDK API 24 或更高版本 - Gradle 8.0 或更高版本 ## 💻 开发语言 - **Java 17** - 主要开发语言 - 使用Retrofit进行网络请求 - 使用Gson进行JSON解析 ## 🔒 安全注意事项 1. **不要硬编码密码**:生产环境应该使用安全的认证方式 2. **使用HTTPS**:生产环境必须使用HTTPS 3. **Token管理**:妥善保管和刷新Token 4. **网络安全配置**:Android 9+需要配置网络安全策略 ## 🐛 故障排除 ### 问题1:网络连接失败 - 检查API地址是否正确 - 检查设备网络连接 - 检查服务器是否运行 ### 问题2:登录失败 - 检查用户名和密码是否正确 - 检查服务器认证服务是否正常 ### 问题3:Agent执行失败 - 检查Agent ID是否正确 - 检查Agent是否已发布 - 查看服务器日志获取详细错误信息 ## 📚 相关文档 - [Agent使用说明](../Agent使用说明.md) - [API文档](../backend/API_DOCUMENTATION.md)