项目简介

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等传输方式。

安装步骤

  1. 安装依赖: 确保您的系统安装了Docker(用于运行Qdrant)、Python (版本 >= 3.10, < 3.13) 和 Poetry (Python依赖管理工具)。
  2. 克隆仓库:
    git clone https://github.com/shredEngineer/Archive-Agent
    cd Archive-Agent
  3. 安装项目依赖:
    poetry install
  4. 安装Spacy模型及系统依赖:
    poetry run python -m spacy download xx_sent_ud_sm
    sudo apt install -y pandoc python3-tk
  5. 设置执行权限并创建CLI别名:
    chmod +x *.sh
    echo "alias archive-agent='$(pwd)/archive-agent.sh'" >> ~/.bashrc && source ~/.bashrc
  6. 启动Qdrant数据库: Archive Agent需要一个本地运行的Qdrant数据库。使用以下脚本启动Docker容器中的Qdrant:
    ./ensure-qdrant.sh
    提示:首次运行会下载Docker镜像。如果需要无root权限管理Docker,请按README指示操作。
  7. 首次运行配置: 第一次运行 '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连接进行通信。

基本使用方法

  1. 启动MCP服务器: 打开终端,运行:
    archive-agent mcp
    服务器将在前台运行,监听来自MCP客户端的连接。此时,您可以打开支持MCP的客户端,配置连接信息后,客户端即可调用Archive Agent提供的工具。
  2. 配置追踪模式: (在另一个终端或停止服务器后使用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'
  3. 追踪文件并同步到数据库:
    archive-agent update
    这将执行 'track' (解析模式,识别文件变动) 和 'commit' (将新增/修改/删除的文件同步到Qdrant数据库) 操作。
  4. 通过CLI搜索/查询 (如果无需MCP客户端,可直接使用CLI):
    • 搜索相关文件: 'archive-agent search "关于如何优化性能的讨论"'
    • 获取RAG问答: 'archive-agent query "项目中性能瓶颈在哪里?"'
    • 启动GUI界面: 'archive-agent gui'

信息

分类

数据库与文件