Today I wanna talk about this thing, Aphelios Duo, man, it’s been a ride.
So, I started messing around with this idea a while back. The whole concept was to have two, like, entities working together. I don’t know what to call them, agents? Yeah, let’s go with agents. Two agents that could kinda do their own thing but also team up when needed. Sounds cool, right?

First, I tried to get these two agents to, you know, just exist. Basic stuff. I whipped up some code, nothing fancy, just to see if I could get them to, like, move around independently. It was a mess, honestly. They kept bumping into each other, getting stuck, it was like watching a couple of drunk robots try to dance.
But, I kept at it. I spent hours, days even, just tweaking things, trying different approaches. Slowly but surely, these agents started to behave. They could move around, avoid each other, it was a start.
Making Them Work Together
The next big hurdle was getting them to actually cooperate. This was the real challenge. I wanted one agent to be able to, say, pick up an object, and the other one to take it and put it somewhere else. Teamwork, you know?
I tried a bunch of different methods. At one point, I had this crazy system where they were sending each other messages, like, “Hey, I got this thing, come grab it!” But it was way too complicated, and they kept dropping things or just ignoring each other. It was a disaster.
Then, I had this “aha!” moment. What if, instead of all this complicated messaging, they could just, like, sense each other’s intentions? I started playing around with this idea, and it actually started to work. I gave each agent a simple set of rules, like, “If you see the other agent carrying something, and you’re near a drop-off point, go help.”
- Agent 1 can find objects.
- Agent 2 can find a goal.
- Agent 1 can approach an object and carry it.
- Agent 2 can approach a goal and request for the object.
- Agent 1 can approach agent 2 when it carries an object.
- Agent 2 can receive an object from agent 1.
- Agent 2 can approach the goal when it has the object.
- Agent 2 can drop off the object at the goal.
It was like magic. Suddenly, these two little agents were working together, picking things up, dropping them off, it was beautiful. It felt like a real breakthrough.
Of course, it wasn’t perfect. There were still plenty of bugs, times when they’d get confused or do something completely unexpected. But, I kept refining the rules, adding more detail, and slowly, they got better and better. In the end, I managed to have a primary version of this Aphelios Duo.
Now, I have these two agents that can actually work together, pretty seamlessly, I might add. It’s still a work in progress, but I’m really happy with how far it’s come. It’s a testament to what you can achieve with a bit of persistence, a lot of trial and error, and maybe a few “aha!” moments along the way.
So, yeah, that’s my Aphelios Duo story. Hope you found it interesting, or at least mildly entertaining. It’s not every day you get to build something like this, and I’m excited to see where it goes next. Maybe I will add three of them next time!