My AI Setup

My AI Setup

An overview of my personal AI tooling, agent configurations, and development workflow.

May 17, 20262 min read
AI

Most of the writings here are focused on the patterns behind building AI powered software. However, so much has changed this past year with tooling that it feels like time to capture my current AI setup. That is, the tools, programs, processes that I wrap around myself for getting things done on and off the job.

I mentally organize this as a layered control plane. Layer 0 being the "scratch pad" for ephemeral AI tasks or to use as a sounding board. Layer 1 is my AI Assistant layer, where I may be delegating tasks to agents to handle. These tasks are generally non-critical and won't require too much of my guidance to complete. Finally, Layer 3 is my heads-down focused coding layer where I'm very closely supervising and steering the AI agents.

I mentally frame and sort the different layers based on two criteria:

  1. Ephemerality - Do I need persistance, memory, multi-turn feedback for the tasks?
  2. Guidance - How much human attention does the interface require in order to complete an objective?

Let's now dive into each layer.

Layer 0 - The Scratch Pad

The scratch pad layer is for interfaces that are ephemeral by nature and require minimal guidance. This could be a basic scratch bad chatbot (think ChatGPT web) or a search engine. Historically, I would rely on Perplexity and ChatGPT or Claude standalone apps for this. But, recently I have opted to self-host some wonderful alternatives.

OpenWeb UI

OpenWebUI is an incredibly powerful AI Chat platform. It supports many different LLM providers and integrates beautifully with other services like Brave Web Search or Docling which I also self-host. This layer is used as a scratch bad to answer quick questions, perform basic search, act as a sounding board, review writings, etc. This service is probably the most familiar to the majority of readers.

Docling AI

I mentioned the OpenWebUI docling integration, but Docling absolutely deserves it's own blurb. Docling doesn't necessarily belong to any specific layer, it can be used in all three as it's fundamentally a complimentary service to other AI processes. Docling does a phenomenal job converting unstructured content like webpages and PDF's into LLM-friendly markdown. It performs remarkably well with OCR, ICR, and detecting tables/images in a wide variety of documents.

Perplexica

Perplexica is essentially a perplexity clone. It's an AI search engine, capable of retrieving information from multiple sources. Currently, the open-source version only tracks the user's query history in cookies. There is no server-side persistance. My locally hosted Perplexica instance basically replaces Google/DuckDuckGo/Perplexity. Most of the time I drive search with Kimi K2.5 turbo on fireworks.ai.

GPT Researcher

GPT Researcher has been around for some time. It's better for more detailed research and information aggregation. Where perplixica might be useful for "when is space x expected to IPO?" GPT Researcher would be better for performing in-depth research that generates an essay with sources--Instead of a paragraph with a simple answer. I often use GPT Researcher to generate research that I hand off to additional AI Agents and workflow processes.

GPT Researcher also supports API Calls and MCP. So, like Docling, it can act as a compliment to multiple other AI Workflows and agents. I have equipped my R&D agent with tooling that wraps the GPT Researcher API so that it can spawn long-running research tasks once it has honed in on a particular topic meriting a deeper dive.

Layer 1 - AI Assistants

This layer is probably the most fun and novel given the recent OpenClaw revolution. Personally, I opted not to use OpenClaw due to how popular it was and just how many bad actors were targeting OpenClaw agents/skill libraries/etc. Instead, I studied the architecture and developed my own multi-agent harness called OpenPaw. Creating your own harness is a double-edged sword. But, I have found it to be incredibly helpful. Core level customizations are easy, and it has been a very educational experience.

My AI Assistants run on two platforms. My own, OpenPaw, and Hermes by Nous Research. I have opted to mirror practices from developing multi-agent workflows in enterprise environments in my home setup by creating domain/task specific agents. The primary reasons are twofold.

  1. It's easier for my human mind to grasp. - We've spent a lifetime building habits around domain experts--Dentists, Doctors, Chefs, etc. A monolithic agent that handles everything comes with some serious cognitive load.

  2. Avoiding context rot. - A monolithic agent will require a non-specialized and high-breadth toolkit. This will inevitably lead to tripping up the transformer, context rot, and a confused agent that doesn't know when to use which tool.

Let's dive into each of my current assistants, their scope, and how I use them day-to-day.

Executive Assistant / Joan

This agent runs in my OpenPaw harness. Both my wife and I use Joan as a family assistant. Joan is tapped into all of our calendars, RSS feeds/web browser to track down local events, etc. Joan helps plan, keep us on schedule, and runs several weekly crons with different digests looking at the week ahead or the week in review. I also use Joan as a CRM, dropping random notes to have Joan organize and save for later (names, events, etc.) We have a 2.5 year old daughter, and Joan also generates weekly reports finding activities for the family to do around our valley.

Research & Development / Krieger

Krieger is modeled after the mad-scientist from the series Archer is probably my favorite agent. I only recently started experimenting giving them personalities, and this one is hilarious. Beyond personality, Krieger is enormously powerful in my workflow. It is attached to my hosted Docling & GPT Researcher instances, multiple search engines (Tavily & Brave), and has it's own subagent team.

I use Krieger for deep research, and for sketching out software projects. Several months ago, I had the idea for the Truthfulness-Evaluator library while I was shopping with my family. I was able to fire commands to research and plan the project, then had Krieger create and test an MVP implementation while I was out on the town. The POC worked, and I transitioned to my Layer 2 stack to perfect it and publish on GitHub.

Having an R&D agent on your agent team as a software engineer is enormously powerful. We always have ideas bubbling up, and this is a great place to offload them and explore viability without dedicating brain cycles.

Homelab DevOps / Gilfoyle

I modeled Gilfoyle after the Silicon Valley character of the same name. I have a fairly extensive homelab environment. Multiple container servers, NAS devices, a managed UniFi network, etc. Gilfoyle is tapped into all of it. Ansible configs, Grafana alerts, Uptime Kuma alerts, and beyond.

Gilfoyle is my first line of defense with managing my homelab. Performing triage, security scans, cleanup, onboarding new applications, and documenting everything.

Software Engineering & Maintenance / Devin

The Devin agent overlaps with Krieger and Gilfoyle slightly; However, devin is focused and equipped with tooling specific to software development and maintenance. Where Gilfoyle is monitoring my homelab health, Devin is monitoring my private and public GitHub repositories. Checking for PR's, performing backlog grooming against GitHub Issues, and writing/deploying minor features & bugfixes.

For very focused software development, I ditch the AI Assistant layer entirely and use specific coding harnesses/coding agent teams described in Layer 2.

Health & Medical / Wilson

My wife and I use this agent for tracking our health/medical. We dump relevant documents into the workspace and track progress/fitness stats over time. Wilson has also been helpful for troubleshooting situations that pop up with our daughter. Wilson is probably the least powerful AI Assistant, but still fills a helpful role. Tracking diet, tracking supplements/medication, acting as a health sounding board, etc.

Layer 2 - Focused Work

When tasks aren't ephemeral and require serious human oversight, like starting a new software project, Layer 2 is engaged. I'm mid-transition from Claude Code to OpenCode for my coding agent harnesses. This layer deserves it's own dedicated blog entry, so I'll be brief here.

My Claude Code and OpenCode harnesses both have a diverse team that cover most aspects of my software projects. Below is a simple illustration showing the higher order view:

The agents within my coding harness are split by domain & function, similar to my AI Assistants above. One question I frequently get is "Why a Junior Engineer?" this is to preserve context for implementing agents. I don't want my primary workers getting context polluted with bugfixes/writing tests/etc.

I also heavily rely on my designer agent for UI work on side projects. I do not have a visually creative bone in my body, the closer to the frontend the more I'm generally "vibe coding." The backend is my domain.

Conclusion

This concludes our journey through my current AI setup. Hopefully the layered framing helps you in your journey. It was only in the last few months that the full picture came into focus for myself. I'm certain that the tools, frameworks, agent's, and layers will change as we continue our journey towards the singularity.

Best wishes from Boise 👋

Share this article

Found this helpful? Share it with your network.

Continue Reading

Move through the archive

Back to all posts

Related Posts