A terminal-based AI agent for Northeast India's indigenous languages.
Northeast India is home to 220+ indigenous languages, yet open-source AI agents built specifically for them remain rare.
Built on the NE-Stack by MWire Labs, Shillong, Meghalaya.
Demo: Language detection → Tool routing → Retrieval, Translation or ASR → Local response.
pip install ne-agent
ollama pull qwen2.5:1.5b
ollama serve
ne-agentRequires Python 3.9+ and Ollama. GPU recommended for translate/transcribe; search runs fine on CPU.
NE-Agent is one of the first publicly available open-source AI agents built on indigenous Northeast Indian language infrastructure. It detects the input language, routes each query to the right tool (retrieval-augmented search, Khasi-English translation, or speech transcription), and generates grounded responses. Everything runs locally: no API keys, no cloud, no internet required at inference time.
- ✅ Fully local, no API keys, no cloud
- ✅ Offline after setup
- ✅ Retrieval-augmented generation (RAG)
- ✅ Speech transcription (ASR), 8 languages
- ✅ Khasi → English translation
- ✅ Automatic language identification (11 languages)
- ✅ LLM-based tool auto-routing
- ✅ Rich terminal UI
flowchart TD
A[User Query<br/>text or audio] --> B[NE-LID<br/>Language Detection]
B --> C[Tool Router<br/>qwen2.5:1.5b]
C --> D[search<br/>NE-Embed + FAISS]
C --> E[translate<br/>NLLB Khasi]
C --> F[transcribe<br/>NE-ASR]
D --> G[Rich Terminal UI]
E --> G
F --> G
A single entry point handles heterogeneous requests, no need to specify a mode. Audio bypasses the router and goes straight to transcription; text queries are routed dynamically.
| Component | Role | Model | Notes |
|---|---|---|---|
| NE-LID | Language ID | fastText, 11 languages | 99.09% macro accuracy |
| Tool Router | Dynamic dispatch | qwen2.5:1.5b | search / translate / transcribe |
| NE-Embed | Multilingual embeddings | LaBSE fine-tune, 768-dim | 10 languages, CC-BY-4.0 |
| FAISS | Vector retrieval | IndexFlatIP | cosine similarity |
| NLLB (Khasi) | Translation | Fine-tuned NLLB | Khasi → English |
| NE-ASR | Speech transcription | Whisper-medium | 8 languages, 16.89% WER (Khasi) |
| Ollama | Local generation | qwen2.5:1.5b | 2GB memory footprint |
- Retrieval: Assamese, Khasi, Garo, Mizo
- Language ID: Assamese, Bodo, English, Garo, Hindi, Khasi, Kokborok, Meitei, Mizo, Nagamese, Nyishi
- Translation: Khasi → English
- Transcription: Khasi, Garo, Mizo, Nagamese, Kokborok, Assamese, Chakma, Wancho
| Tool | GPU (warm) | CPU |
|---|---|---|
| Translate | 0.68s | 1.76s |
| Transcribe | 0.43s | 12.38s |
| Search | 2.32s | n/a |
Retrieval R@1 ranges 71–99% across 10 languages (vs. 10–95% for zero-shot LaBSE). Full benchmarks in the paper.
Runs fully offline on consumer hardware.
Default corpus: 500 monolingual sentences per language (Assamese, Khasi, Mizo, Garo). Swap in your own .txt files under ne_agent/data/, one sentence per line, and re-index.
- PyPI: pypi.org/project/ne-agent
- NE-Embed: huggingface.co/MWirelabs/ne-embed
- NE-LID: huggingface.co/MWirelabs/ne-lid
- NE-ASR: huggingface.co/MWirelabs/ne-asr
- MWire Labs: mwirelabs.com
@misc{nyalang2026neagent,
title = {NE-Agent: Bringing Agentic AI to Northeast India's Low-Resource Languages},
author = {Nyalang, Badal},
year = {2026},
note = {MWire Labs},
url = {https://github.com/MWirelabs/ne-agent}
}CC-BY-4.0, MWire Labs, Shillong, Meghalaya.
⭐ Star the repo if you find it useful.
