原文地址: https://blog.cloudnueva.com/adding-ai-agent-to-apex-app ## 在现有 APEX 应用中集成 AI 代理 ![在现有 APEX 应用中集成 AI 代理](https://blog.cloudnueva.com/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F626b62127d5d27b992e4cf90%2F1211a45c-084c-4de8-841e-78fa4821f686.png&w=3840&q=75) ## 引言 现代前沿大语言模型(LLM)与强大的编排和防护措施结合后,已足够可靠以支持实际的代理工作流。在现有 APEX 应用中添加代理可以实现以下目标: * 简化用户工作流 * 简化用户界面 * 自动化重复性任务 * 利用现有数据模型、视图、API等 * 以最小投入获得构建代理的经验 ## AI 代理简介 通过将前沿模型与工具(PL/SQL API、Web 服务)和强治理(权限、审计、防护措施)结合,可以构建一个能够在定义的约束内安全执行多步业务任务的 AI 代理。 为 APEX 构建的代理使用 PL/SQL 框架管理"代理循环"。在这个循环中,LLM 提出建议运行哪些工具,而你的代码决定是否运行它们。你的代码始终掌握控制权。 ![APEX 中的代理循环](https://cdn.hashnode.com/uploads/covers/626b62127d5d27b992e4cf90/1c3ea020-3c94-456f-ba76-1e8ef8fdd3ae.png) ## 简化项目管理 在项目管理应用中,AI 代理通过提供聊天式界面简化了查找信息、自动化重复操作和呈现项目洞察的过程。 ![APEX AI 代理聊天界面截图](https://cdn.hashnode.com/uploads/covers/626b62127d5d27b992e4cf90/6069dca1-1b3a-4043-811a-5186c5eaedff.png) ## 工具集 我们为代理提供了以下工具: * 显示项目结构 * 列出项目团队成员 * 搜索问题、风险和问题(通过向量搜索) * 创建问题、风险和问题 * 更新问题、风险和问题 ## 架构组件 ### 编排器 编排器是一个 PL/SQL 过程,控制代理循环。它使用数据库表在工具调用之间维护状态。 ### 大脑 编排器在每次请求时向 LLM 传递系统提示,作为代理的"大脑"。 ### 调度器 当 LLM 请求工具时,调度器: 1. 验证工具是否存在 2. 验证参数有效性 3. 验证用户权限 4. 执行 PL/SQL 函数或过程 5. 返回响应给编排器 ## 向量搜索 搜索工具使用向量搜索实现语义搜索功能。我们建立了队列机制,APEX 自动化每15分钟处理一次队列内容,使用 `VECTOR_CHUNKS` 和 `VECTOR_EMBEDDING` SQL 函数处理内容。 ## 经验教训 * 永远不要依赖模型处理安全或数据完整性 * 记录一切并保持对话可重放 * 使工具可配置以轻松切换人工确认 * 编写 PL/SQL API 时不要假设消费者是 APEX * 注意上下文大小 * 启用并行工具调用减少循环次数 * 优雅处理失败情况 * 设置最大迭代次数 * 优化用户体验 ## 演示 ![项目管理应用代理演示](https://cdn.hashnode.com/uploads/covers/626b62127d5d27b992e4cf90/00728044-633f-4078-8c58-73080a0a4d8c.gif) ## 幕后 特权用户可以启用诊断功能,查看对话期间跟踪的所有记录。 ![代理诊断截图](https://cdn.hashnode.com/uploads/covers/626b62127d5d27b992e4cf90/3a0c654e-be11-4b52-8da4-358e10940f20.png) ## 结论 在现有 APEX 应用中添加 AI 代理是引入 AI 功能而不重写系统的实用方法。关键在于保持架构简单:让 LLM 解释用户意图并建议操作,但在代码中保持控制。从有限范围开始,使用少量定义明确的工具和强大的检测功能,然后逐步扩展代理能力。