AI Infrastructure

Why AI Coding Agents Break Jupyter Notebooks and How Jupyter AI 3.0 Fixes It | Lahari Chowtorri, Amazon | TFiR

0

Standard AI coding agents edit files at the disk level and process code line by line. Jupyter notebooks are JSON documents that mix code, data, images, and widgets in a single structured file. Those two approaches are architecturally incompatible: disk-level edits do not reflect on the notebook UI in real time, and line-by-line code editing does not map to the notebook cell model. Data scientists have been working around this gap for years with no native solution inside the notebook environment itself.

In this interview, Lahari Chowtorri, Technical Program Manager for AI/ML Open Source Strategy and Marketing at Amazon, walks through how Jupyter AI 3.0 resolves these architectural gaps, what the adoption of Agent Client Protocol and Model Context Protocol means for provider flexibility, and where the project is taking agentic notebook workflows next.

Guest: Lahari Chowtorri, Technical Program Manager, AI/ML Open Source Strategy and Marketing at Amazon
Show: TFiR

Here is what every data scientist and ML platform engineer needs to know.

Technical Deep Dive

Q: What is Jupyter and why do data scientists still use it?

Lahari Chowtorri, Technical Program Manager for AI/ML Open Source Strategy and Marketing at Amazon, describes Jupyter as an open source software suite for interactive scientific computing, used by data scientists, researchers, and scientists worldwide. The project includes multiple sub-projects: JupyterLab, Jupyter Notebooks, and JupyterLite, each serving different use cases. What makes Jupyter distinctive is its ability to mix code, data, images, and widgets in a single document.

“It is basically a document where you can actually mix code, data, images, widgets, all in one single place. And that’s what makes it so special.” — Lahari Chowtorri, Technical Program Manager, AI/ML Open Source Strategy and Marketing, Amazon

Q: How is Jupyter evolving as AI agents become more capable?

Chowtorri frames the evolution across three layers. The first is AI in Jupyter, where agents inside notebooks complete work on behalf of users. The second is AI for Jupyter, where AI acts as a force multiplier for maintainers building future features at scale. The third is Jupyter as a platform for evaluating and building next-generation large language models, which is how Amazon SageMaker uses it today. The role of the user is shifting from writing code to bringing data and questions, then exploring the answers agents produce.

“Users actually come with their data and the questions to Jupyter notebooks. It’s actually the agents that are completing the notebooks for you and then you explore the answers.” — Lahari Chowtorri, Technical Program Manager, AI/ML Open Source Strategy and Marketing, Amazon

Q: What is Jupyter AI and how does it differ from classic Jupyter Notebook?

Jupyter AI is an extension within JupyterLab, installed the same way as other JupyterLab extensions via pip. Once installed and JupyterLab is restarted, users gain access to a chat interface with frontier agent integrations, notebook-native tools, and MCP support. Chowtorri frames the relationship clearly: Jupyter remains the platform, and Jupyter AI is the AI layer on top of it.

“Jupyter is still a platform and Jupyter AI is the AI layer on the top.” — Lahari Chowtorri, Technical Program Manager, AI/ML Open Source Strategy and Marketing, Amazon

Q: What technical problems did existing AI coding agents fail to solve for Jupyter notebooks?

Two distinct architectural problems prevented existing agents from working natively with notebooks. First, standard agents edit code line by line, which does not map to the notebook model because notebooks are JSON files, not flat code files. Second, agents that edit at the disk level produce changes that do not reflect synchronously on the notebook UI. Both problems required purpose-built solutions: notebook-native tooling so agents can edit notebook cells correctly, and a real-time collaboration backend called Jupyter Server Documents to sync changes to the interface as they happen.

“We had to build notebook native tools so that the agents can edit the notebooks easily. And we had to build a real time collaboration backend called Jupyter Server Documents that would actually enable us to reflect these changes in real time on the user interface.” — Lahari Chowtorri, Technical Program Manager, AI/ML Open Source Strategy and Marketing, Amazon

Q: What are the key new features in Jupyter AI version 3.0?

Jupyter AI 3.0 adopts two industry-standard open protocols: Agent Client Protocol and Model Context Protocol. Agent Client Protocol enables users to swap different AI personas inside the notebook environment. Model Context Protocol allows agents to access tools, native notebook resources, and proprietary APIs without requiring all SDKs to be installed locally. This keeps the notebook environment lightweight and avoids bloat from unused libraries. Chowtorri also describes upcoming capabilities including proactive agents that detect outliers in visualizations and open new cells to investigate them, and agents that complete unfinished notebooks when a user returns to work left incomplete.

“We are making the notebooks very lightweight and we are not pushing that bloat of unused SDKs.” — Lahari Chowtorri, Technical Program Manager, AI/ML Open Source Strategy and Marketing, Amazon

Q: How does Jupyter AI 3.0 achieve provider-agnostic model support?

The project moved away from hard-coded integrations and toward industry-standard protocols to preserve user freedom of choice. Agent Client Protocol enables chat with different AI personas including Claude Code and OpenCode. Model Context Protocol enables agents inside notebooks to interact with multiple tools, proprietary APIs, and local resources without requiring vendor-specific SDKs. Users install only the CLI for the model they want to use, keeping the environment lean.

“The most important tenets when it comes to Jupyter AI is that it is provider agnostic and keeping the user’s freedom of choice, whatever model that they want to use or agentic harness that they want.” — Lahari Chowtorri, Technical Program Manager, AI/ML Open Source Strategy and Marketing, Amazon

Q: How does Jupyter AI handle trust, tracking, and control for agentic workflows?

Chowtorri identifies two mechanisms for trust and control. The first is human-in-the-loop enforcement: every time an agent writes code, runs code, or attempts to access tools and resources inside Jupyter, it must request explicit permission from the human working alongside it. The agent cannot perform any action without that approval. The second mechanism is automatic audit trail creation: all chat interactions between the agent and the user are saved as files in the workspace, giving users a complete record they can review at any time.

“The agent can never perform without the approval from the human that the agent is working with.” — Lahari Chowtorri, Technical Program Manager, AI/ML Open Source Strategy and Marketing, Amazon

Q: Does Jupyter AI support open-weight models or only frontier models?

Jupyter AI natively supports open model providers such as Ollama and open-weight models including Qwen and DeepSeek, in addition to frontier models like Gemini, ChatGPT, and Claude. Chowtorri attributes this to the project’s open source core and its commitment to serving privacy-conscious users who prefer to run models locally. Users have full flexibility to select whichever model fits their requirements.

“We are open source at the core. The Jupyter community has decided that we should natively support the open model providers like Ollama and also the open weight models like Qwen, DeepSeek and all other models that are available out there.” — Lahari Chowtorri, Technical Program Manager, AI/ML Open Source Strategy and Marketing, Amazon

Q: Will Jupyter notebooks become fully AI-powered, and what is Jupyter’s long-term role?

Chowtorri states the project is moving toward agentic workflows but is not positioning Jupyter as a zero-code orchestrator in the near term, in part because LLMs still make mistakes and users still need to review and correct agent output. The longer-term vision is for Jupyter AI to serve as the platform from which agentic workflows are launched while maintaining the natural audit trail. A key architectural advantage is that notebooks are JSON files, making them rich memory artifacts that can be fed back into future agentic workflows to pre-train agents on previously generated work.

“Notebooks are JSON files essentially, so they become very rich artifacts to feed back into the next agentic workflows so you can pre-train your agents on the notebooks that you have generated previously.” — Lahari Chowtorri, Technical Program Manager, AI/ML Open Source Strategy and Marketing, Amazon

Q: What does Amazon’s sponsorship of Project Jupyter mean for the project and the ecosystem?

Amazon’s SageMaker runs on Project Jupyter under the hood, and Amazon maintains a dedicated team contributing upstream to the project full time. Named contributors include Brian Granger on core Jupyter, David Q on Jupyter AI, and Jonathan on Jupyter Scheduler. Beyond code contributions, Chowtorri is personally focused on community building, specifically on amplifying non-code contributors, attracting new participants, and creating pathways for students to begin learning through Jupyter. She frames this as increasingly critical as agents take over code writing: the humans who run events, write documentation, and maintain relationships are what keep a project healthy and sustainable over time.

“The source is not code anymore. It’s the humans that are going to build a community now. Code is written by agents now.” — Lahari Chowtorri, Technical Program Manager, AI/ML Open Source Strategy and Marketing, Amazon

Q: What is one feature in Jupyter AI that will surprise experienced data scientists?

Chowtorri highlights the introduction of cell-level magic commands that allow users to invoke different large language models in different cells within the same notebook. This means a user is not locked into a single model for an entire session. Building on that, the roadmap includes the ability to assign different agents to different cells: a data analysis agent in one cell, a data visualization agent in the next, each specialized for the task at hand.

“You can actually invoke a different large language model in different cells. It’s not just one model that you’re working with, it’s various models that you’re working with.” — Lahari Chowtorri, Technical Program Manager, AI/ML Open Source Strategy and Marketing, Amazon

Resources & Documentation

  • Project Jupyter, open source interactive scientific computing platform and parent project
  • Jupyter AI, official documentation for the Jupyter AI extension
  • JupyterLab, the primary web-based IDE for Jupyter notebooks
  • JupyterLite, lightweight browser-based Jupyter distribution
  • Amazon SageMaker, Amazon’s ML platform built on Project Jupyter
  • Ollama, local open-weight model provider natively supported by Jupyter AI
  • Jupyter AI Contrib, community organization for third-party Jupyter AI integrations

***

👇 Click to Read Full Raw Transcript

Swapnil Bhartiya: Now the fact is that developers love AI tools, but they are clunky. You are hopping and jumping between terminals. Chat windows is such a mess. If you look at the other side, Jupyter notebooks. They have been extremely popular with the data scientists and developers for almost a decade now. And now Jupyter is bringing AI into the fold, into its environment. Today we have with us Lahari Chowtorri, Technical Program Manager for AI/ML Open Source Strategy and Marketing at Amazon, to talk about what’s new here. Nari, it’s great to have you on the show.

Lahari Chowtorri: Nice to meet you. Swab. Thank you so much for having me. I’m excited to be here as well.

Swapnil Bhartiya: Can you talk about what is Jupyter and why data scientists still love and use it?

Lahari Chowtorri: To put it very simply, Jupyter is basically an open source software suite that is used for interactive scientific computing. So the usual user base for this project would be data scientists, researchers, scientists all over the world working in notebooks essentially. So it also has multiple sub projects underneath it. We have Jupyter Lab, we have Jupyter Notebooks, we have jupyterlight, so which are used for various reasons. So I mean, to put it very simply, for somebody who has never heard of Jupyter, it is basically a document where you can actually mix code, data, images, widgets, all in one single place. And that’s what makes it so special.

Swapnil Bhartiya: How is Jupyter evolving as AI coding and AI tools are also evolving and changing and developers and data scientists are becoming more and more reliant on them.

Lahari Chowtorri: So yeah, like you said, AI agents are actually becoming incredibly powerful and most of the users today are using these AI agents to write code and they’re not doing it anymore by hand these days. So obviously the platform for rich editing experience shifts in this landscape. Right. So we are currently seeing Jupyter as visual analysis and a research platform where the agents get all the work done for you underneath and users actually come with their data and the questions to Jupyter notebooks. And it’s actually the agents that are completing the notebooks for you and then you explore the answers essentially. And we are also actually seeing it in three different layers, I would say. So the first one being AI in Jupyter, where the AI agents within the notebooks actually help you to complete your work. And then the second one being AI for Jupiter. So obviously AI has become a force multiplier for all of us, so it will definitely be a force multiplayer for maintainers as well to build the future features at a larger scale. And then the third One we are actually seeing it as is Jupyter itself as a platform or a foundation where you can actually evaluate and build the next generation of large language models. So how, for example, Jupyter actually powers the SageMaker and SageMaker is actually being used for this exact purpose today.

Swapnil Bhartiya: What sets Jupyter AI different from classic Jupyter notebook?

Lahari Chowtorri: Think of it like this. So Jupyter AI is basically an extension within the Jupyter lab. So the most easiest way to understand The Jupyter, the Jupyter AI extension is think of it as JupyterLab extensions basically is to think of it like browser extensions. So we are just adding an additional ability to JupyterLab here. So users can actually install Jupyter AI by going to pip, just like how they install Jupyter Lab. And then what actually happens is when they restart this Jupyter Lab again, they actually see a chat interface where they have access to Frontier Agent integrations, notebook native tools and MCP support and all other tools. So to put it simply, Jupyter is still a platform and Jupyter AI is the AI layer on the top.

Swapnil Bhartiya: Can you talk about what problem is Jupyter AI trying to fix that the current breed of AI agent or coding assistants cannot solve?

Lahari Chowtorri: I mean, existing coding agents were okay with notebooks. I mean, there were a lot of technical challenges that weren’t solved for notebooks, especially with the existing agents, because the agents today edit your code line by line. But whereas this doesn’t work with notebooks, the reason being notebooks are basically JSON under the hood. So this doesn’t work the similar way how the coding agents were doing. Right. So we had to build notebook native tools so that the agents can edit the notebooks easily. And also on the other hand, agents edit the files at the disk level. When you edit the files at the disk level, what actually happens is the changes do not reflect on the user interface synchronously. So we had to build a real time collaboration backend called Jupyter Server documents that would actually enable us to reflect these changes in real time on the user interface.

Swapnil Bhartiya: Now, the new version came out recently, version 3.0 and it that you use cloud codecs, Gemini, etc. What does that really mean for developers, data scientists and the whole AI coding?

Lahari Chowtorri: Okay, I think one of the main features with the Jupyter AI V3 is that we have adopted to the industry open industry protocols, Agent Client Protocol and Open Model Context protocol. So essentially what Agent client protocol is doing is that it’ll enable the users in the notebooks to swap different AI Personas. And then when it comes to model context protocol, it’ll help the agents to access various tools and native resources in the notebooks and also the proprietary APIs. So you do not have to install all the CLIs. If you want to use Claude, you’ll just install Claude CLI. So in this case what we are doing is we are making the notebooks very lightweight and we are not pushing that bloat off unused SDKs essentially. And when it comes to the future, what we are actually seeing is the proactive agents where you start doing a data analysis and you build a data visualization, an agent notices an outlier in your visualization and then the agent itself goes and creates a new cell and starts investigating why there is an outlier in this data visualization. So the other things that we are looking at are the unfinished work. So let’s say you started a notebook and then you start working on it and then you just close it in the middle of the way and when you come back the agent would have completed the notebook for you and you just have to verify and explore the answers that it has given you. So and I think the most important thing would be is the notebooks itself as a memory. Like I said earlier, they are JSON files so you can actually use them again to feed into the agentic workflows so that you’re pre training them on the data that you have worked on.

Swapnil Bhartiya: The new version, version 3.0 recently came out which now supports cloud codecs Gemini. What does it really mean for developers and data scientists in the Jupyter ecosystem?

Lahari Chowtorri: So it’s actually a great question. The most important tenets when it comes to Jupyter AI is that it is provider agnostic and keeping the user’s freedom of choice, whatever model that they want to use are agentic hardness that they want. So we have achieved this by moving away from hard coded integrations and adopting the industry standard protocols. So with the Jupyter AI version 3 you can actually see that it supports agent client protocol and model context protocol. So this tools will actually, these protocols will actually help you to chat with different AI Personas like cloud codecs and opencode. And then MCP helps the agents within the notebooks to interact with multiple tools and then proprietary APIs and local resources and everything.

Swapnil Bhartiya: Trust is a critical piece when it comes to AI. How does Jupyter AI help with trust tracking and control for users?

Lahari Chowtorri: I think there are two ways that we can actually track this kind of workflows. Right now in Jupyter. So the first one obviously being the human in the loop. So what we are actually doing here is every time agent is writing a code or running code or it is trying to access different tools and resources within the Jupyter, it actually has to ask permissions to the human that is working along with it in the notebook. So agent can never perform without the approval from the human that the agent is working with. And the second one is all the chat files, all the chat interactions that you’re having with the agent within the notebooks save as files in the workspace. So there is that natural audit trail of the interaction that is happening between the agents and the humans. So there is a way for you to go back and see what actually happened in the interaction.

Swapnil Bhartiya: Can you talk about what is Jupyter’s approach for supporting different models flexibilities so one can use open weight models, Gamma Quinn as well as frontier models, Gemini, ChatGPT, of course Cloud and many others talk about flexibility.

Lahari Chowtorri: We are open source at the core, so also keeping the privacy conscious users, the Jupyter community has decided that we should natively support the open model providers like Ollama and also the open weight models like Qin, Deep Seq and all other models that are available out there for people to use. So there is a flexibility for you to choose any model that you want. So that’s how we have come up with it.

Swapnil Bhartiya: Can you talk about where do you see it’s all going? Are notebooks going to become fully AI powered and what is Jupyter’s role there?

Lahari Chowtorri: We are definitely moving towards agentic workflows, there is no doubt in that. But as of today I think it is very hard to say because most of us still, I mean not only us, I mean every user still want to see their agents and correct mistakes, right? Because LLMs still make mistakes and unless some drastic changes happen in that space, we cannot trust them completely and give our work to them entirely. But when it comes to Jupyter we are not expecting it to become a zero code orchestrator yet. And I think the user base is not ready for that yet as well I guess. But when it comes to the future, we want to see Jupyter AI as a platform where these agentic workflows are launched and as well as that natural audit trail is maintained and it essentially becomes as a memory artifact. So one thing that we missed here is notebooks are JSON files essentially, right? So they become very rich artifacts to feed back into the next agentic workflows so you can pre train your agents on the notebooks that you have generated previously. So that’s one of the best feature I think when it comes to Jupyter.

Swapnil Bhartiya: Amazon is a sponsor of Jupyter. What does that sponsorship mean for Jupyter? For open source and for the larger ecosystem?

Lahari Chowtorri: So especially when speaking about Jupyter, we have SageMaker which is an Amazon service that is offered but under the hood. It’s the Project Jupiter that is powering SageMaker. Essentially they have an entire team within Amazon that works constantly contributing upstream to the project Jupyter. We have Brian Granger working on it. We have a lot of other folks, David Q who is working on Jupyter AI and then Jonathan who is working on Jupyter Scheduler. So all these people are dedicated to work on Jupyter alone and their work is almost always to contribute upstream to Jupyter. And we also have a lot of people working on the community front as well. I, myself, myself I’m working on the community building working group. So we want to amplify the non code contributors who are working in Jupyter and also how we can actually bring new people to come to work on Jupyter and also how we can teach students that they can actually start learning coding on Jupiter. So yeah, we are working with Project Jupiter on various fronts. So I’m really excited about it honestly since I’ve started just last year working on it. This is a topic that is very close to my heart because we are shifting from a lot. The landscape is shifting so fastly. The source is not code anymore. It’s the humans that are going to build a community now. So you need more people to participate in the project. Code is written by agents now. So how can you make sure that there are newcomers in the project? How can you make sure that there are people who can run events, workshops? How, how can you make sure that there are people writing documentation for the projects that you’re building? We need contributors for Jupyter AI as well. There is a Jupyter AI contrib organization that takes in new users that are building new integrations for the project. So we always need new wave of people to keep a project running and healthy. So how do we make sure it’s the humans that bring in this new people and these humans that actually maintain that communications and that relationships actually survive longer time. Right? So yeah, I think the non code contributions are the ones that are also going to help you keep your project healthy and sustainable on a longer run.

Swapnil Bhartiya: I would be surprised if any data scientists or developer has not tried Jupyter. But if they try Jupyter AI today, what is one thing that they will be surprised to see there?

Lahari Chowtorri: So one of the features that I myself am, I am a data scientist too. I mean back in the day I was a data scientist. So I myself that I’m excited about Jupyter AI is they have actually introduced a set of magics where a user can actually invoke large language models in the notebooks. And the best part is you can actually invoke a different large language model in different cells. So it’s not just one model that you’re working with, it’s various models that you’re working with. And also you can have different agents in different cells. Let’s say you’re doing data analysis in first cell in the notebook. So you will use a data analysis agent and then you move on further and you want to create a visualization for your data and then you use a data visualization agent. And these are a few ideas that we are actually looking at for the future of Jupyter AI. So I’m excited about that and I think the Jupyter community will be excited about it as well.

Speaker C: I think now, now we have everything. Anything else that you feel like we should talk about it?

Lahari Chowtorri: Oh, I think we have off the camera we have missed a question on what is it that we are. What are the new features that we are going to see in Jupyter AI or something?

Speaker C: Oh yeah, it was around version three.

Swapnil Bhartiya: Right.

Speaker C: So let me. I will ask a question and I’ll move it. You know, when I ask the question about version three.

Lahari Chowtorri: Oh, it’s not just specifically about version three. I think this is where we are

Speaker C: talking about, you know, the version 3 is ship. Talk about the other feature that coming in. We just came since we start talking audibility.

Lahari Chowtorri: How will it expand the scope of AI in Jupiter or something? I guess. Yeah.

Speaker C: And when was the version 3.0 released?

Lahari Chowtorri: I don’t remember. Recently. Yeah but for the exact date I don’t remember.

Speaker C: Since you know the Jupiter AI 3.0 was released recently. Talk a bit about the evolution. New features which are there and new feature that you focus on working on. How do you see it evolving?

Lahari Chowtorri: I think we have introduced the. Can we go back on the question?

Swapnil Bhartiya: Larry, thank you for joining me and sharing your site and as usual I look forward to chatting with you again. Thank you.

Lahari Chowtorri: Thank you so much. Love.

How to Cut Cloud Dev Costs and Ship More Resilient Code Locally | Waldemar Hummer, LocalStack | TFiR

Previous article

Why Cloud ROI Stalls After FinOps Stage One | Peter Maloney, Azul | TFiR

Next article