ArXivKB:本地语义研究与论文管理 - Openclaw Skills

作者:互联网

2026-03-30

AI教程

什么是 ArXivKB - 本地 arXiv 知识库?

ArXivKB 是 Openclaw Skills 生态系统中的专用工具,专为需要离线访问科学文献的研究人员和开发人员设计。它自动执行爬取 arXiv 类别、下载 PDF 以及创建高性能语义索引的过程。与云端解决方案不同,该技能完全在您的本地机器上使用 Ollama 和 FAISS 运行,在维护最新科学进展的强大知识库的同时,确保隐私并消除 API 成本。

下载入口:https://github.com/openclaw/skills/tree/main/skills/camopel/arxivkb

安装与下载

1. ClawHub CLI

从源直接安装技能的最快方式。

npx clawhub@latest install arxivkb

2. 手动安装

将技能文件夹复制到以下位置之一

全局模式 ~/.openclaw/skills/ 工作区 /skills/

优先级:工作区 > 本地 > 内置

3. 提示词安装

将此提示词复制到 OpenClaw 即可自动安装。

请帮我使用 Clawhub 安装 arxivkb。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。

Install

ArXivKB - 本地 arXiv 知识库 应用场景

  • 无需手动搜索即可获取最新的 AI 和机器学习研究论文。
  • 构建可搜索的科学 PDF 私有知识库以供离线参考。
  • 使用语义查询而非仅凭标题或摘要,在论文内容中查找特定的技术信息。
  • 根据特定学术领域的官方 arXiv 分类代码,自动摄取研究论文。
ArXivKB - 本地 arXiv 知识库 工作原理
  1. 用户通过 CLI 或 Openclaw Skills 聊天命令配置要跟踪的特定 arXiv 类别。
  2. 摄取引擎查询 arXiv API,以识别在指定时间范围内发布的新论文。
  3. PDF 被下载到本地目录,并使用专门的库进行文本提取处理。
  4. 提取的文本被分割成易于管理的块,并使用 Ollama 转换为高维嵌入。
  5. 这些嵌入被索引在 FAISS 中,以实现亚秒级的语义检索,同时元数据被组织在本地 SQLite 数据库中。

ArXivKB - 本地 arXiv 知识库 配置指南

要安装此技能,请确保您已安装并运行 Python 3.10+ 和 Ollama。执行以下命令:

# 运行安装程序
python3 scripts/install.py

# 启用您喜欢的 arXiv 类别
akb categories add cs.AI cs.CV

# 摄取近期论文以构建本地索引
akb ingest --days 7

ArXivKB - 本地 arXiv 知识库 数据架构与分类体系

ArXivKB 在用户工作区内本地组织数据,以确保性能和隐私。架构包括:

组件 描述
SQLite 数据库 管理论文、文本块、翻译和已启用的类别。
PDF 存储 包含按 arXiv ID 索引的原始 .pdf 文件的目录。
FAISS 索引 用于跨论文块进行快速向量相似性搜索的 FlatIP 索引。
元数据 跟踪发布日期、作者和官方 arXiv 分类代码。
name: arxivkb
description: "Local arXiv paper manager with semantic search. Crawls arXiv categories, downloads PDFs, chunks content, and indexes with FAISS + Ollama embeddings. No cloud API keys required — everything runs locally."
metadata: {"openclaw":{"requires":{"bins":["python3","ollama"]}}}

ArXivKB — Science Knowledge Base

Why This Skill?

?? 100% local — crawls arXiv's free API, embeds with Ollama (nomic-embed-text), indexes in FAISS + SQLite. No cloud cost.

?? Semantic search on paper content — FAISS indexes PDF chunks (not just abstracts), so you find papers by what they contain.

?? arXiv category-based — tracks official arXiv categories (155 available, 8 groups). No free-text queries.

?? Auto-cleanup — configurable expiry deletes old papers, PDFs, and chunks.

Install

python3 scripts/install.py

Works on macOS and Linux. Installs Python deps (faiss-cpu, pdfplumber, tiktoken, arxiv, numpy), pulls nomic-embed-text via Ollama, creates data directories and DB.

Prerequisites

  • Ollama — must be installed and running (ollama serve)
  • Python 3.10+

Quick Start

# 1. Add arXiv categories to track
akb categories add cs.AI cs.CV cs.LG

# 2. Browse all available categories
akb categories browse

# 3. Ingest recent papers (last 7 days)
akb ingest

# 4. Check stats
akb stats

Categories

akb categories list                    # Show enabled categories
akb categories browse                  # Browse all 155 arXiv categories
akb categories browse robotics         # Filter by keyword
akb categories add cs.AI cs.RO         # Enable categories
akb categories delete cs.AI            # Disable a category

Categories are official arXiv codes (e.g. cs.AI, eess.IV, q-fin.ST). The full taxonomy is built in.

Ingestion

akb ingest                    # Crawl, download PDFs, chunk, embed
akb ingest --days 14          # Look back 14 days
akb ingest --dry-run          # Preview only
akb ingest --no-pdf           # Index abstracts only (faster)

Pipeline: arXiv API → PDF download → text extraction (pdfplumber) → chunking (tiktoken, 500 tokens, 50 overlap) → embedding (Ollama nomic-embed-text) → FAISS + SQLite.

Paper Details

akb paper 2401.12345    # Show title, abstract, categories, PDF status

Statistics

akb stats   # Papers, chunks, categories, DB size

Expiry & Cleanup

akb expire               # Delete papers older than 90 days (default)
akb expire --days 30     # Override: delete papers older than 30 days
akb expire --days 30 -y  # Skip confirmation

Configuration

No config file needed. Defaults:

Setting Default Override
Data directory ~/workspace/arxivkb ARXIVKB_DATA_DIR env or --data-dir
Ollama endpoint http://localhost:11434 — (hardcoded)
Embedding model nomic-embed-text (768d) — (hardcoded)
Chunk size 500 tokens, 50 overlap
Expiry 90 days --days flag

Data Layout

~/workspace/arxivkb/
├── arxivkb.db           # SQLite: papers, chunks, translations, categories
├── pdfs/                  # Downloaded PDF files ({arxiv_id}.pdf)
└── faiss/
    └── arxivkb.faiss    # FAISS IndexFlatIP (chunk embeddings)

DB Schema

  • papers: id, arxiv_id, title, abstract, categories, published, status, created_at
  • chunks: id, paper_id, section, chunk_index, text, faiss_id, created_at
  • translations: paper_id, language, abstract, created_at (PK: paper_id+language)
  • categories: code, description, group_name, enabled, added_at (155 entries)

?? Chat Commands (OpenClaw Agent)

When this skill is installed, the agent recognizes /akb as a shortcut:

Command Action
/akb list Show enabled categories
/akb add cs.AI cs.RO Enable categories for crawling
/akb remove cs.AI Disable a category
/akb browse Browse all 155 arXiv categories
/akb browse robotics Filter categories by keyword
/akb stats Show paper/chunk/category counts
/akb help Show available commands

The agent runs these via the akb CLI internally.

?? PrivateApp Dashboard

A companion PWA dashboard is available. Provides:

  • Semantic search across paper content
  • Paper detail with abstract translation (on-demand via LLM)
  • Inline PDF viewing
  • Category browser
  • Stats (papers, chunks, categories)

Architecture

scripts/
├── cli.py             # CLI — categories, ingest, paper, stats, expire
├── db.py              # SQLite schema + CRUD
├── arxiv_crawler.py   # arXiv API search + PDF download
├── arxiv_taxonomy.py  # Full arXiv category taxonomy (155 categories)
├── pdf_processor.py   # PDF text extraction + tiktoken chunking
├── embed.py           # Ollama nomic-embed-text (768d, normalized)
├── faiss_index.py     # FAISS IndexFlatIP manager
├── search.py          # Semantic search: query → FAISS → group by paper
└── install.py         # One-command installer