📇 ☁️ 🏠 🍎 🪟 🐧 - Edge-first AI platform unifying many providers and models, with multi-agent orchestration,…
NeuroLink
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
**The pipe layer for the AI nervous system.**
AI intelligence flows as streams — tokens, tool calls, memory, voice, documents.
NeuroLink is the vascular layer that carries these streams from where they are
generated (LLM providers: the neurons) to where they are needed (connectors: the organs).
**→ Docs · → Quick Start · → npm · → Blog**
---
🧠 What is NeuroLink?
**NeuroLink is the pipe layer of an AI nervous system.** Providers — OpenAI, Anthropic, Google, AWS, Azure, Mistral, local runtimes like Ollama, and dozens more — are the neurons: each generates a different kind of intelligence, at a different cost and latency. NeuroLink is the vascular layer that carries that intelligence, as a stream, to the applications — the organs — that consume it, across three inference types: generate and stream produce text, decide produces a calibrated boolean/choice/score judgment instead. A curated model registry (64 models, 132 aliases) backs metadata, routing, and context-window checks out of the box, and hundreds more models are reachable through aggregator providers — 100+ via LiteLLM, 300+ via OpenRouter.
Extracted from production systems at Juspay, NeuroLink provides a practical, TypeScript-first way to plug any application into that nervous system. Switch which neuron answers a request with a single parameter change — OpenAI, Anthropic, Google, AWS Bedrock, Azure, a local runtime, or any provider you add. decide is the third inference type — a typed, calibrated judgment instead of text — for the model-routing and gating decisions generate/stream were never meant to make, powered by a purpose-built decision model (TypeSafe Jev, Perplexity's hosted Decisions API, Cloudflare's hosted Clef, Subquadratic's hosted SubQ Snap, OpenAI's hosted Decisions API, or the open-weights Laya or XOR) rather than a general-purpose LLM: with Jev, routing decisions land in ~400ms for about $0.00002, instead of a full generation call.
**Why NeuroLink?** Three genuine inference types, not one dressed up three ways — generate and stream produce text; decide produces a calibrated boolean/choice/score judgment, and which types a provider serves is declared per-provider via inferenceKinds rather than inferred from behavior. Every neuron plugs into the same pipe, including 3 fully local runtimes (Ollama, LM Studio, llama.cpp) with per-request credential overrides, and MCP support covers all 4 transports (stdio, HTTP, SSE, WebSocket). Every AI-driven optimization the pipe performs — model routing, context compaction, tool selection — fails open: no key configured behaves exactly like NeuroLink without it, and routing uses asymmetric confidence thresholds (upgrade at 0.3, downgrade at 0.6) rather than a single cutoff, because a wrong downgrade costs more than a wrong upgrade. Switch providers with a single parameter change, leverage built-in tools plus any MCP-compliant tool server, deploy with confidence using enterprise features like Redis memory and multi-provider failover, and optimize costs automatically with intelligent routing. Use it via our professional CLI or TypeScript SDK—whichever fits your workflow.
**Where we're headed:** We're building for the future of AI—edge-first execution and continuous streaming architectures that make AI practically free and universally available. **Read our vision →**
**[Get Started in 0.7) {
route(team.choice); // "billing" | "technical" | "sales", plus a full ranking
}
// Multi-Provider Voice (v9.62.0) — TTS + STT
// Voice is configured via the tts / stt options on generate() / stream(),
// not via dedicated synthesizeSpeech / transcribeAudio methods.
// Text in, audio out (TTS)
const result = await neurolink.generate({
input: { text: "Hello from NeuroLink" },
provider: "vertex",
tts: {
enabled: true,
voice: "en-US-Neural2-C",
format: "mp3",
output: "./output.mp3", // optional: save to disk
provider: "elevenlabs", // optional override: openai-tts | elevenlabs | google-ai | vertex | azure-tts | fish-audio | cartesia
},
});
// result.audio: { buffer: Buffer, format: "mp3", ... }
// Audio in (STT), text out
const transcript = await neurolink.generate({
input: { text: "Transcribe and summarize" },
provider: "openai",
stt: {
enabled: true,
audio: audioBuffer, // Buffer of the audio file
provider: "whisper", // whisper | deepgram | google-stt | azure-stt
language: "en-US",
},
});
// Real-time bidirectional voice (OpenAI Realtime / Gemini Live)
import { RealtimeProcessor } from "@juspay/neurolink";