Provider Orchestration Brain¶
The orchestration engine introduced in 7.42.0 pairs a task classifier with a provider/model router. When enabled, NeuroLink inspects each prompt, chooses the most suitable provider/model based on capabilities and availability, and carries that preference through the fallback chain.
Highlights¶
- Binary task classifier – categorises prompts (analysis vs. creative, etc.) before routing.
- Model router – selects provider/model pairs, honouring local providers like Ollama when available.
- Provider validation – confirms credentials/availability before committing to the route.
- Non-invasive – orchestration augments requests via context so standard fallback logic still applies.
Enabling Orchestration (SDK)¶
import { NeuroLink } from "@juspay/neurolink";
const neurolink = new NeuroLink({ enableOrchestration: true }); // (1)!
const result = await neurolink.generate({
input: { text: "Generate product launch plan" }, // (2)!
enableAnalytics: true, // (3)!
enableEvaluation: true, // (4)!
});
console.log(result.provider, result.model); // (5)!
- Enable orchestration for automatic provider/model selection
- Task classifier analyzes prompt to determine best provider
- Log routing decisions to analytics
- Validate routed provider meets quality expectations
- See which provider/model was selected by the router
The router adds __orchestratedPreferredProvider
to the request context so analytics and downstream logging capture routing decisions.
Tuning the Router¶
- Environment awareness – orchestration only routes to providers that pass
hasProviderEnvVars
, so missing API keys fall back gracefully. - Ollama detection – checks
http://localhost:11434/api/tags
to verify local models before selection. - Confidence scores –
ModelRouter.route
returnsconfidence
andreasoning
. Enable debug logs (export NEUROLINK_DEBUG=true
) to inspect decisions. - Manual overrides – specifying
provider
ormodel
bypasses orchestration for that call.
Working with the CLI¶
CLI sessions instantiate NeuroLink without orchestration by default. To experiment with the router from the CLI:
node -e " # (1)!
const { NeuroLink } = require('@juspay/neurolink');
(async () => {
const neurolink = new NeuroLink({ enableOrchestration: true }); # (2)!
const res = await neurolink.generate({ input: { text: 'Compare Claude and GPT-4o' } }); # (3)!
console.log(res.provider, res.model); # (4)!
})();
"
- Run Node.js one-liner from CLI
- Enable orchestration in SDK mode
- Let router select best provider for comparison task
- Output selected provider and model
Future CLI releases will surface a --enable-orchestration
flag; until then keep orchestration for SDK/server workloads.
Best Practices¶
Routing Strategy
Enable orchestration in development to understand routing patterns, then pin provider
or model
in production for predictable behavior. Orchestration is ideal for exploratory workflows; explicit selection ensures consistency in critical paths.
Ollama Local-First
The router prioritizes local Ollama models when available, reducing costs and latency for development workflows. Ensure Ollama is running (http://localhost:11434
) to take advantage of local-first routing.
- Pair orchestration with evaluation to verify the routed provider meets quality expectations.
- Maintain provider credentials for all potential routes; orchestration skips providers missing keys.
- Monitor debug logs in staging to understand how tasks map to providers before rolling out widely.
- Combine with regional controls (
region
option) when routing to cloud-specific providers such as Vertex or Bedrock.
Troubleshooting¶
Symptom | Action |
---|---|
Router always returns empty context | Ensure enableOrchestration: true and prompts contain text. |
Routed provider never used | Check credentials via neurolink status ; orchestration only hints the preferred provider. |
Ollama route ignored | Confirm Ollama server running at http://localhost:11434 and model tag matches router suggestion. |
Fallback cycles between providers | Pin provider/model explicitly or reduce orchestrated confidence thresholds (see ModelRouter ). |
Dive Deeper¶
- Code reference:
src/lib/utils/modelRouter.ts
- Code reference:
src/lib/utils/taskClassifier.ts
docs/advanced/analytics.md
for logging orchestration metadata.