2026-07-13 –, AI/ML
Through the construction of a Deep Research Agent, tutorial participants will learn the fundamental building blocks of LLM-driven applications. Starting with in-context learning and prompt design, we will progress through memory management, tool integration via the Model Context Protocol (MCP), and planning workflows. Participants will build a working agent that can query a Zotero citation library, synthesize literature summaries, and engage in multi-turn research conversations. We will also discuss failure modes, limitations, and the role of such agents in an age of coding assistants.
In this tutorial, we will walk you through the practical construction of a Deep Research Agent - an LLM-powered system that can search, summarize, and synthesize scientific literature from a Zotero library. While building agents can seem daunting, breaking it down into core components makes it approachable.
We will start with what we think is the most intuitive way to understand agents - seeing them as LLM-backed systems with memory, tools, and planning capabilities. From there, we will show you how to build each component: crafting effective prompts for research tasks, managing conversation state, connecting to external tools via MCP, and implementing both deterministic and ReAct-style planning workflows.
Based on our experience building research agents, we've designed a progression that builds a fully functional single agent. We will also demonstrate how specialized agents can collaborate on literature review tasks. Tutorial participants will leave with a working agent and the knowledge to customize it for their own research workflows.
This tutorial is structured based on what we wished we knew when we first started building LLM agents, and is ordered for maximum productivity in learning. By the end of the tutorial, participants should be able to build and customize their own research agents!
Tutorial participants should be comfortable with Python, including writing functions and working with dictionaries and lists. Familiarity with async/await patterns is helpful but not required. Prior experience with LLM APIs or agent frameworks is preferred - but we will teach these from scratch. Basic understanding of what an LLM is (e.g., having used ChatGPT or Claude) is expected.
Ben is the Lead Data Scientist at GoGuardian, working on text-based ML pipelines for student safety. Previously, he led Data Science teams in academia (Northeastern University, MIT) and industry (ThriveHive). He obtained his Masters in Public Health (MPH) from Johns Hopkins and his PhD in Policy Analysis from the Pardee RAND Graduate School. Since 2014, he has been working in data science for government, academia and industry. His major focus has been on Natural Language Processing (NLP) technology and applications. Throughout his career, he has pursued opportunities to contribute to the larger data science community. He has presented his work at conferences, published articles, taught courses in data science and NLP, and is co-organizer of the Boston chapter of PyData. He also contributes to volunteer projects applying data science tools for public good.
As Senior Principal Data Scientist at Moderna Eric leads the Data Science and Artificial Intelligence (Research) team to accelerate science to the speed of thought. Prior to Moderna, he was at the Novartis Institutes for Biomedical Research conducting biomedical data science research with a focus on using Bayesian statistical methods in the service of discovering medicines for patients. Prior to Novartis, he was an Insight Health Data Fellow in the summer of 2017 and defended his doctoral thesis in the Department of Biological Engineering at MIT in the spring of 2017.
Eric is also an open-source software developer and has led the development of pyjanitor, a clean API for cleaning data in Python, and nxviz, a visualization package for NetworkX. He is also on the core developer team of NetworkX and PyMC. In addition, he gives back to the community through code contributions, blogging, teaching, and writing.
His personal life motto is found in the Gospel of Luke 12:48.