[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-72056":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},72056,"NLWeb","nlweb-ai\u002FNLWeb","nlweb-ai","Main reference implementation for NLWeb, implemented in Python.","",null,"Python",6223,694,91,44,0,1,8,19,3,39.53,"MIT License",false,"main",true,[],"2026-06-12 02:02:58","# What is NLWeb?\n\n**NLWeb** simplifies the process of building conversational interfaces for websites. It natively supports MCP (Model Context Protocol), allowing the same natural language APIs to serve both humans and AI agents.\n\nSchema.org and related semi-structured formats like RSS — used by over 100 million websites — have become not just de facto syndication mechanisms, but also a semantic layer for the web. NLWeb leverages these to enable natural language interfaces more easily.\n\nNLWeb is a collection of open protocols and associated open source tools. Its main focus is establishing a foundational layer for the AI Web — much like HTML revolutionized document sharing. To make this vision reality, NLWeb provides practical implementation code—not as the definitive solution, but as proof-of-concept demonstrations showing one possible approach. We expect and encourage the community to develop diverse, innovative implementations that surpass our examples. This mirrors the web's own evolution, from the humble 'htdocs' folder in NCSA's http server to today's massive data center infrastructures—all unified by shared protocols that enable seamless communication.\n\nAI has the potential to enhance every web interaction. Realizing this requires a collaborative spirit reminiscent of the Web's early \"barn raising\" days. Shared protocols, sample implementations, and community participation are all essential. NLWeb brings together protocols, Schema.org formats, and sample code to help sites quickly implement conversational endpoints — benefitting both users through natural interfaces and agents through structured interaction.\n\nJoin us in building this connected web of agents.\n\n## How It Works\n\nNLWeb has two primary components:\n\n1. **A simple protocol** to interact with a site using natural language. It returns responses in JSON using Schema.org. See the [NLWeb spec](https:\u002F\u002Fnlweb.ai\u002Fspec) for details.\n\n2. **A straightforward implementation** that uses existing markup on sites with structured lists (e.g., products, recipes, attractions, reviews). Combined with UI widgets, this enables conversational interfaces to be added with ease.\n\n## NLWeb and MCP\u002FA2A\n\nMCP and A2A are emerging standards for enabling chatbots and AI assistants to interact with tools and each other. Every NLWeb instance also acts as an MCP server (and soon A2A) and supports a core method, `ask`, which allows a natural language question to be posed to a website.\n\nThe response returned uses Schema.org — a widely adopted vocabulary for describing web data.\n\n**In short, NLWeb is to MCP\u002FA2A what HTML is to HTTP.**\n\n## Platform Compatibility\n\nNLWeb is platform-agnostic and supports:\n\n* **Operating systems**: Windows, macOS, Linux\n* **Vector stores**: [Qdrant](docs\u002Fsetup-qdrant.md), [Snowflake](docs\u002Fsetup-snowflake.md), [Milvus](docs\u002Fsetup-milvus.md), [Azure AI Search](docs\u002Fsetup-azure.md), [Elasticsearch](docs\u002Fsetup-elasticsearch.md), [Postgres](docs\u002Fsetup-postgres.md), [Cloudflare AutoRAG](docs\u002Fsetup-cloudflare-autorag.md)\n* **LLMs**: OpenAI, DeepSeek, Gemini, Anthropic, Inception, [HuggingFace](docs\u002Fsetup-huggingface.md)\n\nIt is designed to be lightweight and scalable — capable of running on everything from data center clusters to laptops and, soon, mobile devices.\n\n## Repository Structure\n\nThis repository is organized into the following modules:\n\n* **[AskAgent](AskAgent\u002F)** — The core NLWeb query agent. Handles natural language queries against websites using Schema.org structured data, with connectors for popular LLMs and vector databases, data ingestion tools, and a sample web UI.\n* **[AgentFinder](AgentFinder\u002F)** — Agent discovery service for finding and routing to NLWeb agents across the web.\n* **[DataFinder](DataFinder\u002F)** — Natural language to SQL translator for enterprise data sources (HubSpot, Dynamics 365, Jira) using schema.org-based ontology mappings.\n* **[ModelRouter](ModelRouter\u002F)** — LLM model routing and scoring, selecting cost-effective models that meet quality thresholds.\n* **[NLWebScorer](NLWebScorer\u002F)** — Neural scorer models for ranking and evaluating search result quality.\n\nSupporting directories:\n\n* **[config](config\u002F)** — YAML configuration files for LLM providers, embedding models, retrieval backends, and web server settings.\n* **[static](static\u002F)** — Frontend web UI assets (HTML, CSS, JavaScript) served by the web server.\n* **[demo](demo\u002F)** — Demo scripts and example data sources for getting started.\n* **[scripts](scripts\u002F)** — CLI utilities and helper scripts.\n* **[docs](docs\u002F)** — Full documentation.\n\nMost production deployments will:\n\n* Use their own user interface\n* Integrate NLWeb directly into their application environment\n* Connect NLWeb to live databases instead of duplicating content (to avoid freshness issues)\n\n## Documentation\n\n### Getting Started\n\n* [Hello world on your laptop](docs\u002Fnlweb-hello-world.md)\n* [Running it on Azure](docs\u002Fsetup-azure.md)\n* Running on GCP — *coming soon*\n* Running on AWS — *coming soon*\n\n### NLWeb Details\n\n* [Modifying Prompts](docs\u002Fnlweb-prompts.md)\n* [Changing Control Flow](docs\u002Fnlweb-control-flow.md)\n* [Modifying the User Interface](docs\u002Fnlweb-user-interface.md)\n* [REST API](docs\u002Fnlweb-rest-api.md)\n* [Adding Memory](docs\u002Fnlweb-memory.md)\n* [Using the Check Connectivity Script to Test your Configuration](docs\u002Fnlweb-check-connectivity.md)\n\n## License\n\nNLWeb uses the [MIT License](LICENSE).\n\n## Deployment (CI\u002FCD)\n\nCI\u002FCD pipelines are not yet included. Contributions to add automated testing or deployment workflows are welcome.\n\n## Access\n\nFor questions about this GitHub project, please contact [NLWeb Support](mailto:NLWebSup@microsoft.com).\n\n## Contributing\n\nSee [Contribution Guidance](CONTRIBUTING.md) for more details.\n\n## Contributor Wall of Fame\n\n[![nlweb contributors](https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=microsoft\u002Fnlweb)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fnlweb\u002Fgraphs\u002Fcontributors)\n\n## Trademarks\n\nThis project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow [Microsoft's Trademark & Brand Guidelines](https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Flegal\u002Fintellectualproperty\u002Ftrademarks\u002Fusage\u002Fgeneral). Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.\n","NLWeb 是一个用于简化网站对话界面构建的项目，主要使用 Python 实现。它支持MCP（模型上下文协议），使得同一自然语言API能够同时服务于人类用户和AI代理。通过利用Schema.org等半结构化格式，NLWeb让开发者更容易地为网站添加自然语言交互功能。该项目包含一系列开放协议及开源工具，旨在为AI Web建立基础层，类似于HTML对文档共享的影响。适用于希望快速实现对话式端点、提升用户体验并通过结构化交互增强AI代理能力的场景。此外，NLWeb具有跨平台特性，支持多种操作系统和向量存储解决方案。",2,"2026-06-11 03:40:10","high_star"]