Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI Research Agent

An early-stage scaffold for an event-driven research-assistant backend built with FastAPI, Kafka (via aiokafka), and a pluggable vector database client. The long-term goal is a multi-agent pipeline that researches a topic and prepares briefings for a podcast or meeting; the current codebase is the infrastructure skeleton that pipeline will be built on top of.

Current state

This is a minimal scaffold, not a finished agent. What's implemented today:

  • src/main.py — a FastAPI app with a health check (GET /) and an /ingest endpoint that currently just echoes the submitted text; it does not yet publish to Kafka or index anything.
  • src/kafka_producer.py / src/kafka_consumer.py — async producer and consumer skeletons built on aiokafka, not yet wired into main.py.
  • src/vector_db.py — a VectorDBClient interface stub (upsert/query) whose methods raise NotImplementedError; intended to be backed by a real store such as FAISS, Weaviate, Milvus, or Pinecone.

There is no research/agent logic, LLM integration, or briefing-generation code yet — this repo is the backend plumbing the agent will sit on.

Tech stack

  • Python, FastAPI + Pydantic
  • aiokafka for async Kafka producer/consumer
  • Docker (see Dockerfile) for containerized runs

Setup

python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env  # then edit as needed

Run the API:

uvicorn src.main:app --reload --port 8000

Or via Docker:

docker build -t ai-research-agent .
docker run -p 8000:8000 ai-research-agent

Usage

curl -X POST http://localhost:8000/ingest \
  -H "Content-Type: application/json" \
  -d '{"text": "some research note"}'

This currently just echoes the text back with a placeholder "action": "enqueue_for_processing" — actual Kafka publishing and downstream processing are not wired up yet.

Environment variables

See .env.example:

  • KAFKA_BOOTSTRAP_SERVERS — Kafka broker address
  • KAFKA_TOPIC — topic used for ingest events
  • VECTOR_DB_URL — connection string for the vector store
  • APP_ENV — environment name

Project layout

  • src/ — application code (FastAPI app, Kafka producer/consumer skeletons, vector DB client stub)
  • requirements.txt — Python dependencies
  • Dockerfile — container image for the app
  • .env.example — example environment variables

License

MIT — see LICENSE.

About

Event-driven FastAPI backend scaffold (Kafka + vector DB stubs) for a planned AI research-briefing agent; infra skeleton, agent logic not yet implemented

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages