基于Oracle 26ai数据库和MCP协议的代理人工智能工作流
概述
该存储库为使用与模型上下文协议(MCP)集成的Oracle Database 26ai功能构建代理AI工作流提供了全面的实施指南。本指南演示了如何利用Oracle的先进人工智能功能和现代通信协议来创建智能、自主的代理。
目录
引言
Oracle Database 26ai引入了突破性的人工智能功能:
- AI矢量搜索:使用嵌入的语义搜索
- JSON关系二元性:统一数据模型
- 数据库中的机器学习:本机机器学习操作
- 属性图:高级关系建模
模型上下文协议(MCP)提供:
- 人工智能代理和数据源之间的标准化通信
- 上下文感知交互
- 工具调用功能
- 实时更新的流媒体支持
架构概述
┌───────────────────────────────────────────────────────┐
│ AI Agent Layer │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Reasoning │ │ Planning │ │ Execution │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└───────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────┐
│ MCP (Model Context Protocol) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Context │ │ Tools │ │ Streaming │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└───────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────┐
│ Oracle Database 26ai │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Vector Search│ │ JSON Duality│ │ Property Graph│ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└───────────────────────────────────────────────────────┘先决条件
- Oracle数据库26ai(或兼容版本)
- Node.js 18+(用于TypeScript示例)
- Java 17+(用于Java示例)
- SQL\*Plus或Oracle SQL开发人员
- OpenAI API密钥(用于嵌入)
快速开始
# Clone the repository
git clone https://github.com/hvrcharon1/oracle-26ai-mcp-agentic-workflows-typescript.git
cd oracle-26ai-mcp-agentic-workflows-typescript
# Install TypeScript dependencies
npm install
# Configure database connection
cp .env.example .env
# Edit .env with your credentials
# Run setup script
npm run setup
# Start example agent
npm start文档
设置指南
MCP集成
- TypeScript MCP客户端 -Node.js实现
- Java MCP客户端 -Java实现
- PL/SQL集成 -数据库端逻辑
代理开发
高级主题
例子
TypeScript代理示例
import { AgenticOracle } from './lib/agentic-oracle';
const agent = new AgenticOracle({
connectionString: 'localhost:1521/FREEPDB1',
user: 'ai_agent',
password: process.env.DB_PASSWORD
});
// Semantic search
const results = await agent.search(
'Find documents about AI vector search',
{ limit: 5, threshold: 0.75 }
);
// Agent conversation
const response = await agent.chat({
message: 'What are the benefits of Oracle 26ai?',
conversationId: 'conv-123'
});Java代理示例
AgenticOracleService agent = new AgenticOracleService(
connection,
openaiApiKey
);
List results = agent.semanticSearch(
"Find documents about AI vector search",
5,
0.75
);
String response = agent.processQuery(
"What are the benefits of Oracle 26ai?",
conversationId
);PL/SQL代理示例
DECLARE
v_conv_id RAW(16);
v_response JSON;
BEGIN
v_conv_id := agent_context_pkg.create_conversation(
p_agent_id => 'assistant-001',
p_user_id => 'user-123'
);
v_response := agent_executor_pkg.process_query(
p_conversation_id => v_conv_id,
p_query => 'What are the benefits of Oracle 26ai?'
);
DBMS_OUTPUT.PUT_LINE(v_response.to_string());
END;用例
1.智能文档处理
使用矢量搜索和AI代理自动分类、提取和处理文档。
2.实时分析代理
使用数据库内ML构建监控数据流并提供智能见解的代理。
3.客户服务自动化
创建具有Oracle JSON Duality支持的上下文感知的会话代理。
4.知识图谱导航
通过AI驱动的探索,利用属性图进行复杂的关系查询。
最佳实践
- 矢量索引优化:使用适当的距离度量和索引参数
- 上下文窗口管理:高效管理对话上下文
- 错误处理:实施稳健的重试机制和回退
- 安全:使用Oracle的安全功能(VPD、加密等)
- 监控:跟踪代理性能和资源利用率
贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 进行更改
- 提交拉取请求
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
资源
支持
对于问题和疑问:
- 在GitHub上打开一个问题
- 检查现有文档
- 查看示例
/examples目录
______________________________________________________________________
最后更新:2025年11月\ 作者:Oracle人工智能代理开发团队\ 版本: 1.0.0
