项目简介
Archive Agent是一个开源的语义文件追踪器,集成了OCR、AI搜索和RAG(Retrieval-Augmented Generation)功能。它旨在帮助用户以标准化的方式管理和访问其文件内容,并将其作为上下文提供给大型语言模型(LLM)客户端。通过实现Model Context Protocol (MCP) 协议,Archive Agent可以被各种支持MCP的IDE插件或AI扩展调用,实现自动化工作流程。
主要功能点
- 智能索引: 自动追踪指定目录和模式下的文件,并提取其文本内容。支持多种文件类型,包括TXT、Markdown、HTML、DOCX、ODT、PDF以及常见的图片格式。
- OCR和图像识别: 能够从PDF文档和图片中提取文字,并利用AI理解图像内容,将其转化为可索引的文本。
- 语义搜索: 利用先进的向量数据库(默认为本地运行的Qdrant)对文件内容进行向量化和索引,支持高效的语义搜索。
- RAG问答: 结合检索到的相关文件内容,利用AI模型生成针对用户问题的详细答案,实现基于个人文件库的智能问答。
- 多AI提供商支持: 可灵活配置使用OpenAI或本地运行的Ollama模型进行文本处理和问答。
- 多种接口: 提供命令行界面(CLI)、简单的图形用户界面(GUI)以及符合MCP协议的服务器接口。
- MCP服务器: 作为MCP服务器,核心功能包括:
- 资源托管: 托管并管理您的文件内容作为可访问的资源。
- 工具注册与执行: 注册一系列工具,允许连接的LLM客户端调用以执行特定任务(如获取文件列表、搜索、执行RAG问答)。
- 能力声明: 向客户端声明其提供的工具和能力。
- 通过JSON-RPC协议通信,支持SSE等传输方式。
安装步骤
- 安装依赖: 确保您的系统安装了Docker(用于运行Qdrant)、Python (版本 >= 3.10, < 3.13) 和 Poetry (Python依赖管理工具)。
- 克隆仓库:
git clone https://github.com/shredEngineer/Archive-Agent cd Archive-Agent - 安装项目依赖:
poetry install - 安装Spacy模型及系统依赖:
poetry run python -m spacy download xx_sent_ud_sm sudo apt install -y pandoc python3-tk - 设置执行权限并创建CLI别名:
chmod +x *.sh echo "alias archive-agent='$(pwd)/archive-agent.sh'" >> ~/.bashrc && source ~/.bashrc - 启动Qdrant数据库: Archive Agent需要一个本地运行的Qdrant数据库。使用以下脚本启动Docker容器中的Qdrant:
提示:首次运行会下载Docker镜像。如果需要无root权限管理Docker,请按README指示操作。./ensure-qdrant.sh - 首次运行配置: 第一次运行 'archive-agent' 命令时,会提示您选择AI提供商(如OpenAI或Ollama)和OCR策略。根据提示进行选择。您也可以后续手动编辑用户目录下的设置文件 '~/.archive-agent-settings/<profile_name>/config.json' 进行修改。
服务器配置(供MCP客户端使用)
Archive Agent可以作为一个后台MCP服务器运行,供支持MCP协议的客户端(如某些IDE插件或AI助手)连接和使用。MCP客户端连接服务器通常需要服务器的启动命令和参数。
以下是Archive Agent MCP服务器所需的启动配置信息(JSON格式,您需要将这些信息配置到您的MCP客户端中):
{ "serverName": "Archive-Agent", "command": "archive-agent", "args": [ "mcp" ], "description": "Archive Agent MCP Server for RAG and file context.", "capabilities": { "tools": [ {"name": "get_patterns", "description": "Get the list of included / excluded patterns."}, {"name": "get_files_tracked", "description": "Get the list of tracked files."}, {"name": "get_files_changed", "description": "Get the list of changed files."}, {"name": "get_search_result", "description": "Get the list of files relevant to the question.", "parameters": {"question": "string"}}, {"name": "get_answer_rag", "description": "Get answer to question using RAG.", "parameters": {"question": "string"}} ] }, "connection": { "type": "sse", "url": "http://127.0.0.1:8008/sse" } }
- 'serverName': MCP服务器的友好名称,客户端用于显示和识别。
- 'command': 用于在您的系统上启动Archive Agent的命令,即安装步骤中设置的别名 'archive-agent'。
- 'args': 启动命令所需的参数列表,'["mcp"]' 指示Archive Agent以MCP服务器模式启动。
- 'description': 服务器的简要描述。
- 'capabilities': 声明服务器提供的能力,这里列出了可以通过MCP调用的工具及其描述和参数。
- 'connection': 连接信息,指示连接类型(SSE)和服务器监听的URL。默认端口为 8008,可在配置文件 '~/.archive-agent-settings/<profile_name>/config.json' 中修改 'mcp_server_port'。
将此配置添加到您的MCP客户端后,客户端即可通过执行 'archive-agent mcp' 命令来启动服务器,并通过 'http://127.0.0.1:8008/sse' 与其建立SSE连接进行通信。
基本使用方法
- 启动MCP服务器: 打开终端,运行:
服务器将在前台运行,监听来自MCP客户端的连接。此时,您可以打开支持MCP的客户端,配置连接信息后,客户端即可调用Archive Agent提供的工具。archive-agent mcp - 配置追踪模式: (在另一个终端或停止服务器后使用CLI)
- 切换或创建配置文件: 'archive-agent switch "My Code Docs"'
- 添加要包含的文件模式: 'archive-agent include "~/projects/my_repo/**/*.md"'
- 添加要排除的文件模式: 'archive-agent exclude "~/projects/my_repo/**/test_*.md"'
- 查看当前模式: 'archive-agent patterns'
- 追踪文件并同步到数据库:
这将执行 'track' (解析模式,识别文件变动) 和 'commit' (将新增/修改/删除的文件同步到Qdrant数据库) 操作。archive-agent update - 通过CLI搜索/查询 (如果无需MCP客户端,可直接使用CLI):
- 搜索相关文件: 'archive-agent search "关于如何优化性能的讨论"'
- 获取RAG问答: 'archive-agent query "项目中性能瓶颈在哪里?"'
- 启动GUI界面: 'archive-agent gui'
信息
分类
数据库与文件