BlogWriter Goes Open-Source

Today I formally opened up my demo program BlogWriter as an open-source program. To do so, I added an MIT license and began taking contributions. Really that was about all there was to it, but it felt momentous.

If you haven’t been following its development, here is the very short story: this is a demonstration program that takes a prompt and hands that to a Researcher agent which does a web search and also searches Microsoft’s Learn project. The Researcher then hands off what it finds to the Author agent who does a first draft and hands that to the Reviewer agent. The Reviewer can either approve or send it back to the author with suggestions for actionable changes. I cap that cycle between the Author and Researcher to two round trips to save on tokens (and I cap the number of tokens overall). I’m not made of money, unfortunately.

As an aside, I submitted two of the blog posts this program generated to a web application that purported to “uncover” AI-generated text. It came back and said both were 100% human!

Development

Virtually all the later programming was done with Spec Kit and Copilot. This saved countless hours of development.

Not that long ago I decided to put a front end on what until then had been a console application. I described what I wanted to Spec Kit and said that I wanted it written in Blazor and C#. I didn’t know Blazor, and this seemed like a good way to get started with it! A couple hours later I had a fully functional, not unattractive, web application that was tied into all the functionality of my console application. My back-of-the-envelope estimate is that for this part of the project (creating the UI) I saw about a 10x improvement in productivity.

There is much to do yet. Some very small things (e.g., adding some color to the buttons) and some bigger things (e.g., moving the telemetry to Azure) but the essential program is there. In some of the next few blog posts I’ll take it apart. The documentation from Spec Kit is excellent, and the code generated by Copilot is very clean, so this shouldn’t be too difficult. If you are interested, start with the ReadMe or the architecture document.

With over 30,000 lines of code and documentation added just recently (and who knows how many all together), I confess that I have not read every line. Nor, to be frank, do I think I should have. While this is not Vibe coding, painstakingly reading every line of code is not realistic or even desirable. Rather, I read the tricky parts, or the parts I wouldn’t have known how to do without some research. I examined the unit tests to make sure they were testing what they said they were and that they covered all the bases. And I did a lot of end-to-end testing. And that was about it.

If this was (were?) going to be a production application, I’d do more, but until yesterday this was a demo written and tested by just one programmer. I don’t think it will ever grow up to be a production application (I want to be a real boy), but I do think it will continue to be enhanced, if somewhat more slowly.

History

A bit of history for those of you who have not been reading every one of my blog posts (and why not??). This started out as a LangChain/Python exercise. I then ported it to C# and from there to Microsoft Agent Framework. Then I started adding features until I enlisted Bruno Capuano and Jon Galloway (both of Microsoft) to help me move the agents to Foundry That was when I started getting excited about what this could be and began to add more features (e.g., short-term memory using session objects and long-term memory on a Cosmos Database).

The complete list of what’s been done so far can be found on the first page of my blog (you’re reading my blog now, just in case you’re lost). Most of the later posts were initially written by this program and then lightly edited by me.

More to come…

Unknown's avatar

About Jesse Liberty

Jesse Liberty has three decades of experience writing and delivering software projects and is the author of 2 dozen books and a couple dozen online courses. Liberty is a Senior AI Engineer at the University of Pittsburgh Medical Center, and was a Team Lead and Senior Software Engineer for various corporations, a Senior Technical Evangelist for Microsoft, a Distinguished Software Engineer for AT&T, a VP for Information Services for Citibank and a Software Architect for PBS. He is a 21 year Microsoft MVP.
This entry was posted in AI, Essentials. Bookmark the permalink.