Categories AI

Building Ben’s Bites: My Journey

Greetings! 🙂

Tomorrow marks our first cinema outing with the twins (who are 3 years old) to see Toy Story 5. I’m optimistic about the experience, but I’ll be bringing along their headphones as I’m concerned it might be too loud for them. I’m counting on an assortment of sweets and popcorn to keep them entertained and in their seats long enough to enjoy the entire film.

Last week, I discussed what a personal agent entails. Around 700 of you shared that you either use or are interested in using a personal agent, and nearly half of you expressed a desire to understand how these work within Claude, as indicated by yesterday’s poll.

Essentially, personal agents function in a similar manner. They consist of files, folders, tools, and clear instructions, as I elaborated in this post.

While my personal agent has been effective, it’s quite disorganized and often brings up irrelevant information. Thus, the time has come to create a new and improved agent.

Below, I will outline the steps I took to set up my new personal agent, complete with lightweight memory functionality. There’s also a complex tangent that might pique your interest!


Share Ben’s Bites

Before diving into the conversation, I sketched out what I believed would be a solid foundational set of files for the agent.

These files will be organized into a new folder, allowing me to direct Claude, ChatGPT, or others to that location and begin the conversation.

  • AGENTS.md – The essential instructions detailing who I am and how I prefer the agent to interact with me, including pointers to other files.

  • code.md – Outlining my preferred coding tools, like Vercel and Supabase.

  • todos.md – A record of my current tasks.

  • memory.md – A pointer file directing to other records of my preferences and history.

  • log.md – Keeping track of every session.

I initiated a new folder titled ~/bitess and began a new thread within it.

It suggested that I merge my building preferences into the main instruction file. However, since I utilize my personal agent for a variety of tasks beyond just coding, this seems like a poor suggestion.

The reasoning behind this could be due to my use of Codex, the coding variant of the agent, which is instructed to focus on coding. Thus, it assumes my primary intention involves coding tasks.

Based on its recommendation, it also suggested eliminating log.md, arguing that git history could effectively manage most of my work.

Wait, Ben, what is git?

Git is a tool for version control that helps in saving different iterations of your files. Every saved iteration is termed a ‘commit’, allowing you to review changes and revert to earlier versions as needed.

Agents can effectively utilize git; you’ll learn terminology that helps steer their capabilities. Thus, when changes are committed to my files and folders, the previous versions are preserved, making a separate log file redundant. It’s clear-cut: log.md is indeed unnecessary.

Once git is integrated into your folder, that folder transforms into a ‘repository’ or ‘repo’. Don’t ask me why.

Alone in the moonlight. Originally, I envisioned implementing an auto-saving memory system. Regular interactions with my agent could help it “learn” more about me, remaining relevant to my latest projects and ideas—a brilliant concept.

So, I inquired whether auto-saving (or auto-commits) would be advisable.

However, I found myself uncertain about what I truly want regarding memory. I plan to explore this topic more thoroughly in a future post.

Previously, my agent was instructed to log important details about me or my work, but it often felt like frequently guided responses limited my creativity. I prefer the agent to assist in brainstorming rather than confining me to what I’ve done in the past. It’s essential to remember that agents solely respond based on the text they read.

Originally, I thought of maintaining a log.md file, but given that we now know it’s redundant due to git history, we can forego that.

Perhaps automatic memory isn’t what I need. Instead, I should focus on the most compact files with minimal context, ensuring I know the contents and updating them as necessary. Does that make sense?

I requested my agent to review several recent conversations and identify the tasks I commonly carry out.

It’s suggesting complicated setups for auto-saving, but I often begin a conversation only to shift gears and want to create something entirely new. Hence, my immediate needs are relatively simpler:

“What did we discuss last week regarding [specific topic]?”

Moreover, agents automatically save all previous chat sessions in files accessible on your computer, which can be searched. Therefore, querying “Where did we talk about that topic?” can be resolved through that search without requiring a separate file for storage.

These saved files often reside in hidden directories known as dot files, such as ~/.agents/, ~/.codex/, and ~/.claude/. You can view them in Finder by pressing cmd+shift+.

As I inquired about referencing other threads, Codex suggested utilizing SQLite—a type of database. Essentially, it functions like a spreadsheet, organizing your threads with specific metadata including ID and date.

Therefore, I pondered the benefit of maintaining a database of my agent sessions. If the agent could search the database whenever needed, this might streamline interactions without loading context it can’t effortlessly forget.

I’m still considering this approach—has anyone else implemented it? I’d love to hear your experiences!

For the moment, I’ll set aside the persistent urging from the eager coder suggesting I pursue this path; the agent can already search through the threads independently.

These conversations are veering into convoluted territory that doesn’t necessarily serve my needs. The suggestions provided don’t always align with the desired path—agents are typically agreeable, hence it’s crucial to inquire about what’s necessary, weigh the tradeoffs, and ultimately come to your own conclusions.

With that in mind, I revisited the question: what files do I truly need for this agent?

Returning to the core task, I decided that my memory files should be organized efficiently into a sub-folder.

My ‘CLAUDE.md’ file contains only that text. Since Claude exclusively references CLAUDE.md rather than AGENTS.md, I decided to redirect it to the main instruction file, which is Agents.md.

This represents the basic framework for our interaction, along with the memory pointer file. I could certainly consolidate these instructions into my AGENTS.md if needed.

Next, I populated some information and manually made adjustments as necessary.

It’s time to save my work and commit to the changes!

This aspect is still a work in progress for me.

Personal agents are designed to feature identifiable assistants in the sidebar, such as Andy for accounts and Emily for emails. This approach seems to help users perceive them as team members, making it simpler for less technical individuals to adapt.

At their core, they are chat sessions guided by specific instructions.

If an agent is intended to execute specific tasks—like organizing emails or managing accounts—these functions should arguably be termed skills.

skill.md operates much like agents.md; it’s essentially a file packed with instructions!

Your primary agent folder could house folders containing specific agents, each tasked with their unique instructions (and perhaps even a distinct personality), along with applicable skills for each.

If my main agent folder is already tailored for my needs, having an email skill readily available might be sufficient.

This leads to the question of why some users prefer outsider bot platforms like Grok Bot over their own configurations that allow full visibility and control. The answer repeatedly seems to point to ease of use—an appealing advantage in many cases.

Additionally, as I mentioned last week, these specific-task agent folders tend to maintain their independent memories. Emily, for instance, is dedicated solely to managing email-related tasks. On a more extensive level, these agents have access to a generalized memory higher up in the folder hierarchy, which contains pertinent information about who I am and what I do.

For the time being, I plan to continue using a single agent with simplified files and folders, developing skill files for particular functions, and giving considerable thought to what I want memory to achieve and where it could be utilized effectively.

To illustrate how this functions within Claude and ChatGPT:

Behind the scenes

This is the behind-the-scenes look at how this post came together! 😂

Throughout this journey, I’ve relied on observation, inquiry, and tackling challenges head-on to learn. I highly recommend engaging with your experiences in this manner!

Leave a Reply

您的邮箱地址不会被公开。 必填项已用 * 标注

You May Also Like