Manish Kumar

Work01 of 06

An assistant that answers as it thinks

A chat interface that renders model output while it streams and shows each tool call as it runs, plus a Python proof of concept for the retrieval pipeline behind it.

Company
Cyzerg
Years
2024 to now
Role
Frontend architecture and UI
Stack
TypeScript, Python, RAG, MCP
Where this sits: Mid-Level Angular Developer, CyzergSelectedJan 2024 to now
Roles by date
CompanyRoleFromToStack
VenturepactAssociate Software DeveloperJun 2019Apr 2021TypeScript, Angular, Node.js, Express, MongoDB, Redis
CyzergJunior Angular DeveloperApr 2021Jan 2024TypeScript, Angular
CyzergMid-Level Angular DeveloperJan 2024nowTypeScript, Angular, React, Python
response, as it streamssearch_docs()query_metrics()0 msdone
Figure. a response arriving in chunks over time, with two tool calls drawn as marked spans inside the stream.

Context

Users needed answers from internal data without leaving the product. A request and response box that waits for the whole answer feels broken when a model takes several seconds, and it hides the work the model does with tools.

Approach

Render the response as it arrives, chunk by chunk, so reading starts immediately. Treat tool calls as first-class parts of the message: each one gets its own block with a pending, running and done state, so people can see what the assistant looked up before they trust the answer.

The pipeline

Alongside the UI I wrote a Python proof of concept for retrieval augmented generation with Model Context Protocol tools, to show what the backend contract for the interface should look like.

What shipped

A streaming assistant UI with tool-call rendering inside the main product, and a working pipeline prototype the team could build the real service from.