AI research assistants are getting smarter, but turning that reasoning into something usable is still hard.
Real research involves more than text:...
For further actions, you may consider blocking this person and/or reporting abuse
Thanks for the article — the overall approach is interesting, especially the MCP + chart embedding angle.
That said, I’m a bit confused by the implementation details in the repo. The example relies on
useCopilotAction, which the official CopilotKit docs now clearly mark as deprecated, with guidance to use the newer hooks instead.Given that this post was published very recently (and the repo was updated recently as well), could you, or Nathan clarify:
useCopilotActionstill recommended in practice despite being marked deprecated?Right now there’s a real mismatch between the docs, blog posts, and example repos, which makes it hard to know which patterns are safe to adopt in new projects. Some clarity here would save developers a lot of time.
Hi Ian, great to see you went into the codebase. I did notice
useCopilotActionin the repo (it’s built/maintained by the Tako team) -- since it's deprecated, that's why I didn't call it out explicitly in the post, but I will flag it to them so the implementation gets updated ASAP.useCopilotActionis deprecated as per docs (and not recommended for new usage). In this post/repo, it's only used for the human-in-the-loop delete confirmation UI in ResearchCanvas (renderAndWaitonDeleteResources), not for the MCP + chart embedding path.Using the
useHumanInTheLoophook for the confirm/wait interaction should be the right fit. If you would rather model it as a frontend tool with a handler that returns a YES/NO (or boolean), thenuseFrontendToolhook is the better fitthe examples are already being updated to align with the latest releases and you can also reach the team in the Discord community if you want to track the update closely.
Whoa, amazing detailed tutorial Anmol, thanks for sharing!
thanks Nathan! It's insanely long but also shows a lot of useful patterns.
Interesting, I read through, and I'm trying to understand the difference between Tako and Tavily if they are both search?
Hey Steve - Tako has a custom index of licensed + large public datasets that aren't easily accessible on the web. For example, Tako has global public and private company metrics from S&P Global, website traffic from SimilarWeb, sports stats from SportRadar, public opinion polling from YouGov, and hundreds of other sources. Web + structured data knowledge graph is a great complement to producing highly accurate, real-time research.
they may look same on the surface but Tavily is for pulling relevant info from the open web so the agent can read and summarize it -- while Tako is more like searching structured datasets/visualizations and can return embeddable interactive charts (via MCP Apps)
If you are wondering where Tako gets context from: the agent uses the LLM to turn the user question into a few atomic data questions, then calls their MCP knowledge_search with those queries (covered in the backend section).
Super detailed and clear way to get visually compelling research working - thanks Anmol!
thanks for reading! 🙌
Wow, this is quite good. Bookmarking this one as I think I have a use case for it.
Hey Fliin, awesome. I'd love to get your feedback once you start building. This example is open source, so feel free to build on top of it!
Nice, this looks fun to build!
Really cool way to orchestrate Tako and Tavily to produce compelling outputs!
This is a fantastic approach, Anmol! Combining CopilotKit with LangGraph and MCP for a seamless agent orchestration elevates the user experience significantly. I’m intrigued by the streaming aspect of AG-UI for real-time updates—this could be a game-changer in user interaction design! Have you explored how this setup affects performance under heavy loads? 👀