文档搜索agent
AI搜索代理 API 文档
概述
AI搜索智能体agent是一个智能文档搜索和分析系统,能够自动扫描指定目录中的文档文件,构建缓存,并使用AI分析技术为用户提供精准的文档搜索和问答服务。
基础信息
- Agent名称:
ai_search_agent_c - 缓存文件路径:
/tmp/ai-search-agent-cache.md - 搜索路径:
['/home/docs', '/data/dtns.os'] - 数据目录:
__dirname + '/data/' - 缓存有效期: 30分钟
- 最大相关文件数: 10个
- 单个文件最大内容长度: 100万字符
API端点
1. 标准搜索接口
端点: /rtagent/ai_search_agent_c/search
HTTP方法: ALL (支持GET/POST)
功能: 执行AI驱动的文档搜索和分析
请求参数:
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
user_id |
string | 是 | - | 用户唯一标识符 |
s_id |
string | 否 | - | 会话ID(可选) |
question |
string | 是 | - | 搜索问题/查询内容 |
force_update_cache |
boolean | 否 | false | 是否强制更新缓存 |
请求示例:
{
"user_id": "user123",
"question": "如何配置系统日志?",
"force_update_cache": false
}
返回结果:
{
"ret": true,
"msg": "搜索完成",
"data": {
"question": "搜索问题",
"result": "格式化后的搜索结果",
"detailed_result": "详细的AI分析结果",
"cache_updated": true,
"result_file": "/tmp/ai-search-result-1234567890.md",
"relevant_files": [
{
"file_path": "/home/docs/log_config.md",
"relevance_score": 0.9,
"relevance_reason": "包含日志配置相关内容"
}
],
"search_time": "2024-01-01T12:00:00.000Z"
}
}
返回字段说明:
| 字段名 | 类型 | 说明 |
|---|---|---|
ret |
boolean | 请求是否成功 |
msg |
string | 结果消息 |
data.question |
string | 原始搜索问题 |
data.result |
string | 格式化后的搜索结果(用户友好格式) |
data.detailed_result |
string | 详细的AI分析结果 |
data.cache_updated |
boolean | 本次搜索是否更新了缓存 |
data.result_file |
string | 结果文件保存路径 |
data.relevant_files |
array | 相关文件列表 |
data.relevant_files[].file_path |
string | 文件路径 |
data.relevant_files[].relevance_score |
number | 相关度评分(0-1) |
data.relevant_files[].relevance_reason |
string | 相关原因说明 |
data.search_time |
string | 搜索时间戳 |
2. 增强版搜索接口
端点: /rtagent/ai_search_agent_c/search_enhanced
HTTP方法: ALL (支持GET/POST)
功能: 使用完整文档内容进行更深入的AI分析,提供更精准的搜索结果
请求参数:
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
user_id |
string | 是 | - | 用户唯一标识符 |
s_id |
string | 否 | - | 会话ID(可选) |
question |
string | 是 | - | 搜索问题/查询内容 |
force_update_cache |
boolean | 否 | false | 是否强制更新缓存 |
max_files |
number | 否 | 10 | 最大相关文件数 |
请求示例:
{
"user_id": "user123",
"question": "系统架构设计文档的主要内容是什么?",
"force_update_cache": false,
"max_files": 5
}
返回结果:
{
"ret": true,
"msg": "增强版搜索完成",
"data": {
"question": "搜索问题",
"result": "增强版格式化结果",
"detailed_result": "详细的增强版分析结果",
"cache_updated": true,
"result_file": "/tmp/ai-search-enhanced-result-1234567890.md",
"relevant_files": [
{
"file_path": "/home/docs/architecture.md",
"relevance_score": 0.95,
"relevance_reason": "直接包含系统架构相关内容"
}
],
"files_content": [
{
"file_path": "/home/docs/architecture.md",
"relevance_score": 0.95,
"content_length": 15000,
"relevance_reason": "直接包含系统架构相关内容"
}
],
"search_time": "2024-01-01T12:00:00.000Z",
"search_type": "enhanced"
}
}
返回字段说明:
| 字段名 | 类型 | 说明 |
|---|---|---|
ret |
boolean | 请求是否成功 |
msg |
string | 结果消息 |
data.question |
string | 原始搜索问题 |
data.result |
string | 增强版格式化结果 |
data.detailed_result |
string | 详细的增强版分析结果 |
data.cache_updated |
boolean | 本次搜索是否更新了缓存 |
data.result_file |
string | 增强版结果文件保存路径 |
data.relevant_files |
array | 相关文件列表 |
data.files_content |
array | 文件内容摘要信息 |
data.files_content[].file_path |
string | 文件路径 |
data.files_content[].relevance_score |
number | 相关度评分 |
data.files_content[].content_length |
number | 内容长度(字符数) |
data.files_content[].relevance_reason |
string | 相关原因说明 |
data.search_time |
string | 搜索时间戳 |
data.search_type |
string | 搜索类型(固定为"enhanced") |
3. 手动更新缓存接口
端点: /rtagent/ai_search_agent_c/update_cache
HTTP方法: ALL (支持GET/POST)
功能: 手动触发缓存更新,重新扫描所有文档文件
请求参数:
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
user_id |
string | 是 | - | 用户唯一标识符 |
s_id |
string | 否 | - | 会话ID(可选) |
请求示例:
{
"user_id": "user123"
}
返回结果:
{
"ret": true,
"msg": "缓存更新完成",
"data": {
"cache_file": "/tmp/ai-search-agent-cache.md",
"cache_size": 1024000,
"file_count": 45,
"last_updated": "2024-01-01T12:00:00.000Z",
"search_paths": ["/home/docs", "/data/dtns.os"]
}
}
返回字段说明:
| 字段名 | 类型 | 说明 |
|---|---|---|
ret |
boolean | 请求是否成功 |
msg |
string | 结果消息 |
data.cache_file |
string | 缓存文件路径 |
data.cache_size |
number | 缓存文件大小(字节) |
data.file_count |
number | 缓存的文档文件数量 |
data.last_updated |
string | 最后更新时间戳 |
data.search_paths |
array | 搜索路径列表 |
4. 获取搜索历史接口
端点: /rtagent/ai_search_agent_c/get_search_history
HTTP方法: ALL (支持GET/POST)
功能: 获取用户的搜索历史记录
请求参数:
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
user_id |
string | 是 | - | 用户唯一标识符 |
s_id |
string | 否 | - | 会话ID(可选) |
limit |
number | 否 | 20 | 返回的历史记录数量限制 |
请求示例:
{
"user_id": "user123",
"limit": 10
}
返回结果:
{
"ret": true,
"msg": "获取搜索历史成功",
"data": {
"user_id": "user123",
"history": [
{
"question": "如何配置系统日志?",
"cache_status": {
"cache_updated": false,
"reason": "cache_valid"
},
"result_file": "/tmp/ai-search-result-1234567890.md",
"relevant_files": [
{
"file_path": "/home/docs/log_config.md",
"relevance_score": 0.9,
"relevance_reason": "包含日志配置相关内容"
}
],
"timestamp": 1704067200000,
"search_time": "2024-01-01T12:00:00.000Z"
}
],
"total": 1,
"limit": 10
}
}
返回字段说明:
| 字段名 | 类型 | 说明 |
|---|---|---|
ret |
boolean | 请求是否成功 |
msg |
string | 结果消息 |
data.user_id |
string | 用户ID |
data.history |
array | 搜索历史记录列表 |
data.history[].question |
string | 搜索问题 |
data.history[].cache_status |
object | 缓存状态信息 |
data.history[].cache_status.cache_updated |
boolean | 是否更新了缓存 |
data.history[].cache_status.reason |
string | 缓存更新原因 |
data.history[].result_file |
string | 结果文件路径 |
data.history[].relevant_files |
array | 相关文件列表 |
data.history[].timestamp |
number | 时间戳(毫秒) |
data.history[].search_time |
string | 搜索时间(ISO格式) |
data.total |
number | 历史记录总数 |
data.limit |
number | 返回的数量限制 |
数据结构说明
1. 缓存文件结构
缓存文件为Markdown格式,包含以下部分:
# AI搜索缓存文件
生成时间: 2024-01-01T12:00:00.000Z
## 搜索路径: /home/docs
### 文件: /home/docs/log_config.md
- 修改时间: 2024-01-01T11:30:00.000Z
- 大小: 2048 bytes
- 预览内容:
日志配置说明...
### 文件: /home/docs/api_docs.md
- 修改时间: 2024-01-01T11:25:00.000Z
- 大小: 4096 bytes
- 预览内容:
API文档...
2. 相关文件分析结果
{
"relevant_files": [
{
"file_path": "文件完整路径",
"relevance_score": 0.95, // 0-1之间的相关度分数
"relevance_reason": "相关原因说明"
}
]
}
3. 文件内容信息
{
"file_path": "文件路径",
"relevance_score": 0.95,
"relevance_reason": "相关原因",
"content": "文件内容(可能被截断)",
"content_length": 15000,
"original_length": 20000,
"error": "错误信息(如果有)"
}
搜索流程说明
标准搜索流程
- 缓存检查: 检查缓存文件是否存在及是否过期
- 缓存更新: 根据需要更新或重建缓存
- 相关文件分析: 使用AI分析缓存内容,找出与问题最相关的文件
- 内容读取: 读取相关文件的完整内容
- AI分析: 使用talkAgentFromHistory进行综合分析
- 结果保存: 将结果保存到临时文件
- 历史记录: 保存搜索历史
增强版搜索流程
- 缓存检查: 同标准流程
- 缓存更新: 同标准流程
- 相关文件分析: 使用AI分析找出相关文件
- 完整内容读取: 读取相关文件的完整内容(支持智能截断)
- 深度AI分析: 使用增强版talkAgentFromHistory进行完整文档分析
- 结果保存: 将详细结果保存到临时文件
- 历史记录: 保存增强版搜索历史
错误处理
所有API接口都包含错误处理机制,返回格式如下:
{
"ret": false,
"msg": "错误描述信息",
"data": null
}
常见错误信息:
用户ID和搜索问题不能为空搜索失败: [具体错误信息]获取搜索历史失败: [具体错误信息]更新缓存失败: [具体错误信息]
注意事项
- 缓存机制: 系统会自动维护缓存,30分钟内不会重复扫描文件系统
- 文件类型支持: 支持.md、.txt、.html、.js、.json格式文件
- 内容限制: 单个文件最大处理100万字符
- 历史记录: 每个用户最多保存100条搜索历史
- 性能考虑: 增强版搜索会读取完整文件内容,可能消耗更多资源
- 文件权限: 确保应用有权限访问搜索路径中的文件
使用建议
- 对于简单查询,使用标准搜索接口
- 对于复杂问题或需要深度分析的情况,使用增强版搜索接口
- 定期使用
update_cache接口手动更新缓存,确保数据最新 - 使用
get_search_history接口查看历史搜索记录,避免重复工作 - 注意
force_update_cache参数的使用,避免不必要的文件系统扫描