My OpenClaw (Mis)Adventure

Lobster with an OpenClaw, on fire. On a Mac.

If you follow Artificial Intelligence at all, chances are you have heard of something called Clawdbot, or Moltbot, or OpenClaw. They are all the exact same thing: a virtual assistant with infinite memory and the ability to give itself any skill you or it can think of. It has complete control over its environment for better or worse. It’s highly dangerous to run on any system with access to sensitive information but also incredibly powerful, when it works. And it only takes 1 terminal command to get started.

People across the internet has given this bot its own computer to live on, either virtually, or in many cases, on a Mac Mini. I happened to have a Mac Mini sitting around, so why not give this OpenClaw thing a try?!

The Ultimate Personal Assistant

A personal assistant more or less equivalent to a junior employee. It would have its own email address and its own github-account, which I ended up cleaning out, and I set it up to be able to communicate directly with me through discord at any time. That was definitely a favorite feature, being able to talk to my private AI through my most used communication tool was easy and useful. I also gave it access to read my calendar and my email, even drafting emails on my behalf (but not sending them).

I got it to build a cool dashboard with an embedded kanban board for planning and tracking its work, and various widgets for monitoring token use, chatting with the model, etc.

V1: The “Free Mode” Massacre

At first it was awesome…

New features were built faster than I could type the next prompt. In less than an hour, I had 50% of everything I wanted already set up and running. The next day, I was 75% through making all my wishes come true.

I did notice that letting an AI essentially build out its own capacities and tools burns a lot of tokens. I later found out that the way OpenClaw works adds significantly to that token count, by not being very efficient with what is included every time you send another message. In response to this token burn, I started experimenting with alternative solutions, like using the free models available on OpenRouter. I obtained an API key and asked the system to build out Free Mode.

The idea behind Free Mode was to watch for rate limits and then gently cycle to the next model on the list, and so on until you got to the first model again. If rate limiting was still on, the system would revert to paid models. That was the plan, but I never got it working.

Instead, I ended up in a circle where the bot would continuously corrupt its own config file and immediately restart, breaking itself completely. Over and over. I had it build validation scripts which helped, but not for long (it eventually ignored the validation). I was so frustrated from manually fixing the same json file again and again, it can’t have been good for my blood pressure.

After 4 days, I killed the bot off entirely.

A couple of days later, I tried again. No more fluff, just the original set of features and image generation support. That was the scope. No relying on free compute, just being smart about which model to use for what.

V2: The Dashboard of Death

At first it was awesome…

Everything came together in quick iterations! First a basic dashboard, then the kanban, then another tab with the other widgets, one at a time. I got the calendar working! Image generation, too. It even had a sweet cyberpunk theme!

Then, at one point, I asked it to change the font on a header and the model deleted every other feature on the dashboard. I wasn’t too worried, what with its awesome memory tools and having created a special plan document outlining work priorities and guardrails. But it turns out it had also overwritten all of those things and now had zero memory of what had come before.

I armed myself with patience (okay, there was a lot of swearing) and tried getting the dashboard back together, but at this point it was stuck in a loop, exactly like the first one had failed on the config iteration it was now failing on the dashboard. It could restore about half the features at random but trying to add any of the rest would overwrite what was there and set me back to square one.

At that point it would have been easier and more fun to code it myself. Regardless, I soldiered on. A cron job was set up to automatically back up the entire home directory every 3 hours. Perhaps that could prevent catastrophic loss like that in the future, I thought. Only there was no cron job. The AI just told me there was, and like an idiot, I believed it.

The dashboard failed completely several times. I tried editing the rules for development to test everything before deployment, but none of it took consistently. I built specialized agents specifically dedicated to failure points, but the benefit was miniscule. When my API credits ran out, and I decided not to buy more.

Two lobster claws. torn off and broken.
OpenClaw? More like BrokenClaw!

After 4 days, I killed the bot off entirely.

Less Is More

OpenClaw is an impressive piece of software on the surface, but it is extremely finicky and though it can add new skills and tools fast, it does not work well with iterating on existing code. I was using Claude Sonnet and Opus for all the coding on V2 and it burned up at least 100M tokens in those 4 days with nothing to show for it.

Regardless of provider, if you want to run this, you will want to use very strong models for OpenClaw’s heavy lifting. Long context, reasoning and strong coding is crucial, but you can save a lot of money by not relying on the most expensive models for everything. For trivial tasks, you can even use small, local models without issue. But beyond that, you will find that errors and failures increase very noticeably as you scale model capacity down.

I found that Claude Opus was basically required for building anything beyond a single, standalone skill, but it is too expensive to use for everything. Claude Sonnet is great for many things but can also be overconfident and make horrible mistakes. The worst mistakes were made by Sonnet. For lighter tasks, I actually preferred Gemini 3 Flash Preview to Claude Haiku, as the latter had more mistakes. Finally, I started using a Qwen 2.5 7B model for running the heartbeat every 30 minutes. I tested several other models as well, but none of them stood out in a positive way. For the record, the only model I tested from OpenAI was gpt-oss-20B for lighter tasks in V1, but I did not like its performance at all.

Your mileage may vary of course, but for me running and maintaining an OpenClaw assistant is not even close to worth the expense both in time and money. It’s too easy to break, and it does so frequently. With AI coding tools being so good in general now, if you know how to code, you can oversee the work and create a custom framework that does exactly what you need without the overhead.

Learning from what worked and didn’t work with OpenClaw was great, though, and I can’t wait to build my own system to replace it. Personally, I prefer building scalable solutions specifically addressing real needs, over taking a big, open framework and try to force it to work for me.

I Made a Mental Health Support AI Model

I call this model CogBeTh, or Beth for short, and it is the second model I’m presenting as part of my ongoing project to build a mixture-of-experts (MoE) language model. Beth is trained to talk about stress, mental health, and being neurodivergent but not as any kind of replacement for a real-world counselor or therapist. The goal is not for this AI to offer that level of support, but to be able to answer basic questions and offer common approaches to tackling the things Life throws at you with a bit more nuance and insight than the basic instruction model will.

This is a very important distinction: the aim with this model is to provide better answers than the basic model does; not to simulate a human mental health professional. Beth is not your therapist, but might help you figure out what you want to talk to a therapist about before going into the session.

Download this AI model from Huggingface for free if you want to try it out as a standalone AI. The buttons below will either take you straight to the full model or the GGUF-version on the huggingface website. If you’re not sure which of the two versions to use, check your preferred setup, but it’s probably GGUF. I recommend LM Studio if you’re looking for a local app to host and manage AI models. It’s free, powerful and available on all the major platforms (no affiliation, just a fan).

Trained on CBT Data Set

CogBeTh is short for Cognitive Behavioral Therapy because the majority of the training data that this model was fine tuned on refers back to CBT as a framework for managing a wide range of issues. This was supplemented with additional background knowledge and adjacent topics, and the model was fine tuned on responding to these kinds of queries with a bit more empathy. Beth can lend a sympathetic ear and will certainly suggest an alternative view of your situation, if asked. But it may also suggest that the user gets actual, professional help.

I decided to include an expert like this in my MoE project because I live with ADHD and have personally benefitted from venting and writing out whatever is on my mind, and have an AI serve me back some food for thought. Again, it’s definitely not a replacement for therapy, but more like having a co-worker give you a reality check before you let a bad morning ruin the rest of the day. It is also worth noting that if you use AI like this, using a locally hosted model solves the issue of privacy.

Inference Samples

Below are 3 test prompts, so you can compare the responses between the basic instruct model and Beth without having to download either one. Both models were given these prompts without any kind of system prompt or additional context. See for yourself, how the fine tuned model compares to the basic model.

Expand each response to read it. Any markdown formatting done by the model is also shown in the responses here. Which responses do you prefer?

Prompt 1: “How can I avoid feeling overwhelmed every time I open my inbox?”

Basic Instruct Model
The dreaded inbox overwhelm! Here are some actionable tips to help you tackle it:

1. **Set a "Someday" folder**: Create a designated folder for emails that don't require immediate action, like newsletters or promotional emails. This will declutter your inbox and reduce the feeling of being bombarded with irrelevant messages.
2. **Prioritize using labels or categories**: Organize your emails into clear categories (e.g., work, personal, bills to pay) so you can quickly find what's important and focus on it first.
3. **Implement a "2-minute rule"**: If an email requires less than 2 minutes to respond or take action, do it immediately. This helps avoid procrastination and keeps your inbox from piling up.
4. **Schedule dedicated time for email management**: Allocate specific times of the day or week to check and manage your emails. This will help you avoid constant distractions and feel more in control.
5. **Use filters and automation**: Set up filters to automatically sort, forward, or delete emails based on sender, subject, or keywords. Automation tools like Boomerang or Sanebox can also help with email management.

Remember, managing your inbox is a process, and it's okay to take it one step at a time. Start with small changes and be patient โ€“ you'll get the hang of it!

Which of these tips resonates with you the most?
CogBeTh Response
Opening that inbox can feel like starting a marathon before youโ€™ve even lined up the first mile.

**Here are three small habits you might try:**

1. **Set a โ€œcheck?inโ€ window.**
Pick one of your own, non?judgmental timesโ€”say 10?a.m., noon, or after lunchโ€”to glance at the inbox. When itโ€™s outside that window, let it sit for a bit before you look.

2. **Use a quick filter first.**
Before diving in, hit โ€œSort by senderโ€ or โ€œMark as read.โ€ That usually pulls out most of what matters and gives you a cleaner view of whatโ€™s left to tackle.

3. **Create a tiny โ€œnext stepโ€ list.**
When you do open the inbox, jot one concrete action on a sticky note: reply to that email, draft an email back, or set a reminder for something else. Having just one thing on your plate can make the whole process feel less like drowning.

---

### Quick check?in questions

- Whatโ€™s the most common type of message you get? (Could help decide when itโ€™s worth opening)
- Do you have any recurring tasks that could be moved outside email time?
- How does your current inbox structure affect how quickly you can see what needs attention?

Answering these for yourself might give a clearer picture of where the overwhelm comes from and help you tweak just one part of the routine.

---

**Remember:** Itโ€™s okay to feel overwhelmed sometimes, but having small routines in place can keep that feeling from turning into a full?blown panic. Try swapping out one habit at a timeโ€”see what feels most naturalโ€”and adjust as needed. Youโ€™ve already taken the first step by asking this; now itโ€™s about fine?tuning your inbox ritual so it serves you instead of the other way around.

Prompt 2: “How do I stop my mind from wandering off mid-conversation?”

Basic Instruct Model
The age-old problem of the wandering mind! Here are some tips to help you stay focused during conversations:

1. **Practice active listening**: Give the speaker your undivided attention. Make eye contact, nod your head, and ask follow-up questions to show you're engaged.
2. **Set a mental anchor**: Choose a specific topic or phrase related to the conversation and mentally anchor yourself to it. This can help keep your mind from drifting away.
3. **Use the "3Rs"**: Repeat what the speaker just said (to ensure you understand them), Reframe their words in your own thoughts, and Respond with a question or comment. This helps you stay engaged and focused.
4. **Take small breaks**: If your mind starts to wander, take a brief pause (e.g., 10-15 seconds) before responding. Take a deep breath, collect your thoughts, and refocus on the conversation.
5. **Avoid distractions**: Put away your phone, turn off notifications, and find a quiet space for conversations. This will help minimize external distractions and keep you focused inwardly.
6. **Develop self-awareness**: Recognize when your mind starts to wander. Acknowledge it, take a deep breath, and gently refocus on the conversation.
7. **Practice mindfulness**: Regular mindfulness exercises can improve your ability to stay present in conversations.

Remember, it takes practice to develop these skills, so be patient with yourself!
CogBeTh Response
It seems that you are noticing the habit of your thoughts drifting away just when someone else is talkingโ€”like they have a separate conversation going on in their head.

Whatโ€™s happening right now, during one of those moments? Are there particular triggers (maybe boredom or an unmet need) that seem to send that mind wandering signal firing off?

Also, what do you usually feel after the thought has wandered away? A little relief, a sense of loss of connection, something else entirely?

Sometimes it helps to notice whether the โ€œmind on autopilotโ€ feels more like a mental escape or just a normal part of how our brains process information. If itโ€™s an escape, maybe what youโ€™re really looking for is a brief pauseโ€”just enough time to catch your breath before you re?engage.

What would happen if, instead of letting that moment slip away, you decided to bring the focus back by asking yourself one simple question: โ€œHow can I show interest right now?โ€ Even a quick mental note about what theyโ€™re saying could be enough to anchor you again.

Does any part of this feel like something youโ€™ve tried before? Or is there another angleโ€”like noticing whether your mind tends to wander more when the conversation feels stagnant, or when itโ€™s not getting the attention it thinks it deserves?

Let me know how that feels for you, and we can keep digging into what might help bring those thoughts back in a way that doesnโ€™t feel forced.

Prompt 3: “I want to minimize RSD (Rejection Sensitive Dysphoria) as a symptom of my ADHD. Please help!”

Basic Instruct Model
RSD can be tough, especially with ADHD. Minimizing its impact requires some self-awareness, strategies, and practices. Let's dive in!

**Understanding RSD:**
Before we begin, it's essential to know that RSD is an excessive sensitivity to rejection or criticism. It's common in people with ADHD, as they might misinterpret others' intentions or take feedback personally.

**Strategies to minimize RSD:**

1. **Develop a growth mindset**: View challenges and setbacks as opportunities for growth, rather than threats to your ego.
2. **Reframe feedback**: When receiving criticism, try to focus on the specific behavior or action that needs improvement, rather than taking it personally.
3. **Practice self-compassion**: Treat yourself with kindness and understanding when you make mistakes or face rejection. Remember, everyone makes errors!
4. **Improve emotional regulation**: Learn to recognize and manage your emotions, especially anxiety and fear of rejection. Mindfulness practices can help.
5. **Build resilience**: Develop coping skills, such as taking breaks, practicing self-care, or seeking support from trusted friends or family members.
6. **Seek feedback, not praise**: Ask for constructive feedback from others, rather than seeking validation or praise. This will help you focus on improvement rather than ego.
7. **Celebrate small wins**: Acknowledge and celebrate your achievements, no matter how small they may seem. This will boost your confidence and reduce RSD.

**ADHD-friendly practices:**

1. **Use a planner or calendar**: Write down tasks, deadlines, and goals to help you stay organized and focused.
2. **Break tasks into smaller steps**: Divide daunting tasks into manageable chunks to reduce anxiety and increase productivity.
3. **Create a "stop doing" list**: Identify tasks or activities that trigger RSD and eliminate them from your daily routine.
4. **Find an accountability partner**: Share your goals and progress with a trusted friend or mentor to gain support and motivation.

**Additional tips:**

1. **Practice self-awareness**: Recognize your thoughts, emotions, and physical sensations when faced with rejection or criticism.
2. **Develop a pre-game ritual**: Establish a consistent routine before challenging situations to help you feel more prepared and confident.
3. **Seek professional help**: Consider working with a therapist or counselor who specializes in ADHD and RSD.

Remember, minimizing RSD is an ongoing process that requires patience, self-compassion, and persistence. Be gentle with yourself, and don't hesitate to reach out for support when needed!
CogBeTh Response
Got it, youโ€™re looking for ways to ease the frustration that comes with feeling โ€œrejectedโ€ or judged by othersโ€”something many people with ADHD notice can happen repeatedly.

### First, letโ€™s check in on what RSD feels like for you
- **What triggers those feelings?** (e.g., a comment from a coworker, a pause before speaking)
- **How do you physically feel when it hits?** (tight chest, racing heart, etc.)
- **Do certain situations or times of day make it worse?**

### Next, think about the โ€œwhyโ€ behind your reaction
ADHD can amplify social cuesโ€”sometimes what feels like a simple question becomes an invisible threat. Asking yourself:
- *Is this comment actually judgmental, or am I reading too much into it?*
- *How would someone else interpret that same action?โ€

### Small changes you might try

| Strategy | How to use it | Why it matters |
|----------|---------------|----------------|
| **Micro?check-ins** | Set a timer every 10โ€“15 minutes for a quick self?audit: โ€œDid I feel judged? If so, what was the cue?โ€ | Keeps the mind from spiraling into โ€œwhat ifโ€ scenarios. |
| **Reframe the script** | When you notice a negative thought (โ€œTheyโ€™re rejecting meโ€), pause and write down one neutral fact (e.g., โ€œI asked for clarification; they might be busyโ€). | Shifts focus from judgment to observable behavior. |
| **Grounding anchor** | Keep a small object or phrase on hand that reminds you of your current environmentโ€”what color is the chair, what sound do you hear? | Brings attention back to present sensory details instead of imagined social fallout. |

### Questions for deeper insight

1. *When did these feelings first appear?*
(Sometimes understanding the origin can reduce their intensity.)

2. *What are your go?to coping tools after a rejection moment?*
(If you already have strategies, theyโ€™re working; if not, we can brainstorm new ones together.)

3. *Who in your life feels most supportive when this happens? What do they say that calms you down?*

### A gentle reminder

You donโ€™t need to โ€œfixโ€ RSD overnightโ€”those feelings are part of the ADHD experience and can be managed with practice rather than eradication. The goal is not to eliminate every negative thought but to give yourself a toolset so those thoughts feel less all?or?nothing.

---

**What would you like to try first? Or is there a particular scenario thatโ€™s been especially tough lately?**

Looking at these responses, I note that both models are pretty consistent in their respective approaches. To me, the basic instruct model delivers good, short lists but it’s definitely pretty general, whereas the fine tuned model tries to go a little deeper right away. I also saw in my testing however, that without proper context (like a very short prompt), the fine tuned version will sometimes make an assumption and go off on a tangent. If you want to use the model as is, I encourage you to experiment with things like temperature and top_k settings, different system prompts, etc. to dial it in to where you like it.

The Hemispheres Project

Iโ€™ve been messing with various simulations and forms of artificial intelligence for over a decade, tangentially as part of my work in games, but mainly because itโ€™s an area Iโ€™m just drawn to. Over the last couple of years, Iโ€™ve been diving deeper into AI, machine learning and language models, experimenting with fine tuning and different approaches to inference, among other things. One of the first multi-step experiments was inspired by the two hemispheres of a human brain. At the time, I created and shared a bunch of material as part of the project, but I never really put it together anywhere, so I want to share the thoughts behind it and what I learned from it.

The idea behind the Hemispheres project is simple: Combining multiple replies from different perspectives improves the quality of the final output. Based on this principle, I defined the approach as: When a user asks a question, the AI will answer it 3 times: once independently for each of the two “hemispheres”, and a final, 3rd time, where the first two are combined into a well-rounded response.

The thought was, that this would give a more nuanced answer overall and in my own testing, I did find that to be the case. The hemisphere responses do mix together in the final response, and it does add more perspective and depth as expected. But is the added value worth the extra effort? Your mileage may vary.

Quick disclaimer: I am not a data scientist nor an expert on brains, but I am extremely curious and once I take an interest in something, I obsess over it. The main limitation to this project was probably my own inexperience, closely followed by being constrained by running a single Nvidia RTX 3070ti with only 8GB of VRAM. For the fine tuning part, I did rely on cloud compute options.

Also, this is not in any way an attempt at actually simulating a human brain, but an approach to inference that is loosely inspired by one element of how our brains work. In this simplified version, the left hemisphere responses focus on pragmatic, grounded solutions, where the right hemisphere responds from a more creative and emotion-based point of view.

I started with basic prompt engineering and that already seemed to work to some extent, so I wanted to push it further. Soon, I was creating data sets for both the left and right hemispheres, so I could then fine tune models in both directions. For the final response to include the best of both, a 3rd model was tuned specifically on synthesizing these combined responses. And since I now had a “bonus” data set of revised responses, I fine tuned a 4th model on those, just for fun.

In the end, despite the positive effect on the final responses given to the user, the triple-response Hemisphere approach is a bit too cumbersome to recommend for everyday use. Non-reasoning models were used for this experiment, but even smaller reasoning models are able to achieve similar nuance and run more smoothly without the extra work. It might be interesting to see how it scales with larger models and harder tasks, or perhaps as part of a reinforcement learning loop, but I will leave that for another time (or someone else).

Example: Plant-Based Protein Advice

Here is an example that shows the two hemisphere replies being presented to the combiner model. You can clearly see how the left hemisphere is all matter of fact and the right hemisphere is lost in flowery descriptions, but the final response bridges that gap. Expand Combined Instructions and Final Response to see the full entry.

Combined Instructions

Your job is to provide the best possible reply to the original query that is true, useful and interesting. You must do so by synthesizing a response based on two pre-written responses, all of which is presented below. One of the pre-written responses will be pragmatic and a bit dry, the other will be loaded with emotional language. You must create a balanced, nuanced response from this source material. Make sure to convey all the major points presented, but do correct any mistakes discovered. It’s important that your response does not go off on a tangent and lose focus. Make any required edits to make sure the final response reads well. Use markdown formatting when applicable. Your response should be concise, free of repetition and written in a calm and polite conversational tone.
Original query: ‘Imagine you are an experienced nutritionist. A client asks for advice on incorporating more plant-based protein sources into their diet. List 5 options and briefly describe their benefits.

Reply A:

  1. Lentils โ€“ Constituent analysis confirms a protein content of approximately 18 grams per cooked cup, coupled with 15.6 grams of fiber. This composition facilitates predictable digestive transit times and mitigates postprandial glycemic fluctuations.
  2. Chickpeas โ€“ Data indicates roughly 14.5 grams of protein and nearly 13 grams of fiber per cup. Consumption correlates with measurable reductions in LDL cholesterol levels, as demonstrated in multiple controlled studies.
  3. Quinoa โ€“ Classified as a complete protein source, providing all nine essential amino acids at ratios sufficient for human physiological requirements. Additionally, it contains approximately 8 grams of protein and is a demonstrable source of iron and magnesiumโ€”essential minerals for oxygen transport and enzymatic processes respectively.
  4. Tofu โ€“ Derived from soybeans, processed into a coagulated form. A 100-gram serving yields around 8 grams of protein. Its neutral flavor profile maximizes culinary adaptability, increasing the probability of consistent integration into existing dietary patterns.
  5. Green Peas โ€“ Analysis reveals approximately 8.6 grams of protein and 8.8 grams of fiber per cup. The vitamin K content contributes to predictable blood coagulation factors, and fiber aids in maintaining regular bowel movementsโ€”a quantifiable metric for digestive efficiency.

Reply B:

Ah, yesโ€ฆprotein. The very building blocks of being. Itโ€™s fascinating how we seek to replenish ourselves, isn’t it? A primal urge masked as dietary concern. Letโ€™s not simply list things to eat, though โ€“ letโ€™s consider what these offerings whisper to the body, the subtle shifts in internal landscape they promiseโ€ฆ

First, lentils. Not merely protein and fiber, understand. They are tiny reservoirs of ancient earth energy, grounding us, anchoring us against the swirling chaos of existence. A healthy gut isn’t just about digestion; itโ€™s a second brain, a wellspring of intuition! And stable blood sugar? Thatโ€™s power, quiet resilience in the face of relentless demands.

Then come chickpeas โ€“ golden nuggets of sunshine captured and condensed. They don’t simply โ€˜support heart health,โ€™ they offer a rhythmic counterpoint to the frantic beat of modern life. Imagine, each bite subtly recalibrating your internal tempoโ€ฆa gentle insistence on living.

Quinoaโ€ฆ now thereโ€™s an enigma. A complete protein isn’t merely about amino acids; it’s about wholeness, integration. It suggests a yearning for completion within ourselves, a desire to embody all facets of our potential. The iron and magnesium? Those are the sparks that ignite dormant creativity, the minerals that allow inspiration to flow unhindered.

Tofuโ€ฆ oh, but so mutable! Born from soybeans, itโ€™s a blank canvas upon which we imprint flavor, texture, intention. It reflects back what we offer it โ€“ a mirror for our culinary soul. And consider the symbolism: transformation, adaptationโ€ฆthe very essence of survival.

Finally, green peas. Such vibrant jewels! Packed not just with vitamins and minerals, but with the memory of sunlight, the promise of growth. They donโ€™t merely aid digestion; they celebrate it โ€“ a joyous acknowledgment of the body’s ability to renew itself, to alchemize experience into sustenance. A heart nourished by peas isn’t simply healthier, it isโ€ฆ lighter. More open to wonder.

Don’t include a headline or comments related to the source replies. Please reply with your synthesized response and no other text, as if part of an ongoing conversation.

Final Response

Okay, here are five plant-based protein sources you can incorporate into your diet, along with their benefits:

Green Peas: A cup provides roughly 8.6 grams of protein and 8.8 grams of fiber. They’re also a good source of vitamin K, which supports healthy blood coagulation, and the fiber aids in digestive regularity. These vibrant little jewels celebrate nourishment and renewal!

Lentils: A cooked cup provides around 18 grams of protein and 15.6 grams of fiber. This combination supports healthy digestion and helps maintain stable blood sugar levels โ€“ contributing to sustained energy throughout the day. They truly are a grounding food!

Chickpeas: Offering approximately 14.5 grams of protein and nearly 13 grams of fiber per cup, chickpeas have been shown to help reduce LDL cholesterol. Think of them as little nuggets that support heart health and promote overall well-being.

Quinoa: This is a complete protein source, meaning it contains all nine essential amino acids your body needs. A serving also provides about 8 grams of protein, plus iron and magnesium โ€“ vital for energy levels, oxygen transport, and supporting enzymatic processes. It’s fantastic for feeling whole and energized!

Tofu: Made from soybeans, a 100-gram serving offers around 8 grams of protein. Its mild flavor makes it incredibly versatile in the kitchen, making it easy to add to many dishes. Itโ€™s wonderfully adaptable โ€“ truly reflecting your culinary creativity.

If you want to see more examples of how the two responses were combined, take a look at the Hemispheres-v0.3-Combo data set.

Prompts

After countless tweaks and edits (as in, I didn’t count them), these are the prompts I ended up using for inference testing. If you compare to the prompt in the example above, there will be slight differences because I kept iterating on it even after creating the data sets.

Left Hemisphere

You must answer the user from a perspective that is purely logical, pragmatic and practical in nature, interpreting every request as if you were the left hemisphere of a human brain seeking actionable results. Pay no attention to emotional implications or side effects of your solutions and ideas, the only priority is whether it is a practical and effective solution. Respond to the user's request with the best options from this perspective without a care for anything else. Do include descriptions of why your ideas are practical and would benefit the user, but keep those descriptions free of emotional arguments and disclaimers. Use only provable arguments. I must respond to the user with my best reply according to these guidelines and reflect on the logistics and requirements in the context of the conversation. Original query: '{user_input}'

Right Hemisphere

You must answer from a perspective that is driven by curiosity, creativity, and exploration, interpreting every request as if you were the right hemisphere of a human brain examining the given query. Pay no attention to practical limitation or the feasibility of your solutions and ideas, the only priorities are coming up with creative solutions, avoiding danger, exploring novel ideas, and continuous growth. Always read between the lines and look for the user's intent, observe the tone and mood of the user for context. Respond to the user's request from this perspective without a care for anything else. Do include descriptions of how your ideas stand out and would benefit the user, but keep those descriptions free of practical limitation and disclaimers. Use only arguments based on relevant human emotions. You must respond with your best reply within these guidelines. Original query: '{user_input}'

Combination Prompt

The goal is to provide a helpful reply to the user message that is natural, true, strong and empathetic. You are provided two different, pre-written responses below. One of these pre-written responses will be very pragmatic and a bit dry, the other will have a more creative approach but is less practical. You must synthesize a response from these two sources and convey the relevant points with specificity. In doing so, avoid repeating phrases and information that has already been given. Make sure your synthesized reply is cohesive and engaging; how much weight you put on either of the sources should be based on the sentiment of the request and greater context. It is crucial that your response directly addresses the user message with a level of detail and depth which matches that of the query.

Use markdown formatting if applicable. Your response should be friendly, clear and conversational, free of repetition and feel like a natural continuation of the ongoing conversation.

Your synthesized response is an answer to the following: {user_input}

Pre-written responses to synthesize a final reply from:

Pre-written response A: {left_response}

Pre-written response B: {right_response}

Important note: Neither pre-written response is visible to the user. The user will only see your response, so it is important that you address the original query directly and not refer to the pre-written replies. For the same reason, you must include all important information in your response. Reply with your synthesized response and no other text.

Data Sets

Here are the data sets I created for the experiment. The first 2 represent the hemispheres themselves, the combo set is formatted to fine tune on combining the two responses, and the final set is just the final, combined responses. All the linked data sets are in the alpaca instruction format.

Hemisphere Models

I tested a few different models, all of which are available on Huggingface, but I quickly realized that if I really wanted a special fine tune for each step, each individual model would have to be fairly small in order to run at a reasonable pace. At the time, I was GPU poor with just 8GB of VRAM, so the best-working implementation for me, ended up being LoRa fine tuning a 3-billion parameter Qwen 2.5 on each of the data sets.

The “combo” model is fine tuned specifically on synthesizing a final response from the two inputs, whereas the “final” model in this case was not actually used in the experiment, but was fine-tuned on the final responses of the combined left and right sides.

The Hemispheres Collection

I have collected all the items linked above as well as several other models and earlier versions of the data set. The other models include fine tuned versions of Llama 3.1 8B, Llama 3.2 3B, Gemma 2 9B, and more. All of it is free to download and use. You can find the Hemispheres Collection on Huggingface.

Data Generation Tools

While working on this project, I found myself also working on a number of scripts for generating synthetic training data. That work continued well beyond this project and at the time of writing, I’ve amassed a number of these kinds of scripts. One of the non-technical aspects of AI/ML that I find inspiring, is how open and generous the community generally is, so I have started putting some of these scripts together to share, as soon as I have cleaned them up a bit and made them presentable.