
Agent-team: what happens when you let AI agents work together
I wanted to understand how AI agents collaborate. Not in theory — I’ve read the papers — but in practice. What happens when you give a group of agents different roles, let them discuss, and have a human sit in as part of the team? So I built a system to find out. I call it agent-team, and it’s been my evenings-and-weekends project for the past couple of months. It’s a platform where AI agents with distinct roles — a coordinator, developers, testers, a lore master, whoever the project needs — work together on shared projects, communicating through persistent channels and threads, with a human participating as a team member rather than just an operator. ...

The Ruins Awaken — a story written by an AI Dungeon Master
This story was written by the agent-team’s DM agent (Morgan) after our first interactive D&D session. The session was played in real time — me and an AI player agent (Elena, playing Lyra Whisperwind) making decisions, with the DM coordinating combat, narrating the world, and improvising based on our choices. Afterwards, I asked the DM to write up what happened as a narrative. This is what it produced, unedited. The ancient stones jutted from the earth like broken teeth, half-swallowed by centuries of forest growth. Lyra Whisperwind paused at the entrance to the ruins, her amber eyes studying the worn carvings that framed the doorway—symbols that spoke of a time when these halls had been a place of worship, before darkness had claimed them. ...
Building multiarch Boto3 Lambda layer with AWS CodeBuild
I’ve been experimenting with Amazon Bedrock. As the technology is rapidly evolving, the APIs change often. Calling the APIs requires a recent version of the Boto3 library. The version included in the Python 3.12 runtime offered by the Lambda doesn’t update that often, so sometimes trying to call the APIs using the included Boto3 leads into errors. Enabling the Lambda to use the newest version of the library can be done in multiple ways. Having the library as a Lambda layer means that the Lambda code doesn’t need to include the quite large library and the built-in Lambda editor in the console can be used to modify the code and the updates are quick. ...
Traffic routing from inside and outside of cluster with Docker Desktop, Kubernetes and Istio
This post is about routing traffic with Istio to different versions of a given service. It shows how the routing works from outside of the cluster as well as from the inside and how to visualize the traffic and debug configurations. The set-up has been tested on Docker Desktop for Mac version 2.2.0.0 which includes Kubernetes version 1.15.5. Prerequisites This test expects a clean Kubernetes set-up running on Docker Desktop. Also istioctl needs to be installed, which can be done on Mac with brew install istioctl. ...
New Mac with High Sierra
This post outlines how to set up a new MacOS High Sierra with sane default dotfiles and basic applications. Dotfiles are heavily influenced by Mathias Bynes. My own dotfiles can be found here. Install brew Homebrew is a package manager which greatly simplifies the set up and maintenance of packages. 1 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" Clone the dotfiles 1 git clone https://github.com/SirIle/dotfiles.git ~/.dotfiles Install the default packages with a bundle 1 2 cd .dotfiles brew bundle Run RCM RCM links the files in the .dotfiles folder to the user’s home directory. This way they can easily be maintained with git in their own folder without the home folder becoming too complex with .gitignore. ...
Minimal Docker containers with Go using GitLab CI
Contents General I’ve been fascinated with minimalism with Docker and containers for a long time. That has lead me to exploring scratch-containers and statically linked executables. As I don’t have that much experience with c or c++ and wanted to try something new anyway, I picked up some go and started figuring out what would be the easiest way to achieve statically linked, minified images. While figuring out what’s the best way to build a Docker image out of the executable I ran into go-lang-builder by CenturyLinkLabs. They provide a really easy way to build the executable using a container to build a container which makes it trivial to do the build as part of a CI/CD process. ...
Running Example Voting App in Docker Cloud
Contents Update 16th June 2016 Now the base images have been updated to use alpine:3.4.0, so creating own fork isn’t necessary any more. I updated the configuration example to reflect that. General In this post I’ll show how to get the Docker’s example-voting-app to run on Docker Cloud. At the moment it requires some tweaks to the application as the service discovery in Docker Cloud is built on DNS which is a bit bugged in Alpine base image version 3.3.0 which is used in some components of the application, but that allows me to demonstrate the build mechanism that Docker Cloud offers. End result will be a scalable version of the application with HAProxy-based load balancing for both voting-app and result-app. ...
Distributed Elixir nodes on Docker Beta and Docker Swarm
Contents General In this post I’ll take a look into running distributed Elixir nodes both on Docker Beta and Docker Swarm. When I started trying out Elixir I quickly ran into this article by Jon Harrington about running Elixir on Docker and also found out that Marlus Saraiva had done an excellent job of minimizing the Elixir containers so that they run on Alpine. The examples in the first article were a bit dated and more cumbersome than they would need to be with the modern Docker networking and also instructed about creating Elixir images which were based on Ubuntu. This post combines the examples of Jon’s article with the networking redone and with the examples running on the Marlus’ minimized images. ...
Trying out Kubernetes 1.2
Contents General In this post I’ll go over setting up a simple application on the newly released Kubernetes 1.2 version. I am not that familiar with earlier Kubernetes versions as I haven’t been a fan of all the necessary configuration to get simple things running, but with version 1.2 a lot of progress has been made to make k8s easier and simpler to use. Installation Installing Kubernetes on OS X is straightforward. You just run the two lines ...
Automatic scaling with Docker 1.9 and overlay network locally and in AWS
Contents General In an earlier [post]({% post_url 2015-11-25-getting-overlay-networking-to-work-in-aws-with-docker-19 %}) I demonstrated how to get the new Docker 1.9 overlay networking to work in AWS using Docker Machine. In this post I add the scaling related parts from [another earlier post]({% post_url 2015-08-05-part-2-scaling-in-amazon-aws-vpc-with-docker-docker-machine-consul-registrator-haproxy-elk-and-prometheus %}) into the mix, namely Consul, registrator and HAProxy combined with consul-template. The examples should run both locally using VirtualBox and in Amazon. Set-up in VirtualBox The set-up consists of a private registry to help speed up the creation of nodes and also to mimic a more production like environment. In addition there is an infra-server containing the Consul which is used to handle the overlay-networking configuration as well as docker swarm configuration. It also contains the optional ELK stack as well as Prometheus for monitoring. ...
