←back to thread

176 points lennertjansen | 3 comments | | HN request time: 0.606s | source

Hey HN, we're Lennert and Rauf. We’re building Airweave (https://github.com/airweave-ai/airweave), an open-source tool that lets agents search and retrieve data from any app or database. Here’s a general intro: https://www.youtube.com/watch?v=EFI-7SYGQ48, and here’s a longer one that shows more real-world use cases, examples of how Airweave is used by Cursor (0:33) and Claude desktop (2:04), etc.: https://youtu.be/p2dl-39HwQo

A couple of months ago we were building agents that interacted with different apps and were frustrated when they struggled to handle vague natural language requests like "resolve that one Linear issue about missing auth configs", "if you get an email from an unsatisfied customer, reimburse their payment in Stripe", or "what were the returns for Q1 based on the financials sheet in gdrive?", only to have the agent inefficiently chain together loads of function calls to find the data or not find it at all and hallucinate.

We also noticed that despite the rise of MCP creating more desire for agents to interact with external resources, the majority of agent dev tooling focused on function calling and actions instead of search. We were annoyed by the lack of tooling that enabled agents to semantically search workspace or database contents, so we started building Airweave first as an internal solution. Then we decided to open-source it and pursue it full time after we got positive reactions from coworkers and other agent builders.

Airweave connects to productivity tools, databases, or document stores via their APIs and transforms their contents into searchable knowledge bases, accessible through a standardized interface for the agent. The search interface is exposed via REST or MCP. When using MCP, Airweave essentially builds a semantically searchable MCP server on top of the resource. The platform handles the entire data pipeline from connection and extraction to chunking, embedding, and serving. To ensure knowledge is current, it has automated sync capabilities, with configurable schedules and change detection through content hashing.

We built it with support for white-labeled multi-tenancy to provide OAuth2-based integration across multiple user accounts while maintaining privacy and security boundaries. We're also actively working on permission-awareness (i.e., RBAC on the data) for the platform.

So happy to share learnings and get insights from your experiences. looking forward to comments!

Show context
nishanthooda ◴[] No.43965553[source]
Nice - does it have role based access controls built in?
replies(1): >>43965804 #
1. raufakdemir ◴[] No.43965804[source]
I assume you're talking about the data layer (not the control plane)? We are currently in PoC phase for mapping the role graphs from source systems (Asana, Google Drive) to our internal role model, but this is still in the works. The way developers work around this atm is by configuring a connection on a subset of the source info. Example: only make Airweave sync info from the `Shared Drive/Marketing/Branding` path
replies(1): >>43967366 #
2. mike_d ◴[] No.43967366[source]
How do you handle data retention? For example say that you suck in the information of a California resident and the company is obligated by law to delete it on request. How do you ensure no derivative data exists within your model?
replies(1): >>43968194 #
3. raufakdemir ◴[] No.43968194[source]
So you would like to delete information for a specific user identifier? Currently that means resyncing excluding that user profile (which would have to be removed from the source system) but happy to hear more about this use case. Would a desired feature be a “delete by user email” for example?