使用说明
️ 阿拉克涅(n2阿拉克涅)
ARACHNE V4.0.0钛版
在0.54秒内搜索1GB(1000000000字节)的代码库。 由零编组架构提供支持。0字节JS堆块。没有OOM崩溃。
将您的代码库编织到AI的完美环境中
v4.0(钛版)的新增功能
Arachne已经从JS完全重写为strict TypeScript,其中大量的计算路径被本机重写 C++SIMD(sqlite-vec) 和 铁锈(napi rs).
TypeScript (Strict):100%类型安全,零运行时回归。Rust Acceleration:BM25 快1.3倍 (memchr SIMD+人造丝平行);BatchCosine 快19.9倍 (96毫秒→ 4.8ms).C++ SIMD Search:sqlite-vec扫描10000×768D矢量 25毫秒 本地。KV-Cache Integration:灵魂桥增量重新索引允许在启动时加载亚秒级历史记录。 --就像希腊神话中最伟大的织工阿拉喀涅一样。 ️
问题——为什么人工智能会让你的代码出错
想象一下,去看医生时说 “我头疼。”
- 坏医生:读了你500页的病史,感到困惑,开错了药
- 好医生:只查看相关记录——最近的症状、药物、过敏反应——以及指甲的诊断
人工智能编码助理就像那个坏医生。
当你的项目有500个文件时,人工智能无法读取所有文件。那么,接下来会发生什么?
Your Project (500 files, 2M tokens)
│
├── auth/login.ts ← The bug is HERE
├── auth/session.ts ← login imports this
├── api/http.ts ← session imports this
├── utils/config.ts ← ️ timeout settings live here
│
├── pages/home.tsx ← completely irrelevant
├── pages/about.tsx ← completely irrelevant
├── components/Button.tsx ← completely irrelevant
└── ... 493 more files ← all irrelevant
| 方法 | AI接收什么 | 结果 |
|---|---|---|
| 转储所有内容 | 2000000个令牌 | 超出上下文窗口,AI困惑 |
| 随机文件 | ~50000个令牌 | 遗漏关键代码,修复错误 |
| 意芬 | 30000个代币 (4个相关文件) | 每次精确修复 |
代币 =AI读取的文本单位。代币越多=成本越高,速度越慢,准确性越低。 人工智能有一个有限的“上下文窗口”——就像一张只能容纳这么多论文的桌子。
真实世界基准测试(N2浏览器--3219个文件)
| 度量 | 值 |
|---|---|
| 项目规模 | 3219个文件, 468万代币 |
| Arachne产量 | 14074个代币 |
| 压缩 | 333 x (减少99.7%) |
| 索引时间 | 627ms(增量:0ms) |
| 数据库大小 | 24 MB |
以实际生产项目衡量。Arachne提供了AI所需要的东西——数据量减少了333倍,准确性相同。
️ 解决方案——Arachne准确选择了人工智能所需的东西
Arachne是一个 本地MCP服务器 那表现得像个好医生。它一次读取你的整个代码库,理解其结构 只发送相关内容 AI。
You: "Fix the login timeout bug"
│
▼
┌──────────────────────────────────────────────────────┐
│ ️ Arachne: "I'll find exactly what you need" │
│ │
│ L1 Project tree (so AI knows the structure) │
│ L2 login.ts (the file you're working on) │
│ L3 http.ts, session.ts (found via search + │
│ dependency chain: login → session → http) │
│ L4 ️ config.ts (frequently accessed, has timeout) │
│ │
│ → 30,000 tokens of perfectly curated context │
└──────────────────────────────────────────────────────┘
│
▼
AI generates accurate fix
无需手动选择文件。没有及时的工程。只要问就行了。
为什么是阿拉喀涅?
- 98.5%的代币节省 --30K而不是2M代币。API调用节省了大量资金
- 击败“迷失在中间” --智能输出排序(L1→L3→L4→L2)在AI关注的地方保留关键代码(研究支持)
- 零外部存款 -没有Docker,没有云,没有API密钥。就
npm install走吧 - 快速燃烧 --在12毫秒内索引了21个文件。以亚秒为单位进行增量更新
- 超轻 --只有3个部门:
better-sqlite3,sqlite-vec,zod没有腹胀 - 个人/OSS免费 --Apache-2.0适用于个人和开源项目。无遥测
- 即插即用 --添加MCP配置→ done.项目无代码更改
- 多语言 --遵循跨JS/TS、Python、Rust、Go的导入链, Java
- Ollama可选 --无需Ollama(BM25搜索)即可完美运行。添加Ollama以进行额外的语义搜索
Arachne在4面板-钛版
灵魂+阿拉喀涅协同
主要特点
| 特性 | 描述 |
|---|---|
| MCP标准 | 与Claude、Gemini、GPT、Ollama等任何人工智能提供商合作 |
| 本地优先 | 所有索引都在本地SQLite中。零数据离开您的机器 |
| 增量 | 仅重新索引已更改的文件。亚秒级更新 |
| 混合搜索 | BM25关键字+语义向量搜索(Ollama嵌入) |
| ️ 4层组件 | 令牌预算内的智能上下文分页 |
| 依赖图 | 遵循跨JS/TS、Python、Rust、Go的导入链, Java |
| ️ 备份与恢复 | SQLite在线备份和备份内搜索 |
️ 架构:4层上下文组装
┌─────────────────────────────────────────────┐
│ Token Budget (e.g. 30K) │
├────────────┬────────────────────────────────┤
│ L1: Fixed │ File tree overview (10%) │
│ (always) │ Project structure snapshot │
├────────────┼────────────────────────────────┤
│ L2: Short │ Current file + recent (20%) │
│ (context) │ What you're working on now │
├────────────┼────────────────────────────────┤
│ L3: Assoc │ Search + dependencies (50%) │
│ (relevant) │ BM25 + semantic + dep chain │
├────────────┼────────────────────────────────┤
│ L4: Spare │ Frequently accessed (20%) │
│ (backup) │ Files you use most │
└────────────┴────────────────────────────────┘
Output order: L1 → L3 → L4 → L2 (mitigates "Lost in the Middle")
语义搜索(可选,零锁定)
当Ollama可用时,Arachne从仅关键字升级到 混合搜索:
BM25 Score (keyword) ──┐
├── Weighted Merge (α=0.5) → Best Results
Cosine Similarity ─────┘
(nomic-embed-text 768D)
- sqlite-vc 用于SIMD加速(AVX2/SSE2/Neon)KNN矢量搜索
- 768维 通过Ollama嵌入
nomic-embed-text--100%本地运行 - 优雅降级没有奥利玛?只能回到BM25。 零碰撞。总是工作。
- 在配置中启用:
embedding.enabled = true - 矢量存储:每块约3KB。5000个块=磁盘上只有15MB
基准测试(v4.0)
所有基准测试都在AMD Ryzen 5 5600G、Node v24、Windows x64上运行。 三台发动机: TypeScript (v8jit), 锈 (napi rs), sqlite-vc (C++SIMD)。
搜索性能(10000个块/768D个向量)
| 搜索模式 | 引擎 | 性能 | 备注 |
|---|---|---|---|
| 关键词 | 🦀 铁锈BM25(铬+人造丝) | 4.98毫秒 /查询速度比TS快1.3倍 | |
| 关键词 | SQLite喜欢 | 0.021毫秒 /查询 | 数据库索引,最快 |
| 语义KNN | sqlite-vec(C++SIMD) | 29.52毫秒 /查询 | 数据库原生扫描10K×768D |
| 批量Cosine | 🦀 铁锈(napi rs) | 4.91毫秒 /查询 | 遗产:速度提高22.3倍,但会触发IPC堆峰值 |
架构枢轴:1GB+规模稳定性
虽然 Rust BatchCosine 实现了惊人的速度(4.9毫秒),在Node.js FFI边界加载数百万个向量,引发了1GB以上代码库上的大规模V8垃圾收集(GC)暂停和堆OOM崩溃。
为了在大规模数据集上实现100%的稳定性,Arachne v4.0强制执行 零编组政策:
- 语义搜索:100%委托给 sqlite-vc。它需要~29ms(比Rust稍慢),但内存开销为 JS中为0字节节点事件循环保持完全畅通。
- 关键词搜索:由 Rust BM25缓存.Chunk数据在Rust堆中大量缓存,仅在小查询和结果ID时跨越FFI边界。
Run benchmarks yourself
npm run build && node test/bench-hybrid-engine.js # Raw engine comparison
npm run build && node test/bench-10mb.js # Memory scale impact
结果保存到 data-hybrid-bench/benchmark-report.json.
Java支持——专为企业打造
Arachne提供 一流的Java支持,专为大型企业代码库(5M+LOC)设计:
| 特性 | 描述 |
|---|---|
| 智能分块 | 检测 class, interface, enum, method, @interface (注释) |
| 大类拆分 | 超过500个代币的类 自动分块 变成单独的方法 |
| 导入分辨率 | 解析 import com.example.Service 和 import static org.junit.Assert.* |
| 访问修改函数 | 手柄 public, private, protected, abstract, final, synchronized |
| 泛型 | 正确处理 <T extends Comparable<T>> 以及复杂的泛型类型 |
| Spring/JUnit | 用弹簧靴测试 @RestController,JUnit5静态导入,Mockito |
| 二进制排除 | 自动忽略 .class, .jar, .war, .ear 文件 |
大班分组是如何工作的
// 500+ token class → automatically split into methods
public class UserService { // ← detected as container
public User findById() {} // ← sub-chunk 1
public List<User> findAll() // ← sub-chunk 2
public User save() {} // ← sub-chunk 3
// ... fields, constructor // ← remainder chunk
}
// Small class (<500 tokens) → kept as single chunk (no overhead)
public class TinyDTO { ... } // ← single chunk, efficient
为什么这对500万LOC项目很重要:一个Java类可以有50多个方法,跨越数千行。如果没有子块,AI将把整个类作为一个blob接收。借助Arachne,人工智能可以获得单独的方法,从而实现精确、有针对性的代码生成。
代币影响:少即是多
Without sub-chunking:
AI asks: "Fix the findById bug"
→ BM25 hits UserService class
→ Entire class sent: 6,000 tokens
With sub-chunking:
AI asks: "Fix the findById bug"
→ BM25 hits findById() method only
→ Just the method sent: 80 tokens 75x savings!
分装不需要额外费用 保存 通过只发送相关内容而不是整个类来发送令牌。
️ 稳定性:128次测试,零故障
Arachne是为生产而建造的。每个边缘情况都经过测试:
| 类别 | 测试内容 |
|---|---|
| SQL注入 | 包括Bobby表在内的5种攻击模式 |
| ️ Null/空输入 | Null,未定义,空字符串→ 安全返回 |
| 大量输入 | 10KB查询→ 没有碰撞 |
| 特殊字符 | Unicode、表情符号、regex字符→ 已处理 |
| Ollama断开连接 | 端点错误→ 优雅的BM25回退 |
| Idempotency | 三重重新索引→ 同样的结果 |
| 极端预算 | 预算0、1、100万→ 一切安全 |
| 边缘顶部K | topK=-1,0,99999→ 没有碰撞 |
| 架构安全 | 三重初始化→ 数据得以保存 |
Phase 1 (Indexing/Search): 15/15
Phase 2 (Assembly/Deps): 26/26
Phase 2 (KV-Cache Bridge): 33/33
Phase 3 (Semantic/Hybrid): 10/10
Stability (Reddit-proof): 44/44
─────────────────────────────────────
Total: 128/128
安装
专业提示:最佳安装方式?只需询问您的AI代理: “为我安装n2 arachne。” 它知道该怎么办。️
npm install n2-arachne
MCP配置(克劳德桌面/光标等)
{
"mcpServers": {
"n2-arachne": {
"command": "node",
"args": ["/path/to/n2-arachne/dist/index.js"],
"env": {
"ARACHNE_PROJECT_DIR": "/path/to/your/project"
}
}
}
}
配置
创建 config.local.js 在Arachne目录中:
module.exports = {
projectDir: '/path/to/your/project',
dataDir: './data',
indexing: {
autoIndex: true,
maxFileSize: 512 * 1024, // 512KB max per file
},
// Enable semantic search (requires Ollama)
embedding: {
enabled: true, // default: false
provider: 'ollama',
model: 'nomic-embed-text',
endpoint: 'http://localhost:11434',
},
assembly: {
defaultBudget: 30000, // tokens
},
};
用法(MCP工具)
Arachne注册了一个MCP工具 n2_arachne 通过这些操作:
| 动作 | 描述 |
|---|---|
search |
BM25关键字搜索(+语义搜索,如果启用) |
assemble |
令牌预算内的4层上下文组装 |
index |
索引/重新索引项目文件 |
status |
显示索引统计数据+嵌入状态 |
files |
列出索引文件 |
backup |
创建/列出/还原备份 |
示例:组装上下文
{
"action": "assemble",
"query": "HTTP request timeout error handling",
"activeFile": "lib/executor.js",
"budget": 20000
}
连接灵魂/QLN
Arachne在独立运行时表现出色,但随着 灵魂 (会话记忆)和 QLN (刀具布线)。
设置很简单——只需在MCP配置中一起注册它们:
灵魂+阿拉喀涅在一起
{
"mcpServers": {
"n2-soul": {
"command": "node",
"args": ["/path/to/n2-soul/index.js"]
},
"n2-arachne": {
"command": "node",
"args": ["/path/to/n2-arachne/dist/index.js"],
"env": {
"ARACHNE_PROJECT_DIR": "/path/to/your/project"
}
}
}
}
无需额外配置! 在同一MCP配置中注册两个服务器,AI会自动使用这两个工具。
Soul记住过去的会议工作和决定Arachne找到确切的代码并将其传递给AI- 结果:AI从你停止的地方开始——没有“我在做什么?”
全氮气栈(灵魂+阿拉喀涅+QLN)
{
"mcpServers": {
"n2-soul": {
"command": "node",
"args": ["/path/to/n2-soul/index.js"]
},
"n2-arachne": {
"command": "node",
"args": ["/path/to/n2-arachne/dist/index.js"],
"env": {
"ARACHNE_PROJECT_DIR": "/path/to/your/project"
}
},
"n2-qln": {
"command": "node",
"args": ["/path/to/n2-qln/index.js"]
}
}
}
添加QLN,即使有100多个MCP工具,AI也会通过QLN的语义路由自动查找和使用所需的内容。
N2生态系统——共创美好
| 包 | 角色 | npm | 独立 |
|---|---|---|---|
| QLN | 刀具路径(1000+刀具→ 1 路由器) | n2-qln |
|
| 灵魂 | 代理内存和会话管理 | n2-soul |
|
| 方舟 | 安全策略和代码验证 | n2-ark |
|
| 意芬 | 代码上下文自动组装️ | n2-arachne |
每个包裹都有效 100%独立。但当它们结合在一起时,魔法就会发生:
协同效应:它们如何协同工作
User: "Fix the login timeout bug"
│
▼
┌─── QLN (Router) ──────────────────────────────────────┐
│ 1000+ tools → Semantic routing finds: │
│ → n2_arachne.assemble (context) │
│ → n2_arachne.search (code search) │
│ Token cost: 2 tool defs instead of 1000+ │
└────────────────┬──────────────────────────────────────┘
│
▼
┌─── Arachne (Context) ─────────────────────────────────┐
│ L1: Project tree overview │
│ L2: auth/login.ts (current file) │
│ L3: BM25 + semantic search → timeout-related code │
│ + dependency chain: login.ts → api.ts → http.ts │
│ L4: Frequently accessed config files │
│ → 30K tokens of perfectly curated context │
└────────────────┬──────────────────────────────────────┘
│
▼
┌─── Soul (Memory) ─────────────────────────────────────┐
│ "Last session, Rose fixed a similar timeout in │
│ api.ts line 47. Decision: increased to 30s." │
│ → Past context + decisions + handoff notes │
│ → KV-Cache: instant session restoration │
└────────────────┬──────────────────────────────────────┘
│
▼
┌─── Ark (Security) ────────────────────────────────────┐
│ No hardcoded credentials in generated code │
│ Timeout value from config, not magic number │
│ Error handling follows project conventions │
│ → Code verification before commit │
└───────────────────────────────────────────────────────┘
单人vs组合
| 场景 | 单人 | 组合 |
|---|---|---|
| 令牌使用 | AI可以看到所有1000多种工具 | QLN路线→ AI看到2-3个工具 |
| 上下文质量 | AI猜测哪些文件很重要 | Arachne提供了精确的相关代码 |
| 记忆 | AI每次转弯都会忘记一切 | 灵魂会记住过去的会话+决定 |
| 代码安全 | 无护栏 | Ark在部署前进行验证 |
| 设置 | 每个工具独立工作 | 无额外配置-自动检测 |
现实世界影响
- QLN + 蜘蛛:QLN将请求路由到Arachne→ Arachne提供了完美的背景→ AI在第一次尝试时生成准确的代码。不再问“那是哪个文件?”
- 灵魂+阿拉喀涅:Soul记得你上次做了什么→ Arachne索引那些优先级较高的文件→ 跨会话的连续性
- 方舟+阿拉喀涅:Arachne提供代码上下文→ AI生成代码→ Ark验证它是否遵循项目模式。在发货前捕捉虫子。
- 全部4个在一起:AI成为团队成员 记得一切, 发现任何东西, 使用正确的工具,以及 遵守规则.
许可证
该项目具有双重许可:
| 用例 | 许可证 | 成本 |
|---|---|---|
| 个人/教育 | Apache 2.0 | 免费 |
| 开源(非商业) | Apache 2.0 | 免费 |
| 商业/企业 | 商业许可证 | 联系我们 |
看 许可证 了解全部细节。
星迹
不喝咖啡?明星也很好
Arachne——最伟大的织布工。你的代码,编织得很完美。 ️
