Inspiration
What it does
How we built it
Challenges we ran into
Accomplishments that we're proud of
What we learned
What's next for Nova GridAgents
Project Story
Inspiration
I’ve been obsessed with LangChain for a while – it’s my favorite way to glue tools, models, and RAG together into something that actually feels like an “agent,” not just a chat box.why not build a similar, opinionated workspace on top of Amazon Nova?* I wanted something higher‑level: a UI and workflow layer for the AWS + LangChain stack, where Nova models, embeddings, KBs, S3, Meilisearch, and tools show up as first‑class configuration instead of scattered code.
NovaGrid Agents is that experiment. It’s a Nova‑first agent platform that leans heavily on Amazon’s AI offerings and their integration with LangChain/LangGraph – effectively a dedicated UI for AWS + LangChain integration – so you can configure and reuse serious agents on top of the AWS ecosystem instead of stitching everything together by hand.
What it does
NovaGrid Agents is a full-stack agent workspace built for Amazon Nova:
- Agent builder – Create/edit agents with:
- model selection (Nova 2 Lite via Bedrock)
- prebuilt tools and MCP tools
- internal knowledge sources (Bedrock KBs, Local RAG, Lexical RAG)
- Chat console – Talk to your agent, continue previous sessions, and attach internal knowledge via a three-column “Add Internal Knowledge” modal:
- Bedrock Knowledge Bases (Bedrock KB + S3)
- Local RAG Sources (FAISS + Bedrock/Titan embeddings)
- Lexical RAG Sources (Meilisearch / BM25)
- RAG management – A unified RAG page with three tabs:
- Bedrock Knowledge Bases: register existing KBs by
knowledge_base_id, region, S3 bucket/prefix; add data by uploading a file + AI‑generated.metadata.jsondirectly into the KB’s S3 location. - Local RAG: upload documents or import from S3, chunk them, embed with Bedrock embeddings (Titan), and store vectors in local FAISS for low‑latency retrieval.
- Lexical RAG: ingest documents into Meilisearch and query them with keyword search.
- Bedrock Knowledge Bases: register existing KBs by
- Nova Act tool – Exposed as a catalog tool so agents can be configured to run UI/browser automation .
- Session awareness – Each session stores which knowledge sources were attached (Bedrock, Local, Lexical), and the session chooser surfaces those counts so you can pick the right previous run.
All of this sits on top of a LangGraph runtime that builds a graph per agent from its configuration.
How we built it
Architecture overview
- Frontend (Next.js / React)
- Dashboard routes:
/chat,/agents,/models,/rag,/settings - Agent builder (4 steps), thread UI, and the RAG management page (3 tabs)
- Dashboard routes:
- Backend builder API (FastAPI)
/api/models– model CRUD (Bedrock‑backed Nova 2 Lite as default)/api/rag– register Bedrock Knowledge Bases and:- validate KBs via the Bedrock Agent Runtime
retrieve()API POST /api/rag/{id}/upload-data: upload a file +.metadata.jsoninto the KB’s S3 data sourcePOST /api/rag/generate-metadata: call a Nova model to generate structuredmetadataAttributesJSON/api/local-rag– Local RAG endpoints:- upload or S3 import documents
- chunk and embed with Bedrock embeddings (Titan)
- store vectors in FAISS and run similarity search
/api/lexical-rag– Meilisearch‑backed lexical ingestion and query/api/tools/catalog,/api/mcp,/api/voice,/api/storage,/api/guardrails
- LangGraph runtime
agent/graph.pybuilds a ReAct agent using:- Nova 2 Lite (via
ChatBedrockConverse) for reasoning - a Bedrock KB tool that calls
bedrock-agent-runtime.retrieve() - a Local RAG tool that loads FAISS indexes from
local_rag_sources - a Lexical RAG tool that queries Meilisearch
- a Nova Act tool for UI automation and other prebuilt tools
- Agent config is passed as
x-agent-configand includes: rag_source_ids(Bedrock KBs)local_rag_source_ids(Local FAISS sources)lexical_rag_source_ids(Meilisearch indexes)
- Storage
- SQLite for models and RAG source metadata
- S3 for Bedrock KB data sources and S3 imports
- Meilisearch for lexical search
- Local filesystem + FAISS for local vector indexes
- SQLite for models and RAG source metadata
This platform leans heavily on LangChain AWS, BedrockEmbeddings, and ChatBedrockConverse to keep the Bedrock/Nova integration tight and idiomatic, while exposing it through a higher‑level UI instead of low‑level SDK calls.
Built With
- amazon-web-services
- docker
- langchain
- langgraph
- nextjs
Log in or sign up for Devpost to join the conversation.