← All writing

Why I Switched My AI Newsroom from CrewAI to LangGraph

I moved my AI newsroom from CrewAI to LangGraph to gain clearer state, workflow control, and more consistent output.

CrewAI helped me prototype an AI newsroom quickly. LangGraph gave me more control when consistency started to matter.

I first built the newsroom with CrewAI. Researchers, writers, and editors passed work between roles, and the first prototype came together quickly.

The problem appeared when I started caring more about repeatability. The output could have the wrong structure, inconsistent formatting, or a tone that changed between runs.

I had already compared CrewAI, AutoGen, and LangGraph in an earlier article. This time, I wanted to understand whether LangGraph’s explicit workflow model would solve the issues I was seeing.

AI newsroom output

Why LangGraph felt like a better fit

The biggest difference was control. In LangGraph, I describe the workflow with nodes and edges.

Each node has a focused job, such as researching, drafting, or editing. The edges describe how work moves between those jobs and when the workflow should branch or continue.

That structure made the system easier to inspect. Instead of asking a group of agents to coordinate implicitly, I could see the sequence and decide where state should be passed.

What changed in the newsroom

The overall newsroom idea stayed the same. A researcher gathers material, a writer drafts the digest, and an editor checks the final output.

The implementation changed from CrewAI crews and tasks to LangGraph nodes and edges. The roles still exist, but the handoff between them is now explicit.

The editor node is especially useful. It checks the final structure and applies the template I want before the article is saved.

The remaining problems

The output is more consistent, but it is not automatically correct. I still need to verify the day of the week and check whether each article has the right source.

These are good examples of tasks that should remain visible in the workflow. A framework can make the process repeatable, but it cannot replace source checking.

AI news digest from the previous week AI news digest from the previous week.

AI news digest from the current week AI news digest from the current week.

The implementation is available in the GitHub repository.

A quick note about uv

One unrelated tool made the project easier to maintain: uv.

It handles Python versions, dependencies, virtual environments, and command execution with a small set of commands. It removed enough setup friction that I kept using it for later experiments.

The project environment

Takeaway

Switching to LangGraph was less about finding a universally better framework and more about matching the tool to the problem.

CrewAI was a good way to explore the idea. LangGraph became a better fit once I needed explicit state, visible control flow, and a stable final format.