I think the most important concept when building AI agents is bootstrapping. I use the term a lot so let me explain it a bit.

What is bootstrapping?

The expression itself comes from the phrase "pulling yourself up by your bootstraps"—a 19th century American expression describing an absurdly impossible act (literally lifting yourself off the ground by tugging on your own boot straps).

In computer software, it refers to the process of using a system to build or improve itself. For example, modern programming languages are bootstrapped: the Rust compiler is written in Rust.

Every part of building the agent should be done with the agent

If you are working with an AI agent for anything, you want to rush as fast as possible to getting a basic agentic loop going where you can interact and talk with the agent. Then, you want to guide the agent through implementing its own tools, and testing them as it builds. You want to ask the agent for ideas on what else to give it access to. You want the agent to write most of its own prompts as well.

You are just a guide and an editor. If I have a new task I want a prompt for, I'll usually wordvomit on Zulip and then ask the agent to write it properly (while being concise) and then I'll edit with the agent. For making Baba talk more like me, I just said "search Zulip and write a guide for how I talk (minus typos)". My goal is just provide the minimum amount of steering to get what I want and do the least amount of work myself.

Every part of the agent development process should be done with the agent. You shouldn't even really brainstorm without the agent involved. If I'm unsure about a Baba feature, for example, I might get davy's thoughts briefly in person but I'll usually do it on Zulip so that I can also ping baba mid convo to get Baba's ideas. Baba's ideas are usually very good.