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.json directly 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.
  • 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)
  • 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.json into the KB’s S3 data source
    • POST /api/rag/generate-metadata: call a Nova model to generate structured metadataAttributes JSON
    • /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.py builds 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-config and 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

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

Share this project:

Updates