{"_id":"@ai-hivemind/core","_rev":"5-80ccd25f1a06ea545b00035ddccdc12f","name":"@ai-hivemind/core","dist-tags":{"latest":"1.0.0"},"versions":{"0.1.0":{"name":"@ai-hivemind/core","version":"0.1.0","keywords":["ai","agent","skills","llm","skill-md","vercel-ai-sdk","progressive-loading"],"author":{"name":"tingtingxiao0706"},"license":"MIT","_id":"@ai-hivemind/core@0.1.0","maintainers":[{"name":"xiaotingting","email":"tingtingx1206@163.com"}],"homepage":"https://tingtingxiao0706.github.io/hive-mind/","bugs":{"url":"https://github.com/tingtingxiao0706/hive-mind/issues"},"dist":{"shasum":"0d68687d163c8a58f49f5fb95fa06a57cd6c1abc","tarball":"https://registry.npmjs.org/@ai-hivemind/core/-/core-0.1.0.tgz","fileCount":18,"integrity":"sha512-g5QJM0pbpn3IdQD9NoumARAy0MLa7JzpUAE4dSg7QgwRhoODxdZGjjndMggKywBRrpuQY/5wq6x9RAlOwNiajA==","signatures":[{"sig":"MEQCICZLfaOIX3ASjyJClnILhLxzPZuqOEsdVvVb8xnV9RB8AiAIn4T5lOE5JEMezBrqsQKLI0luAaRxTUlQ6QSqIgDn7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":433391},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"6de6fc8402bf1fa71929f85c061fe9427552278f","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xiaotingting","email":"tingtingx1206@163.com"},"repository":{"url":"git+https://github.com/tingtingxiao0706/hive-mind.git","type":"git"},"_npmVersion":"11.11.0","description":"AI Agent 按需技能加载引擎 - 兼容 SKILL.md 标准，基于 Vercel AI SDK，支持模型切换、工作区隔离、脚本执行","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.24.2","execa":"^9.5.2","lru-cache":"^11.0.2","gray-matter":"^4.0.3"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^4.1.0","tsup":"^8.3.6","vitest":"^3.0.5","vitepress":"^1.6.4","typescript":"^5.7.3","@types/node":"^25.5.0","@ai-sdk/openai":"^1.2.0"},"peerDependencies":{"ai":">=4.0.0","@ai-sdk/google":">=1.0.0","@ai-sdk/openai":">=1.0.0","@ai-sdk/anthropic":">=1.0.0"},"peerDependenciesMeta":{"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0_1773995830205_0.332907363463844","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@ai-hivemind/core","version":"0.1.1","keywords":["ai","agent","skills","llm","skill-md","vercel-ai-sdk","progressive-loading"],"author":{"name":"tingtingxiao0706"},"license":"MIT","_id":"@ai-hivemind/core@0.1.1","maintainers":[{"name":"xiaotingting","email":"tingtingx1206@163.com"}],"homepage":"https://tingtingxiao0706.github.io/hive-mind/","bugs":{"url":"https://github.com/tingtingxiao0706/hive-mind/issues"},"dist":{"shasum":"269785553326176b2048112dbba3815fd57e05e6","tarball":"https://registry.npmjs.org/@ai-hivemind/core/-/core-0.1.1.tgz","fileCount":18,"integrity":"sha512-jVCzceluS6e6b+V8Iy+JQw36aEZE4axfglP+PIYI3E9Fv3QvF3Gm1nuHMuu+fTd/z3aLFyjnfJrrf7kVzG34RA==","signatures":[{"sig":"MEUCIAxIXE8yp31u7UYwtVYHrwKxQPl2I6kfMcwZBH+DKpI8AiEAukohoZ1LpOM4zGiio5z1pKPETFeZQckqTyqEmVbKG5E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":433423},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"99b103ec9cd25df429c094b10032aef4766569c4","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xiaotingting","email":"tingtingx1206@163.com"},"repository":{"url":"git+https://github.com/tingtingxiao0706/hive-mind.git","type":"git"},"_npmVersion":"11.11.0","description":"AI Agent 按需技能加载引擎 - 兼容 SKILL.md 标准，基于 Vercel AI SDK，支持模型切换、工作区隔离、脚本执行","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.24.2","execa":"^9.5.2","lru-cache":"^11.0.2","gray-matter":"^4.0.3"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^4.1.0","tsup":"^8.3.6","vitest":"^3.0.5","vitepress":"^1.6.4","typescript":"^5.7.3","@types/node":"^25.5.0","@ai-sdk/openai":"^1.2.0"},"peerDependencies":{"ai":">=4.0.0","@ai-sdk/google":">=1.0.0","@ai-sdk/openai":">=1.0.0","@ai-sdk/anthropic":">=1.0.0"},"peerDependenciesMeta":{"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.1_1773996645041_0.27558971874003535","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@ai-hivemind/core","version":"0.2.0","keywords":["ai","agent","skills","llm","skill-md","vercel-ai-sdk","progressive-loading"],"author":{"name":"tingtingxiao0706"},"license":"MIT","_id":"@ai-hivemind/core@0.2.0","maintainers":[{"name":"xiaotingting","email":"tingtingx1206@163.com"}],"homepage":"https://tingtingxiao0706.github.io/hive-mind/","bugs":{"url":"https://github.com/tingtingxiao0706/hive-mind/issues"},"dist":{"shasum":"a4493dc94455af65779f3f49e5c2ae4d2534ba9c","tarball":"https://registry.npmjs.org/@ai-hivemind/core/-/core-0.2.0.tgz","fileCount":18,"integrity":"sha512-bnfOj6cCBE/48W4FlsT6hWD1/AADKefU239GYzQpAB1w+gSbsHmeVRsaVV29TICzJpq7qk0ct3aV/zjC7wsjkw==","signatures":[{"sig":"MEUCIGCDrKlbvpeBQJQDspcpaP4pKJB+vVx0iH7eoV/enR4AAiEApzS6hI5i+SuMFJW+GFiSJcVfexT3uS74d5hfNmjg0QM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":533113},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"2ea35fa8b5fb87681360ef3bde84c5dbcca6588b","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xiaotingting","email":"tingtingx1206@163.com"},"repository":{"url":"git+https://github.com/tingtingxiao0706/hive-mind.git","type":"git"},"_npmVersion":"11.11.0","description":"AI Agent 按需技能加载引擎 - 兼容 SKILL.md 标准，基于 Vercel AI SDK，支持模型切换、工作区隔离、脚本执行","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.24.2","execa":"^9.5.2","lru-cache":"^11.0.2","gray-matter":"^4.0.3"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^4.1.0","tsup":"^8.3.6","vitest":"^3.0.5","vitepress":"^1.6.4","typescript":"^5.7.3","@types/node":"^25.5.0","@ai-sdk/openai":"^1.2.0","@skill-tools/core":"^0.2.2","@skill-tools/router":"^0.2.2"},"peerDependencies":{"ai":">=4.0.0","@ai-sdk/google":">=1.0.0","@ai-sdk/openai":">=1.0.0","@ai-sdk/anthropic":">=1.0.0","@skill-tools/core":"0.2.2","@skill-tools/router":"0.2.2"},"peerDependenciesMeta":{"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@skill-tools/core":{"optional":true},"@skill-tools/router":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0_1774256589237_0.236488158569087","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@ai-hivemind/core","version":"0.3.0","keywords":["ai","agent","skills","llm","skill-md","vercel-ai-sdk","progressive-loading"],"author":{"name":"tingtingxiao0706"},"license":"MIT","_id":"@ai-hivemind/core@0.3.0","maintainers":[{"name":"xiaotingting","email":"tingtingx1206@163.com"}],"homepage":"https://tingtingxiao0706.github.io/hive-mind/","bugs":{"url":"https://github.com/tingtingxiao0706/hive-mind/issues"},"dist":{"shasum":"dec2f4df61515720694f86ed712bc72ef764cbbb","tarball":"https://registry.npmjs.org/@ai-hivemind/core/-/core-0.3.0.tgz","fileCount":18,"integrity":"sha512-DPPma7ijVR3WbfVHINi9P4otPdv5jhNSvJU9yIXVpL5ly4MkE5egoEwxvJWiPlvf+IdAipEHXRCaRcXWk+GQXQ==","signatures":[{"sig":"MEUCIQDCITu93A2bXu+aCrCeG496TA3j77mItoF/TR3rSzD4WAIgGFgaJXOaKBKIBtifFuRhbwxHX9un32lV6iNxKFISGCw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":588421},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"83c36db7ebbc04579c95658ebed5dae2451a232e","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"xiaotingting","email":"tingtingx1206@163.com"},"repository":{"url":"git+https://github.com/tingtingxiao0706/hive-mind.git","type":"git"},"_npmVersion":"11.11.0","description":"AI Agent 按需技能加载引擎 - 兼容 SKILL.md 标准，基于 Vercel AI SDK，支持模型切换、工作区隔离、脚本执行","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.24.2","execa":"^9.5.2","lru-cache":"^11.0.2","gray-matter":"^4.0.3"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^4.1.0","tsup":"^8.3.6","vitest":"^3.0.5","vitepress":"^1.6.4","typescript":"^5.7.3","@types/node":"^25.5.0","@ai-sdk/openai":"^1.2.0","@skill-tools/core":"^0.2.2","@skill-tools/router":"^0.2.2"},"peerDependencies":{"ai":">=4.0.0","@ai-sdk/google":">=1.0.0","@ai-sdk/openai":">=1.0.0","@ai-sdk/anthropic":">=1.0.0","@skill-tools/core":"0.2.2","@skill-tools/router":"0.2.2"},"peerDependenciesMeta":{"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@skill-tools/core":{"optional":true},"@skill-tools/router":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.0_1774404367139_0.8733697823236064","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@ai-hivemind/core","version":"1.0.0","description":"AI Agent 按需技能加载引擎 - 兼容 SKILL.md 标准，基于 Vercel AI SDK，支持模型切换、工作区隔离、脚本执行","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit","lint":"tsc --noEmit","prepublishOnly":"npm run build","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs"},"keywords":["ai","agent","skills","llm","skill-md","vercel-ai-sdk","progressive-loading"],"author":{"name":"tingtingxiao0706"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tingtingxiao0706/hive-mind.git"},"homepage":"https://tingtingxiao0706.github.io/hive-mind/","bugs":{"url":"https://github.com/tingtingxiao0706/hive-mind/issues"},"engines":{"node":">=18.0.0"},"dependencies":{"execa":"^9.5.2","gray-matter":"^4.0.3","lru-cache":"^11.0.2","zod":"^3.24.2"},"peerDependencies":{"@ai-sdk/anthropic":">=1.0.0","@ai-sdk/google":">=1.0.0","@ai-sdk/openai":">=1.0.0","@modelcontextprotocol/sdk":">=1.0.0","@skill-tools/core":"0.2.2","@skill-tools/router":"0.2.2","ai":">=4.0.0"},"peerDependenciesMeta":{"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@ai-sdk/google":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@skill-tools/core":{"optional":true},"@skill-tools/router":{"optional":true}},"devDependencies":{"@ai-sdk/openai":"^1.2.0","@modelcontextprotocol/sdk":"^1.28.0","@skill-tools/core":"^0.2.2","@skill-tools/router":"^0.2.2","@types/node":"^25.5.0","ai":"^4.1.0","tsup":"^8.3.6","typescript":"^5.7.3","vitepress":"^1.6.4","vitest":"^3.0.5"},"_id":"@ai-hivemind/core@1.0.0","gitHead":"59cd1caa9c99655b4fac60313b2659539652f491","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-ahTndJQqsQyYenJJThzxlAziqh18HhRNYAyXtjy+J8vOlOFC2A51331SDzMveffXbYmuTa1SVxQ9C8xNBPvsQg==","shasum":"c4c238cf24a99cde91bd75d2a7c787ca2ad4212f","tarball":"https://registry.npmjs.org/@ai-hivemind/core/-/core-1.0.0.tgz","fileCount":18,"unpackedSize":630036,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDpNnEOcbW8G1NqK2Puy6TM29XegEAdFuYnebF/RIHlpwIhAN5/n9H2whF9LFVocYolHcmolkGd5NwEv7Vcs9ovey38"}]},"_npmUser":{"name":"xiaotingting","email":"tingtingx1206@163.com"},"directories":{},"maintainers":[{"name":"xiaotingting","email":"tingtingx1206@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_1.0.0_1774527348641_0.07965325625728559"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-20T08:37:10.070Z","modified":"2026-03-26T12:15:48.972Z","0.1.0":"2026-03-20T08:37:10.388Z","0.1.1":"2026-03-20T08:50:45.204Z","0.2.0":"2026-03-23T09:03:09.371Z","0.3.0":"2026-03-25T02:06:07.367Z","1.0.0":"2026-03-26T12:15:48.848Z"},"bugs":{"url":"https://github.com/tingtingxiao0706/hive-mind/issues"},"author":{"name":"tingtingxiao0706"},"license":"MIT","homepage":"https://tingtingxiao0706.github.io/hive-mind/","keywords":["ai","agent","skills","llm","skill-md","vercel-ai-sdk","progressive-loading"],"repository":{"type":"git","url":"git+https://github.com/tingtingxiao0706/hive-mind.git"},"description":"AI Agent 按需技能加载引擎 - 兼容 SKILL.md 标准，基于 Vercel AI SDK，支持模型切换、工作区隔离、脚本执行","maintainers":[{"name":"xiaotingting","email":"tingtingx1206@163.com"}],"readme":"# Hive-Mind\r\n\r\nAI Agent 按需技能加载引擎。通过 `npm install` 即可在任意 Node.js 应用中获得 OpenClaw 级别的技能系统能力，不绑定特定编辑器或模型供应商。\r\n\r\n📖 [完整文档](https://tingtingxiao0706.github.io/hive-mind/)\r\n\r\n## 特性\r\n\r\n- **渐进式加载** — 三阶段按需加载（发现 → 激活 → 执行），将 20 个技能的基线开销从 ~25,000 tokens 降到 ~500 tokens\r\n- **模型切换** — 基于 Vercel AI SDK，支持 OpenAI / Anthropic / Google 等 30+ 供应商\r\n- **SKILL.md 兼容** — 完全兼容 [Agent Skills 标准](https://agentskills.io/specification)，通过 `x-hive` 扩展添加高级功能\r\n- **跨语言脚本执行** — 技能可包含 Python / Bash / Node.js / Deno / Go 脚本，自动探测运行时\r\n- **分层安全** — basic / strict / sandbox 三级安全模型\r\n- **工作区隔离** — 不同工作区独立配置技能集、模型和安全策略\r\n- **技能即 Agent** — 技能可声明为自主 Agent，拥有工具链和多步执行循环\r\n- **技能链调用** — 技能运行时可通过 `call_skill` 工具委托子任务给其他技能，支持深度限制和去重\r\n- **跨技能文件引用** — SKILL.md body 中的 markdown 链接自动识别，LLM 可按需读取链接文件\r\n- **LLM 驱动路由** — `llm-routed` 策略让 LLM 自主选择需要的技能，路由准确率优于关键词匹配，同时引擎保持对激活和执行的安全管控\r\n- **MCP Client 集成** — 连接外部 MCP Server（stdio / SSE / streamable-http），将 MCP 工具自动注入 LLM 工具链，`mcp__<server>__<tool>` 命名隔离\r\n\r\n## 快速开始\r\n\r\n### 安装\r\n\r\n```bash\r\nnpm install @ai-hivemind/core ai @ai-sdk/openai\r\n```\r\n\r\n### 5 分钟上手\r\n\r\n```typescript\r\nimport { createHiveMind } from '@ai-hivemind/core';\r\nimport { openai } from '@ai-sdk/openai';\r\n\r\nconst hive = createHiveMind({\r\n  models: { default: openai('gpt-4o') },\r\n  skills: [{ type: 'local', path: './skills' }],\r\n});\r\n\r\n// 单次调用\r\nconst result = await hive.run({\r\n  message: '帮我格式化代码',\r\n});\r\nconsole.log(result.text);\r\n\r\n// 流式输出\r\nconst stream = await hive.stream({\r\n  message: '分析这段代码的风格问题',\r\n});\r\nfor await (const chunk of stream) {\r\n  process.stdout.write(chunk);\r\n}\r\n```\r\n\r\n### 环境变量\r\n\r\n```bash\r\n# .env\r\nOPENAI_API_KEY=sk-proj-xxxxxxxxxxxx\r\n```\r\n\r\nVercel AI SDK Provider 自动从对应的环境变量中读取 API Key，无需在代码中硬编码。\r\n\r\n## 核心概念\r\n\r\n### 渐进式加载\r\n\r\n```\r\n阶段 1: 发现    → 仅加载 name + description（~100 tokens/技能）\r\n阶段 2: 激活    → BM25 路由匹配，仅加载 Top-K 技能的完整内容\r\n阶段 3: 执行    → LLM 驱动，按需调用脚本工具\r\n```\r\n\r\n支持四种加载策略：\r\n\r\n| 策略 | 行为 | 适用场景 |\r\n|------|------|---------|\r\n| `progressive` (默认) | 关键词路由匹配后按需加载 | 通用场景 |\r\n| `eager` | 启动时预加载所有技能 | 技能少、要求低延迟 |\r\n| `lazy` | 跳过索引，显式指定技能直接加载 | 已知使用哪个技能 |\r\n| `llm-routed` | LLM 从技能目录中自主选择并激活 | 技能多、用户意图模糊 |\r\n\r\n### 技能目录结构\r\n\r\n```\r\nmy-skill/\r\n├── SKILL.md              # 必需：元数据 + LLM 指令\r\n├── scripts/              # 可选：可执行脚本\r\n│   ├── run.sh\r\n│   └── analyze.py\r\n├── references/           # 可选：参考文档（可通过 read_resource 读取）\r\n│   └── guide.md\r\n└── assets/               # 可选：模板和静态资源\r\n    └── config.json\r\n```\r\n\r\n技能的 SKILL.md body 中可以通过 markdown 链接引用其他目录的文件（如 `[rules](../shared/rules.md)`），引擎会自动识别这些链接并允许 LLM 按需读取。\r\n\r\n### SKILL.md 格式\r\n\r\n```markdown\r\n---\r\nname: my-skill\r\ndescription: What this skill does\r\ncompatibility: Requires Python 3.10+\r\nallowed-tools: Bash(scripts/run.sh)\r\n\r\nx-hive:\r\n  agent: true\r\n  maxSteps: 10\r\n  scripts:\r\n    approval: false\r\n    timeout: 60000\r\n    runtimes: [bash, python]\r\n  models:\r\n    preferred: reasoning\r\n---\r\n\r\n# My Skill\r\n\r\nInstructions for the LLM...\r\n```\r\n\r\n### 跨技能文件引用\r\n\r\n技能可以在 body 中通过 markdown 链接引用其他目录的文件：\r\n\r\n```markdown\r\n## 工作流\r\n\r\n1. 加载通用规则 → [common-rules.md](../shared-standards/common-rules.md)\r\n2. 加载框架规则 → [react-rules.md](../shared-standards/react-rules.md)\r\n```\r\n\r\n引擎在加载技能时自动提取这些链接，将目标文件加入 `read_resource` 的访问白名单。LLM 按照 body 中的工作流指示，在需要时调用 `read_resource` 读取文件内容。无需额外配置，技能作者只需正常写 markdown 链接即可。\r\n\r\n### LLM 驱动路由（llm-routed）\r\n\r\n传统的关键词/BM25 路由是词袋模型，对语义理解有限。`llm-routed` 策略将路由决策交给 LLM，同时保留引擎对激活和执行的完整控制：\r\n\r\n```typescript\r\nconst hive = createHiveMind({\r\n  models: { default: openai('gpt-4o') },\r\n  skills: [{ type: 'local', path: './skills' }],\r\n  loading: { strategy: 'llm-routed' },\r\n});\r\n```\r\n\r\n**工作流程**：\r\n\r\n```\r\nPhase 2a: LLM 路由\r\n  ┌─────────────────────────────────────────────────┐\r\n  │  System Prompt 注入技能目录:                      │\r\n  │  - translator: 翻译文本                          │\r\n  │  - summarizer: 总结长文                          │\r\n  │  - code-reviewer: 代码审查                       │\r\n  │                                                 │\r\n  │  LLM 调用 activate_skill(\"translator\")           │\r\n  │  → 引擎加载技能、校验安全、注册工具               │\r\n  └─────────────────────────────────────────────────┘\r\n               ↓\r\nPhase 3: 执行\r\n  ┌─────────────────────────────────────────────────┐\r\n  │  第二次 LLM 调用，携带:                           │\r\n  │  - translator 技能的完整指令                      │\r\n  │  - run_script / read_resource 等工具              │\r\n  │  → 执行任务并返回结果                             │\r\n  └─────────────────────────────────────────────────┘\r\n```\r\n\r\n- 不需要技能时，LLM 直接回答（仅一次调用）\r\n- 支持单次对话激活多个技能（多次 `activate_skill`）\r\n- `activate_skill` 内含去重、数量限制等防护\r\n- 显式指定 `options.skills` 时跳过 LLM 路由，走标准路径\r\n\r\n## API 参考\r\n\r\n### `createHiveMind(config)`\r\n\r\n创建 HiveMind 实例。\r\n\r\n```typescript\r\nconst hive = createHiveMind({\r\n  // 模型配置（必需）\r\n  models: {\r\n    default: openai('gpt-4o'),\r\n    fast: openai('gpt-4o-mini'),\r\n    reasoning: anthropic('claude-sonnet-4-20250514'),\r\n  },\r\n\r\n  // 技能来源（必需）\r\n  skills: [\r\n    { type: 'local', path: './skills' },\r\n  ],\r\n\r\n  // 工作区名称（可选）\r\n  workspace: 'my-project',\r\n\r\n  // 加载策略（可选）\r\n  loading: {\r\n    strategy: 'progressive',   // 'eager' | 'progressive' | 'lazy' | 'llm-routed'\r\n    maxActivatedSkills: 5,     // 注入 system prompt 的最大技能数\r\n    routerTopK: 5,             // 路由匹配返回的候选技能数\r\n    cacheSize: 50,\r\n    catalogueTokenBudget: 2000, // llm-routed 模式下技能目录最大 token 预算\r\n  },\r\n\r\n  // 脚本执行配置（可选）\r\n  scripts: {\r\n    enabled: true,\r\n    securityLevel: 'strict',   // 'basic' | 'strict' | 'sandbox'\r\n    allowedRuntimes: ['bash', 'python', 'node'],\r\n    timeout: 30_000,\r\n    maxOutputSize: 30_000,\r\n    requireApproval: false,\r\n    preflight: true,           // 首次执行前预检运行时可用性\r\n  },\r\n\r\n  // 解析器/路由器（可选）\r\n  parser: 'auto',             // 'auto' | 'builtin'\r\n  router: 'auto',             // 'auto' | 'builtin'\r\n\r\n  // MCP Server 连接（可选）\r\n  mcp: {\r\n    servers: [\r\n      { name: 'filesystem', transport: { type: 'stdio', command: 'npx', args: ['-y', '@modelcontextprotocol/server-filesystem', '/tmp'] } },\r\n      { name: 'github', transport: { type: 'streamable-http', url: 'http://localhost:3001/mcp' } },\r\n    ],\r\n    timeout: 30_000,\r\n  },\r\n\r\n  // 技能链调用深度限制（可选，默认 5）\r\n  maxCallDepth: 5,\r\n\r\n  // 日志级别（可选，默认 'warn'）\r\n  logLevel: 'info',           // 'debug' | 'info' | 'warn' | 'error' | 'silent'\r\n});\r\n```\r\n\r\n### `hive.run(options)`\r\n\r\n执行单次技能调用。\r\n\r\n```typescript\r\nconst result = await hive.run({\r\n  message: '部署应用到 AWS',\r\n  model: 'reasoning',           // 使用 reasoning 模型\r\n  skills: ['aws-deploy'],       // 显式指定技能（可选，默认自动路由）\r\n  systemPrompt: '额外的系统指令',  // 可选\r\n  maxTokens: 4096,\r\n});\r\n\r\nconsole.log(result.text);              // LLM 响应\r\nconsole.log(result.activatedSkills);   // 激活的技能列表\r\nconsole.log(result.toolCalls);         // 工具调用记录\r\nconsole.log(result.usage);             // Token 用量\r\n```\r\n\r\n### `hive.stream(options)`\r\n\r\n流式技能调用。\r\n\r\n```typescript\r\nconst stream = await hive.stream({\r\n  message: '重构代码',\r\n  onToolCall: (name, args) => {\r\n    console.log(`Tool: ${name}`, args);\r\n  },\r\n});\r\n\r\nfor await (const chunk of stream) {\r\n  process.stdout.write(chunk);\r\n}\r\n```\r\n\r\n### `hive.list()` / `hive.search(query)`\r\n\r\n```typescript\r\nconst allSkills = await hive.list();\r\nconst matched = await hive.search('kubernetes deployment');\r\n```\r\n\r\n### `hive.install(source)`\r\n\r\n从远程源安装技能。\r\n\r\n```typescript\r\nconst result = await hive.install('https://github.com/user/my-skill.git');\r\n```\r\n\r\n### `hive.runtimeStatus()`\r\n\r\n检查系统运行时状态（需要 `scripts.enabled: true`）。\r\n\r\n```typescript\r\nconst status = await hive.runtimeStatus();\r\n// {\r\n//   bash:   { available: true,  version: '5.2.15', command: 'bash' },\r\n//   python: { available: true,  version: '3.12.1', command: 'python3' },\r\n//   node:   { available: true,  version: '20.11.0', command: 'node' },\r\n// }\r\n```\r\n\r\n### `hive.dispose()`\r\n\r\n释放 MCP 连接等资源。在应用关闭时调用。\r\n\r\n```typescript\r\nawait hive.dispose();\r\n```\r\n\r\n## 多模型切换\r\n\r\n```typescript\r\nimport { openai } from '@ai-sdk/openai';\r\nimport { anthropic } from '@ai-sdk/anthropic';\r\nimport { google } from '@ai-sdk/google';\r\n\r\nconst hive = createHiveMind({\r\n  models: {\r\n    default: openai('gpt-4o'),\r\n    fast: openai('gpt-4o-mini'),\r\n    reasoning: anthropic('claude-sonnet-4-20250514'),\r\n    vision: google('gemini-2.0-flash'),\r\n  },\r\n  skills: [{ type: 'local', path: './skills' }],\r\n});\r\n\r\nawait hive.run({ message: '快速回答', model: 'fast' });\r\nawait hive.run({ message: '深度分析', model: 'reasoning' });\r\n```\r\n\r\n## 工作区隔离\r\n\r\n```typescript\r\nconst frontend = createHiveMind({\r\n  workspace: 'frontend',\r\n  models: { default: openai('gpt-4o-mini') },\r\n  skills: [{ type: 'local', path: './skills/frontend' }],\r\n  scripts: { enabled: true, allowedRuntimes: ['node'] },\r\n});\r\n\r\nconst backend = createHiveMind({\r\n  workspace: 'backend',\r\n  models: { default: anthropic('claude-sonnet-4-20250514') },\r\n  skills: [{ type: 'local', path: './skills/backend' }],\r\n  scripts: { enabled: true, allowedRuntimes: ['bash', 'python', 'node'] },\r\n});\r\n```\r\n\r\n## 安全模型\r\n\r\n| 级别 | 防护措施 | 适用场景 |\r\n|------|---------|---------|\r\n| basic | 路径穿越防护 + 白名单 + 超时 | 受信任环境 |\r\n| strict | + 运行时白名单 + 环境隔离 + 审批回调 | 推荐默认 |\r\n| sandbox | + V8 Isolate + CPU/内存限制 + deny-by-default | 多租户 |\r\n\r\n```typescript\r\nconst hive = createHiveMind({\r\n  // ...\r\n  scripts: {\r\n    enabled: true,\r\n    securityLevel: 'sandbox',\r\n    requireApproval: true,\r\n    onApproval: async (script, args) => {\r\n      console.log(`即将执行: ${script} ${args.join(' ')}`);\r\n      return true; // 或 false 拒绝\r\n    },\r\n    sandbox: {\r\n      cpuTimeLimitMs: 10_000,\r\n      memoryLimitMb: 128,\r\n      permissions: {\r\n        fs: { read: ['./data/'], write: [] },\r\n        net: false,\r\n        env: ['NODE_ENV'],\r\n        childProcess: false,\r\n      },\r\n    },\r\n  },\r\n});\r\n```\r\n\r\n## 与 Express 集成\r\n\r\n```typescript\r\nimport express from 'express';\r\nimport { createHiveMind } from '@ai-hivemind/core';\r\nimport { openai } from '@ai-sdk/openai';\r\n\r\nconst app = express();\r\napp.use(express.json());\r\n\r\nconst hive = createHiveMind({\r\n  models: { default: openai('gpt-4o') },\r\n  skills: [{ type: 'local', path: './skills' }],\r\n});\r\n\r\napp.post('/api/chat', async (req, res) => {\r\n  const result = await hive.run({\r\n    message: req.body.message,\r\n  });\r\n  res.json({ text: result.text, skills: result.activatedSkills });\r\n});\r\n\r\napp.listen(3000);\r\n```\r\n\r\n## 与 Next.js 集成\r\n\r\n```typescript\r\n// app/api/chat/route.ts\r\nimport { createHiveMind } from '@ai-hivemind/core';\r\nimport { openai } from '@ai-sdk/openai';\r\n\r\nconst hive = createHiveMind({\r\n  models: { default: openai('gpt-4o') },\r\n  skills: [{ type: 'local', path: './skills' }],\r\n});\r\n\r\nexport async function POST(req: Request) {\r\n  const { message } = await req.json();\r\n  const stream = await hive.stream({ message });\r\n\r\n  return new Response(\r\n    new ReadableStream({\r\n      async start(controller) {\r\n        for await (const chunk of stream) {\r\n          controller.enqueue(new TextEncoder().encode(chunk));\r\n        }\r\n        controller.close();\r\n      },\r\n    }),\r\n    { headers: { 'Content-Type': 'text/plain; charset=utf-8' } },\r\n  );\r\n}\r\n```\r\n\r\n## 支持的 Provider\r\n\r\n| Provider | 包名 | 环境变量 |\r\n|----------|------|---------|\r\n| OpenAI | `@ai-sdk/openai` | `OPENAI_API_KEY` |\r\n| Anthropic | `@ai-sdk/anthropic` | `ANTHROPIC_API_KEY` |\r\n| Google | `@ai-sdk/google` | `GOOGLE_GENERATIVE_AI_API_KEY` |\r\n| Azure OpenAI | `@ai-sdk/azure` | `AZURE_OPENAI_API_KEY` |\r\n| Mistral | `@ai-sdk/mistral` | `MISTRAL_API_KEY` |\r\n| DeepSeek | `@ai-sdk/deepseek` | `DEEPSEEK_API_KEY` |\r\n\r\n所有 Provider 均为 `peerDependencies`，按需安装。\r\n\r\n## 架构概览\r\n\r\n```\r\ncreateHiveMind(config)\r\n    │\r\n    ├─ SkillLoader        解析 SKILL.md（BuiltinAdapter / @skill-tools 适配器）\r\n    ├─ SkillRouter        BM25 / 关键词路由匹配\r\n    ├─ CompositeRegistry  本地 + 远程技能注册表\r\n    ├─ ScriptExecutor     跨语言脚本执行（安全边界内）\r\n    ├─ McpClientManager   MCP Server 连接管理（惰性连接 + 工具注入）\r\n    └─ AgentRunner        Agent 技能多步执行循环\r\n         │\r\n         └─ call_skill    技能链调用（深度限制 + 去重缓存）\r\n```\r\n\r\n## 开发\r\n\r\n```bash\r\nnpm install          # 安装依赖\r\nnpm run build        # 构建（ESM + CJS）\r\nnpm test             # 运行测试（108 个用例）\r\nnpm run typecheck    # 类型检查\r\n```\r\n\r\n## 许可证\r\n\r\nMIT\r\n","readmeFilename":"README.md"}