← Back to projects

Personal project · Ongoing

Retriev

An open-source AI workspace I'm building to bring configurable agents, knowledge bases, and AI-powered conversations together.

In developmentVisit siteGitHub
Retriev cover

Overview

Retriev is an open-source AI workspace for building and managing agents that can work with knowledge and tools. The goal is to bring agent configuration, knowledge bases, and AI-powered conversations into one application.

I'm building both the interface and the backend, exploring the pieces that connect an AI interaction to a useful product: authentication, application data, provider credentials, retrieval, and tool execution.

Retriev is in active development. The deployed site is a development preview, and some screens and workflows are still being built.

Why I'm building it

I've been spending time understanding how LLMs, embeddings, vector databases, and tools fit together. Retriev gives me a place to connect those ideas in a full-stack application and work through the engineering around them.

The interesting questions extend beyond generating an answer. How should an agent be configured? How does the application manage knowledge and credentials? Where should provider-specific code live? How do the frontend and backend agree on the shape of a request? These are the questions I'm exploring through this project.

Current implementation

  • Authentication: email/password sign-in, Google and GitHub OAuth, session handling, email verification, and password-reset flows using Better Auth.
  • Agent management: create, configure, edit, list, and delete agents, with system instructions and model parameters stored as application data.
  • Provider credentials: validate API keys before storing them, encrypt the stored values, and support key rotation and deletion.
  • Knowledge records: backend endpoints for managing text-based knowledge records. The processing pipeline and user-facing knowledge workspace are still in development.
  • Caching: Redis-backed agent and knowledge queries, with cache invalidation when records change.
  • Retrieval and tools: a backend LLM tool-calling flow with knowledge retrieval and web search. Query embeddings are used for Pinecone similarity search, while Tavily provides web-search results.

These are implementation foundations; the complete agent-to-knowledge-to-conversation experience is still being connected.

Engineering decisions

Separate applications, shared contracts

Retriev uses a Turborepo monorepo with a React/Vite frontend, a Hono API running on Bun, and shared packages for database access and API contracts. Shared types and Zod schemas help keep requests, validation, and response shapes aligned across the stack.

Business workflows and infrastructure

The API is organized into routes, controllers, services, and repositories. Feature modules wire their dependencies, while infrastructure providers handle concerns such as LLM requests, embeddings, vector search, caching, and email.

This gives me explicit places to work on application behavior and provider integrations as the project evolves. The current chat provider uses Groq, with OpenAI embeddings and Pinecone supporting retrieval.

Different storage for different responsibilities

PostgreSQL and Drizzle handle application records such as users, agents, and knowledge metadata. Pinecone handles vector similarity search, and Redis caches application queries. Keeping these responsibilities explicit also makes ownership checks and cache invalidation important parts of the backend work.

Technology stack

AreaTechnologies
FrontendReact, TypeScript, Vite, Tailwind CSS, TanStack Query, Zustand
Backend and authenticationBun, Hono, Better Auth, Zod
Application dataPostgreSQL, Drizzle ORM, Redis
AI and retrievalGroq, OpenAI embeddings, Pinecone, LangChain, Tavily
Project structureTurborepo and shared workspace packages

Workspace preview

Early agent workspace preview from Retriev's landing page

The landing-page workspace preview illustrates the intended experience. Retriev's product workflows are still being developed.

What I'm working on next

  • Connect knowledge creation to document processing, chunking, embedding generation, and indexing.
  • Complete file and URL ingestion alongside the text-based workflow.
  • Connect agents and knowledge bases to persistent conversations in the interface.
  • Build out the integrations workspace and usage reporting for tokens, latency, and costs.

What I'm learning

Retriev is helping me think through the boundary between an AI model and the application around it. Retrieval quality, tool execution, authentication, data ownership, and clear interfaces all contribute to the experience.

I'm continuing to refine the architecture and connect the workflows as I learn. This page will evolve with the project.