kuantanu.

Chat with Dwi

Ask about my work
Hey — I'm Dwi. Ask me about the agents I've built, what I work with, or anything else you want to know.
All projects

A chat assistant that actually books things

AI Executive Assistant

You talk to it like you would to a real assistant. It writes up a summary and emails it for you, and it can set up appointments straight from the conversation — no forms, no switching apps.

Screenshot / demo coming soon

The problem

Scheduling and follow-ups eat a surprising amount of time: reading a thread, writing a summary, drafting the email, and finding a slot everyone agrees on. I wanted an assistant you could just talk to that would actually take those actions, not one that hands the work back to you as a suggestion.

What I built

I built the whole thing end to end — the agent logic and tool-calling on the backend, the calendar and email integrations, and the chat interface. My focus was making the agent reliably turn a free-form conversation into concrete actions (a sent email, a booked slot) rather than plausible-sounding text.

Architecture

  • Chat UI (Next.js / TypeScript) streams messages to a FastAPI backend.
  • An LLM agent interprets intent and calls tools: summarise, send-email, create-appointment.
  • Tool layer wraps the email provider and calendar API; the agent decides which to call and with what arguments.
  • Responses stream back token-by-token so the assistant feels live.

Key decisions

Tool-calling over free text

The agent expresses actions as structured tool calls the backend executes, so "email this summary" reliably produces a real email instead of a paragraph claiming it did.

Streaming responses

Token streaming keeps the assistant responsive during multi-step reasoning instead of freezing on a spinner.

Outcomes

  • TODO: add a measurable result (e.g. "cut meeting-scheduling from ~5 min of back-and-forth to one message").

Limitations

  • Works within the connected email/calendar accounts; multi-user org support would need proper auth and per-user tokens.
  • Complex scheduling constraints (time zones across many attendees) are still an area to harden.

What I learned

  • Getting an agent to act reliably is mostly about tight tool definitions and validation, not a cleverer prompt.
  • Streaming plus clear "what I did" confirmations matters as much as the model for perceived quality.

Built with

LLM AgentOpenAI APIFastAPINext.jsTypeScriptPython

Want to talk about building something like this? Get in touch or book a call.