AI Skill Hub 强烈推荐:AutoRAG Agent工作流 是一款优质的Agent工作流。已获得 4.8k 颗 GitHub Star,AI 综合评分 8.2 分,在同类工具中表现稳健。如果你正在寻找可靠的Agent工作流解决方案,这是一个值得深入了解的选择。
AutoRAG是专业的RAG评估开源框架,提供自动化的检索增强生成工作流与基准测试工具。支持文档解析、向量嵌入、工作流分析等功能,适合AI研究者、RAG应用开发者和模型评估团队使用。
AutoRAG Agent工作流 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
AutoRAG是专业的RAG评估开源框架,提供自动化的检索增强生成工作流与基准测试工具。支持文档解析、向量嵌入、工作流分析等功能,适合AI研究者、RAG应用开发者和模型评估团队使用。
AutoRAG Agent工作流 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
# 方式一:pip 安装(推荐)
pip install autorag
# 方式二:虚拟环境安装(推荐生产环境)
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install autorag
# 方式三:从源码安装(获取最新功能)
git clone https://github.com/Marker-Inc-Korea/AutoRAG
cd AutoRAG
pip install -e .
# 验证安装
python -c "import autorag; print('安装成功')"
# 命令行使用
autorag --help
# 基本用法
autorag input_file -o output_file
# Python 代码中调用
import autorag
# 示例
result = autorag.process("input")
print(result)
# autorag 配置文件示例(config.yml) app: name: "autorag" debug: false log_level: "INFO" # 运行时指定配置文件 autorag --config config.yml # 或通过环境变量配置 export AUTORAG_API_KEY="your-key" export AUTORAG_OUTPUT_DIR="./output"
Now your agent can find anything in your computer.
<p align="left"> <a href="https://www.npmjs.com/package/@autorag/librarian"><img src="https://img.shields.io/npm/v/@autorag/librarian.svg?style=flat-square&color=38bdf8" alt="npm version" /></a> <a href="https://www.npmjs.com/package/@autorag/librarian"><img src="https://img.shields.io/npm/dm/@autorag/librarian.svg?style=flat-square&color=818cf8" alt="npm downloads" /></a> <a href="https://github.com/Marker-Inc-Korea/AutoRAG/stargazers"><img src="https://img.shields.io/github/stars/Marker-Inc-Korea/AutoRAG?style=flat-square&logo=github&color=f59e0b" alt="GitHub stars" /></a> <a href="https://github.com/Marker-Inc-Korea/AutoRAG/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/Marker-Inc-Korea/AutoRAG/ci.yml?branch=main&label=CI&style=flat-square" alt="CI Status" /></a> <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-green.svg?style=flat-square" alt="License: Apache-2.0" /></a> <img src="https://img.shields.io/badge/node-%3E%3D24.0.0-informational.svg?style=flat-square" alt="Node >= 24" /> <img src="https://img.shields.io/badge/bun-%3E%3D1.2-black.svg?style=flat-square&logo=bun" alt="Bun >= 1.2" /> </p>
<p align="center"> <img src="assets/autorag-agent-social-preview.png" alt="AutoRAG Agent" width="100%" /> </p>
[!IMPORTANT] Looking for the original AutoRAG (RAG AutoML / pipeline optimization tool)? This repository now hosts AutoRAG 2.0, a complete reimagining of AutoRAG as a personal librarian agent for your office work. The original Python-based AutoRAG — the RAG AutoML tool for automatically finding an optimal RAG pipeline for your data — now lives in thelegacy/directory of this repository. The legacy AutoRAG is NOT abandoned. It continues to be maintained (bug fixes, dependency updates, and PyPI releases viapip install AutoRAG) in maintenance mode. Existing users can keep using it exactly as before — see the legacy README for its documentation, and file issues in this repository as usual. New feature development is focused on AutoRAG Agent (2.0).
---
kordoc.jikji-cli) if installed.<workspace>/.autorag/bin on first run.<workspace>/.autorag/everything/ and runs a private, user-level instance that indexes only your configured search roots: no administrator rights, no Everything service, no whole-drive scan, no HTTP/ETP server, and no change to any Everything you already run. Set "everything": false in the config to turn it off. macOS and Linux are not affected.autorag setup and the TUI download the pinned filee-cli release (~85 MB, SHA-256 verified) into <AUTORAG_HOME>/tools/filee-cli/<version>/, so the agent can convert between 255 formats offline with convert_files. A filee/filee-cli already on PATH is used instead. Set "filee": { "autoInstall": false } to forbid the download or "filee": { "enabled": false } to remove the tools. Filee fetches its own engines (FFmpeg, Pandoc, LibreOffice, calibre, Ghostscript; hundreds of MB, only when a conversion needs one) on first use.fsearch-cli yourself (e.g. brew install NomaDamas/fsearch-mac/fsearch-mac (installs the fsearch-cli binary); GPL-2.0, spawned as a separate process, never bundled or linked). On macOS and Linux, AutoRAG builds a per-workspace database at <workspace>/.autorag/fsearch/ indexing only your configured search roots, and keeps a fsearch-cli watch daemon live (FSEvents/inotify) for sub-second name search. It never touches the FSearch app's own database. Without fsearch-cli, name search falls back to a slow bounded filesystem walk. Set "fsearch": false in the config to turn it off. Windows is not affected (Everything covers it).---
AutoRAG Agent is published as @autorag/librarian (requires Node.js ≥ 24 or Bun):
```bash
bun install -g @autorag/librarian
autorag refresh
If you are an AI coding agent or LLM (Claude Code, Cursor, Windsurf, Codex, Senpi, Pi, etc.) tasked with installing, configuring, or querying AutoRAG Agent, use our built-in skills located in the skills/ directory:
| Skill | Directory | When to Use |
|---|---|---|
**autorag** | [skills/autorag/](skills/autorag/SKILL.md) | Model-backed querying, searching, comparing, and summarizing with an already configured AutoRAG librarian. |
**autorag-setup** | [skills/autorag-setup/](skills/autorag-setup/SKILL.md) | Installing AutoRAG, configuring the model-backed librarian, adding roots/datasources, running health checks, and registering Lite MCP when needed. |
**autorag-lite-setup** | [skills/autorag-lite-setup/](skills/autorag-lite-setup/SKILL.md) | Installing/registering autorag-mcp, initializing model-free config, maintaining indexes, and verifying MCP search. |
Skills are not auto-discovered — copy only the setup skill when an agent needs to bootstrap AutoRAG. Routine AutoRAG Lite retrieval is provided by MCP tools, not by a autorag-lite-search skill or shell command.
```bash
AUTORAG_SKILLS="$(npm root -g)/@autorag/librarian/skills"
mkdir -p .claude/skills cp -R "$AUTORAG_SKILLS/autorag-lite-setup" .claude/skills/ ```
Run the setup skill once to register the stdio server with the host. Reload the agent, then discover the actual tool names and schemas with MCP tools/list. The normal Lite path is autorag.status → autorag.refresh when needed → autorag.search; use autorag.report and autorag.evidence for the optional curation lifecycle. Copy skills/autorag and skills/autorag-setup only when the agent should also drive the model-backed librarian, and skills/autorag-doctor for diagnostics. Other agents read their own skill directories; copy the same setup folder there and reload the agent session so it picks up the MCP registration instructions. Do not copy or retain the removed autorag-lite-search skill. The package also ships internal-skills/, which holds the librarian's own turn rules (for example internal-skills/organize/) — those are never parent-agent skills, so do not copy them into another agent.
import { AutoRAGAgent } from "@autorag/librarian";
// Initialize librarian agent
const agent = new AutoRAGAgent({
searchPaths: ["/path/to/documents"],
});
// Run curated search loop
const response = await agent.searchDocuments("Summarize recent compliance updates");
console.log("Answer:", response.answer);
for (const result of response.results) {
console.log(`[${result.number}] ${result.title} (${result.source})`);
console.log(` ${result.summary}`);
}
A caller can steer a search while it runs, the way Enter steers a TUI search, and stop it:
const run = (async () => {
for await (const event of agent.searchDocumentsStream("When is the launch?")) {
if (event.type === "preliminary") console.log("Quick:", event.response.answer);
if (event.type === "complete") console.log("Final:", event.response.answer);
}
})();
// A correction of the running search, not a new question. false = no search to steer.
agent.steer("Use the June plan, not the April one.");
// agent.abort() stops the whole search, including every later phase.
await run;
steer() reaches the search's next model request (also between phases), cuts in-flight retrieval and the baseline prefetch short, and always runs verification, whose prompt restates the correction. It returns false when no search is running, the search was stopped, or it is past its last model request; ask the text as a new question then.
A refresh can be cancelled and observed from code:
const controller = new AbortController();
try {
await agent.refresh(false, {
signal: controller.signal, // controller.abort() stops it
onProgress: ({ phase, processed, total, currentVirtualPath }) => {
console.log(`${phase} ${processed}/${total}`, currentVirtualPath ?? "");
},
});
} catch (error) {
if (controller.signal.aborted) console.log("refresh cancelled");
else throw error;
}
signal is checked between files and between phases, kills an in-flight parse worker, and terminates the MinSync, Jikji and datasource child processes (and their descendants). The refresh then rejects with the signal's reason and is recorded as failed; files already mirrored are kept and not re-parsed on the next run. onProgress reports parsed (processed/total are files, currentVirtualPath is the file about to be processed) and datasources (processed/total are datasource skills). During the parse phase .autorag/refresh-progress.json also carries the running sourceFiles.total and parsedCounts, refreshed every 25 files rather than per file. The marker is replaced with a retried rename (an in-place overwrite if a reader keeps the destination held, as on Windows). Without these options a refresh behaves as before.
---
autorag init --search-paths ~/Documents/research
autorag search "What are our primary Q3 deliverables?"
| Command | Description |
|---|---|
autorag init | Initialize ~/.autorag/config.json with search roots, document languages, and model settings |
autorag refresh | Refresh parsed mirrors, MinSync CDC chunks, datasources, Jikji, and the platform file-name index (Everything on Windows, FSearch on macOS/Linux) |
autorag search "<query>" | Run the librarian agent to curate structured answers |
autorag status | Inspect corpus freshness, indexing status, and vector readiness |
autorag health | Check model provider authentication, token validity, and API reachability |
autorag models list | List chat models the pi runtime can resolve (built-ins, models.json, custom/extension providers) with provider auth status; never prints credential values |
autorag update-check | Compare the running autorag against the published npm version (also runs on autorag tui launch) |
autorag tui | Open Pi's interactive librarian TUI (/login, /model, /resume, …); the agent can stop and ask you a multiple-choice or open question through the [ask_user tool](docs/ask-user.md); --telegram / --whatsapp / --discord add the Telegram / WhatsApp / Discord remote-control bridges; --permission-mode ask\|auto\|full (Shift+Tab, /permissions) sets the [approval gate for file changes](docs/permissions.md) |
autorag duplicates [DIR] | Read-only scan for exact and near-duplicate document families with dupey |
autorag lite ... | CLI bootstrap, indexing repair, terminal maintenance, and fallback interface; agents use MCP for normal Lite operation |
autorag memory inspect | Render a read-only, path-opaque snapshot of retrieval memory (judged evidence, curated results, evidence chunks, insights); model-free |
autorag evidence <session> | Inspect persisted evidence behind numbered results; MCP clients normally use autorag.evidence, and the CLI stays available for terminal maintenance |
---
1. Install CLI:
command -v autorag >/dev/null || bun install -g @autorag/librarian
2. Inspect & Preflight: autorag status --json # check corpus freshness and index readiness
autorag duplicates --json # scan for exact or near-duplicate document families
3. Perform Curated Search: autorag search "your question" --json
4. Safety Guidelines for Agents: - Setup, diagnostics, indexing, and refresh never modify your documents. An agent that installs, configures, or repairs AutoRAG (Claude Code, Codex, and similar) must not move, rename, edit, or delete user documents as part of that work. That rule is about those procedures; it is not a limit on the librarian itself, which may organize, create, or modify files in local sessions when the user asks (see Local File Organization in the system prompt). - Never permanently delete. Deletion goes to the OS trash, and every change is listed as old path → new path so it can be undone. - AutoRAG writes index artifacts into <workspace>/.autorag/ and Jikji's central store (<OS data dir>/jikji/, override with JIKJI_DATA_DIR). Jikji also drops a .jikji_agent_map.md guide into each indexed root. - Never print or leak API keys, tokens, or credential values into stdout or logs.
---
When search returns nothing, a datasource disappears from results, refresh hangs, or the embedder is unavailable, run the autorag-doctor agent skill (skills/autorag-doctor/SKILL.md). Point your coding agent at it and say "check AutoRAG" — it walks the full diagnose-and-repair procedure and ends with a per-datasource status table showing what is indexed and what actually returns hits.
The first three commands cover most of it:
autorag status --json # freshness, per-component state, diagnostics
autorag health --json # model resolution + one live completion probe
autorag setup # resolves the embedding backend and reports it
Indexing is not the same thing as searchability, so always confirm retrieval itself through the connected Lite MCP server:
autorag.status {}
autorag.refresh {}
autorag.search {"query":"a word that certainly appears","topK":3}
autorag.search {"query":"recent topic","scope":"/discord/local/**","topK":3}
The CLI equivalents remain available for terminal repair, but do not use them as the agent's normal Lite search path.
Common failures and their fix:
| Symptom | Diagnostic code | Fix |
|---|---|---|
| Results are missing recent files | stale-index | autorag refresh --method parsed,minsync --json |
| Semantic search returns nothing after changing the embedder, or after moving off the old embedding gateway | embedding-identity-mismatch | autorag index rebuild --method minsync |
No remote endpoint answers, no minsync serve daemon could start, and the in-process addon is missing or failed | embedder-unavailable | run minsync serve by hand to see its own error, install MinSync, install the optional @nomadamas/minsync-native addon, or configure a remote minSync.embedder |
| A datasource is healthy in its own CLI but absent from results | — | confirm it is configured under datasources and connected through its native CLI |
| A datasource errors during refresh | datasource-index-failed | run that CLI's own doctor |
MinSync binary missing (search and refresh fail with MinSync is required ...) | — | cargo install minsync, or leave minSync.autoInstall on and re-run refresh |
| Jikji missing | jikji-unavailable | check the Rust toolchain, re-run refresh |
Jikji prepare of a large root times out (the Jikji prepare run timed out) | jikji-prepare-failed | the refresh still finishes and the other roots are indexed. There is no fixed total wall: the per-root hang guard is jikji.timeoutMs (60 s base) plus jikji.prepareTimeoutMsPerFile ms per file under the root (default: jikji.parseTimeout, 5 s), uncapped, so a huge root is not cut by its size and only a run stuck beyond every file hitting its parse limit is killed. Set prepareTimeoutMsPerFile: 0 for a flat timeoutMs wall. jikji.parseTimeout (seconds) is the per-file limit, forwarded to jikji prepare --parse-timeout; jikji skips a file that exceeds it. A timeout kills jikji's whole process group |
| Windows file-name search fails during refresh | everything-index-failed | read the ES exit code and stderr in the message, then autorag refresh --method everything --json |
| Every search does a full local search and verification, even for small talk | query-route-fallback | sign in to Dazzi Models with /login, or set OPENROUTER_API_KEY (Jev routing and decomposition are on by default) |
Native datasource stores stay owned by their CLIs — AutoRAG never rebuilds them. Fix a broken archive with lazykatok doctor, discrawl --json metadata, slacrawl --json doctor, wacrawl --json doctor, telecrawl --json doctor, notcrawl doctor, or mailcrawl doctor, then re-run autorag refresh --method datasources --json.
---
aiskill88点评:AutoRAG是RAG领域专业工具,4.8k星证明受认可度高,完善的工作流和评估框架对RAG应用开发者很有价值,持续维护。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ Apache 2.0 — 宽松开源协议,可商用,需保留版权声明和 NOTICE 文件,含专利授权条款。
总体来看,AutoRAG Agent工作流 是一款质量优秀的Agent工作流,在同类工具中具备一定竞争力。AI Skill Hub 将持续追踪其更新动态,建议收藏备用,结合自身场景选择合适时机引入使用。
| 原始名称 | AutoRAG |
| 原始描述 | 开源AI工作流:AutoRAG: An Open-Source Framework for Retrieval-Augmented Generation (RAG) Evalu。⭐4.8k · Python |
| Topics | RAG评估检索增强生成工作流自动化基准测试文档解析 |
| GitHub | https://github.com/Marker-Inc-Korea/AutoRAG |
| License | Apache-2.0 |
| 语言 | Python |
收录时间:2026-05-16 · 更新时间:2026-05-19 · License:Apache-2.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端