Nia
Nia 技能
直接 API 访问Nia用于索引和搜索代码仓库、文档、研究论文、HuggingFace 数据集、本地文件夹和软件包。
Nia 提供工具用于索引和搜索外部仓库、研究论文、文档、软件包,并进行 AI 驱动的研究。其主要目标是减少大型语言模型中的幻觉,并为 AI 智能体提供最新的上下文。

设置
获取您的 API 密钥
有两种方式:
- 运行
npx nia-wizard@latest(引导式设置) - 或者访问trynia.ai获取您的密钥
存储密钥
mkdir -p ~/.config/nia
echo "your-api-key-here" > ~/.config/nia/api_key
要求
curljq
Nia 优先工作流程
在使用网络抓取或网络搜索之前,您必须:
- 首先检查已索引的源:
./scripts/sources.sh list或./scripts/repos.sh list - 如果源存在:使用
search.sh universal、repos.sh grep、sources.sh read进行针对性查询 - 如果源不存在但你知道URL:使用
repos.sh index或sources.sh index对其建立索引,然后搜索 - 仅当源未知时:使用
search.sh web或search.sh deep来发现URL,然后建立索引
为何这很重要索引源比网络抓取提供更准确、完整的上下文。网络抓取返回的是截断/摘要内容,而Nia提供完整的源代码和文档。
确定性工作流程
- 首先使用
repos.sh list/sources.sh list - 检查源是否已被索引
如果已索引,使用repos.sh tree/ - sources.sh tree
检查目录树获取结构后,使用search.sh universal、repos.sh grep、 - repos.sh read
进行针对性搜索
- 将发现保存到.md文件中,以便跟踪索引源供将来使用注意事项
- 对于文档,始终索引根链接(例如 docs.stripe.com)以抓取所有页面。
- 索引需要1-5分钟。请等待,然后再次运行列表命令以检查状态。
- 所有脚本都使用环境变量来设置可选参数(例如
EXTRACT_BRANDING=true)。
脚本
所有脚本都位于./scripts/目录下,并使用lib.sh作为共享的认证/cURL辅助函数库。基础URL为:https://apigcp.trynia.ai/v2
每个脚本都使用子命令:./scripts/<脚本名>.sh <命令> [参数...]运行任何脚本时不带参数,即可查看可用命令和用法。
sources.sh —— 文档与数据源管理
./scripts/sources.sh index "https://docs.example.com" [limit] # Index docs
./scripts/sources.sh list [type] # List sources (documentation|research_paper|huggingface_dataset|local_folder)
./scripts/sources.sh get <source_id> [type] # Get source details
./scripts/sources.sh resolve <identifier> [type] # Resolve name/URL to ID
./scripts/sources.sh update <source_id> [display_name] [cat_id] # Update source
./scripts/sources.sh delete <source_id> [type] # Delete source
./scripts/sources.sh sync <source_id> [type] # Re-sync source
./scripts/sources.sh rename <source_id_or_name> <new_name> # Rename source
./scripts/sources.sh subscribe <url> [source_type] [ref] # Subscribe to global source
./scripts/sources.sh read <source_id> <path> [line_start] [end] # Read content
./scripts/sources.sh grep <source_id> <pattern> [path] # Grep content
./scripts/sources.sh tree <source_id> # Get file tree
./scripts/sources.sh ls <source_id> [path] # List directory
./scripts/sources.sh classification <source_id> [type] # Get classification
./scripts/sources.sh assign-category <source_id> <cat_id|null> # Assign category
索引环境变量:DISPLAY_NAME、FOCUS、提取品牌信息,提取图片,是否为PDF,URL匹配模式,排除模式,最大深度,等待时间,检查LLMS_TXT,LLMS_TXT策略,包含截图,仅主要内容,添加全局,最大时长
Grep环境变量:区分大小写完全匹配固定字符串输出模式高亮显示详尽搜索匹配行之后的行数匹配行之前的行数每文件最大匹配数最大总匹配数灵活的标识符:大多数端点接受UUID、显示名称或URL:UUID:550e8400-e29b-41d4-a716-446655440000显示名称:Vercel AI SDK - 核心,openai/gsm8kURL:
Flexible identifiers: Most endpoints accept UUID, display name, or URL:
- UUID:
550e8400-e29b-41d4-a716-446655440000 - Display name:
Vercel AI SDK - Core,openai/gsm8k - URL:
https://docs.trynia.ai/,https://arxiv.org/abs/2312.00752
repos.sh — 仓库管理
./scripts/repos.sh index <owner/repo> [branch] [display_name] # Index repo (ADD_GLOBAL=false to keep private)
./scripts/repos.sh list # List indexed repos
./scripts/repos.sh status <owner/repo> # Get repo status
./scripts/repos.sh read <owner/repo> <path/to/file> # Read file
./scripts/repos.sh grep <owner/repo> <pattern> [path_prefix] # Grep code (REF= for branch)
./scripts/repos.sh tree <owner/repo> [branch] # Get file tree
./scripts/repos.sh delete <repo_id> # Delete repo
./scripts/repos.sh rename <repo_id> <new_name> # Rename display name
Tree 环境变量:INCLUDE_PATHS,EXCLUDE_PATHS,FILE_EXTENSIONS,EXCLUDE_EXTENSIONS,SHOW_FULL_PATHS
search.sh — 搜索
./scripts/search.sh query <query> <repos_csv> [docs_csv] # Query specific repos/sources
./scripts/search.sh universal <query> [top_k] # Search ALL indexed sources
./scripts/search.sh web <query> [num_results] # Web search
./scripts/search.sh deep <query> [output_format] # Deep research (Pro)
query— 带AI响应和来源的目标搜索。环境变量:LOCAL_FOLDERS,CATEGORY,MAX_TOKENS
universal— 跨所有已索引来源的混合向量 + BM25 搜索。环境变量:包含仓库,包含文档,包含 Hugging Face,阿尔法,压缩,最大令牌数,提升语言,扩展符号
网络— 网络搜索。环境:类别(github|公司|研究|新闻|推文|pdf|博客),回溯天数,查找类似内容
深度— 深度人工智能研究(专业版)。环境:详细模式
oracle.sh — Oracle 自主研究(专业版)
./scripts/oracle.sh run <query> [repos_csv] [docs_csv] # Run research (synchronous)
./scripts/oracle.sh job <query> [repos_csv] [docs_csv] # Create async job (recommended)
./scripts/oracle.sh job-status <job_id> # Get job status/result
./scripts/oracle.sh job-cancel <job_id> # Cancel running job
./scripts/oracle.sh jobs-list [status] [limit] # List jobs
./scripts/oracle.sh sessions [limit] # List research sessions
./scripts/oracle.sh session-detail <session_id> # Get session details
./scripts/oracle.sh session-messages <session_id> [limit] # Get session messages
./scripts/oracle.sh session-chat <session_id> <message> # Follow-up chat (SSE stream)
环境变量:OUTPUT_FORMAT,MODEL(claude-opus-4-6|claude-sonnet-4-5-20250929|...)
tracer.sh — Tracer GitHub 代码搜索(专业版)
无需索引即可搜索 GitHub 仓库的自主代理。由具备 100 万上下文长度的 Claude Opus 4.6 提供支持。
./scripts/tracer.sh run <query> [repos_csv] [context] # Create Tracer job
./scripts/tracer.sh status <job_id> # Get job status/result
./scripts/tracer.sh stream <job_id> # Stream real-time updates (SSE)
./scripts/tracer.sh list [status] [limit] # List jobs
./scripts/tracer.sh delete <job_id> # Delete job
环境变量:MODEL(claude-opus-4-6|claude-opus-4-6-1m)
示例工作流程:
# 1. Start a search
./scripts/tracer.sh run "How does streaming work in generateText?" vercel/ai "Focus on core implementation"
# Returns: {"job_id": "abc123", "session_id": "def456", "status": "queued"}
# 2. Stream progress
./scripts/tracer.sh stream abc123
# 3. Get final result
./scripts/tracer.sh status abc123
在以下情况使用 Tracer:
- 探索不熟悉的仓库时
- 搜索尚未建立索引的代码时
- 跨仓库查找实现示例时
papers.sh — 研究论文(arXiv)
./scripts/papers.sh index <arxiv_url_or_id> # Index paper
./scripts/papers.sh list # List indexed papers
支持:2312.00752,https://arxiv.org/abs/2312.00752,PDF URL,旧格式(hep-th/9901001),带版本号(2312.00752v1)。环境:ADD_GLOBAL,DISPLAY_NAME
datasets.sh — HuggingFace 数据集
./scripts/datasets.sh index <dataset> [config] # Index dataset
./scripts/datasets.sh list # List indexed datasets
支持:squad,dair-ai/emotion,https://huggingface.co/datasets/squad。环境:ADD_GLOBAL
packages.sh — 软件包源代码搜索
./scripts/packages.sh grep <registry> <package> <pattern> [ver] # Grep package code
./scripts/packages.sh hybrid <registry> <package> <query> [ver] # Semantic search
./scripts/packages.sh read <reg> <pkg> <sha256> <start> <end> # Read file lines
注册表:npm|py_pi|crates_io|golang_proxyGrep环境:语言,前文上下文,后文上下文,输出模式,头部限制,文件SHA256哈希值混合环境:模式(正则表达式预过滤),语言,文件SHA256哈希值
categories.sh — 组织来源
./scripts/categories.sh list # List categories
./scripts/categories.sh create <name> [color] [order] # Create category
./scripts/categories.sh update <cat_id> [name] [color] [order] # Update category
./scripts/categories.sh delete <cat_id> # Delete category
./scripts/categories.sh assign <source_id> <cat_id|null> # Assign/remove category
contexts.sh — 跨代理上下文共享
./scripts/contexts.sh save <title> <summary> <content> <agent> # Save context
./scripts/contexts.sh list [limit] [offset] # List contexts
./scripts/contexts.sh search <query> [limit] # Text search
./scripts/contexts.sh semantic-search <query> [limit] # Vector search
./scripts/contexts.sh get <context_id> # Get by ID
./scripts/contexts.sh update <id> [title] [summary] [content] # Update context
./scripts/contexts.sh delete <context_id> # Delete context
保存环境:标签(逗号分隔值),记忆类型(草稿板|情景记忆|事实记忆|程序记忆),存活时间(秒),工作空间列出环境变量:标签,代理来源,内存类型
deps.sh — 依赖分析
./scripts/deps.sh analyze <manifest_file> # Analyze dependencies
./scripts/deps.sh subscribe <manifest_file> [max_new] # Subscribe to dep docs
./scripts/deps.sh upload <manifest_file> [max_new] # Upload manifest (multipart)
支持:package.json, requirements.txt, pyproject.toml, Cargo.toml, go.mod, Gemfile。环境变量:包含开发依赖
folders.sh — 本地文件夹(私有存储)
./scripts/folders.sh create /path/to/folder [display_name] # Create from local dir
./scripts/folders.sh list [limit] [offset] # List folders (STATUS=)
./scripts/folders.sh get <folder_id> # Get details
./scripts/folders.sh delete <folder_id> # Delete folder
./scripts/folders.sh rename <folder_id> <new_name> # Rename folder
./scripts/folders.sh tree <folder_id> # Get file tree
./scripts/folders.sh ls <folder_id> [path] # List directory
./scripts/folders.sh read <folder_id> <path> [start] [end] # Read file (MAX_LENGTH=)
./scripts/folders.sh grep <folder_id> <pattern> [path_prefix] # Grep files
./scripts/folders.sh classify <folder_id> [categories_csv] # AI classification
./scripts/folders.sh classification <folder_id> # Get classification
./scripts/folders.sh sync <folder_id> /path/to/folder # Re-sync from local
./scripts/folders.sh from-db <name> <conn_str> <query> # Import from database
./scripts/folders.sh preview-db <conn_str> <query> # Preview DB content
advisor.sh — 代码顾问
./scripts/advisor.sh "query" file1.py [file2.ts ...] # Get code advice
根据已索引的文档分析您的代码。环境变量:仓库(逗号分隔值),文档(逗号分隔值),输出格式(解释|检查清单|差异|结构化)
usage.sh — API 使用
./scripts/usage.sh # Get usage summary
API 参考
- 基础 URL:
https://apigcp.trynia.ai/v2 - 认证: 在 Authorization 请求头中使用 Bearer token
- 灵活的标识符: 大多数端点接受 UUID、显示名称或 URL
源类型
| 类型 | 索引命令 | 标识符示例 |
|---|---|---|
| 代码仓库 | repos.sh index | 所有者/仓库名,microsoft/vscode |
| 文档 | sources.sh index | https://docs.example.com |
| 研究论文 | papers.sh index | 2312.00752, arXiv URL |
| HuggingFace 数据集 | datasets.sh index | squad,所有者/数据集 |
| 本地文件夹 | folders.sh 创建 | UUID,显示名称(私有,用户作用域) |
搜索模式
对于search.sh 查询:
仓库— 仅搜索 GitHub 仓库(仅传入仓库时自动检测)数据源— 仅搜索数据源(仅传入文档时自动检测)统一— 两者都搜索(两者都传入时的默认模式)
通过以下方式传入数据源:
仓库参数:逗号分隔"所有者/仓库,所有者2/仓库2"数据源参数:逗号分隔"显示名称,uuid,https://网址"本地文件夹环境变量:逗号分隔"文件夹-uuid,我的笔记"


微信扫一扫,打赏作者吧~