---
type: "article"
title: "Designing for Autonomy"
summary: "While I work to complete my new book “AI-Driven API Design”, I’m keeping my posts here sparse (see below) and light (see my “Approved by Management” comic series). I’ll return to my story-telling posts later this year once the book is off my plate. -- mamund\n\nFor some time I’ve been working on creating self-driven, autonomous systems. I started GRAIL to understand what it takes to build software that can pursue goals without relying on a human to continually decide what happens next.\nSubscribe now\nAs a result, I have settled on a couple useful axioms. They are very compact but I find them helpful.\n\n\n\n\n\n\n\n\n\n\n\nDesigning Autonomous Systems\nDesigning autonomous systems means making enough of an environment explicit for programs to situate themselves within it, use a goal to determine what is relevant, decide what to do next, recognize success, and determine when progress is no longer possible.\nProgramming for Autonomy\nProgramming for autonomy means turning assumptions about an environment into explicit facts, relations, and capabilities so that programs can pursue goals within it without human intervention.\nWhat Does This Change?\nThis has helped me move from asking, “What does the program need to do next?” to asking, “What does the program need in order to decide what it will do next?”\nThat shift has helped me focus on ways to implement autonomous solutions that work.\nSubscribe now"
newsletter: "Signals from Our Futures Past"
newsletter_handle: "mamund"
newsletter_url: "https://usecommune.com/n/mamund"
author: "Mike Amundsen (@mamund)"
published: "2026-10-20T12:31:11.000Z"
canonical_url: "https://usecommune.com/n/mamund/a/designing-for-autonomy"
markdown_url: "https://usecommune.com/n/mamund/a/designing-for-autonomy.md"
chat_url: "https://usecommune.com/n/mamund/a/designing-for-autonomy/chat"
source_url: "https://mamund.substack.com/p/designing-for-autonomy"
body_source: "imported"
likes: 0
replies: 0
body_words: 232
---

# Designing for Autonomy

*While I work to complete my new book “AI-Driven API Design”, I’m keeping my posts here sparse (see below) and light (see my “Approved by Management” comic series). I’ll return to my story-telling posts later this year once the book is off my plate. -- **mamund***

For some time I’ve been working on creating self-driven, autonomous systems. I started GRAIL to understand what it takes to build software that can pursue goals without relying on a human to continually decide what happens next.

[Subscribe now](https://mamund.substack.com/subscribe?)

As a result, I have settled on a couple useful axioms. They are very compact but I find them helpful.

[![](https://substackcdn.com/image/fetch/$s_!zhG1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32fef422-121b-46a0-80ff-da90d4c53327_5080x2084.png)](https://substackcdn.com/image/fetch/$s_!zhG1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32fef422-121b-46a0-80ff-da90d4c53327_5080x2084.png)

## Designing Autonomous Systems

Designing autonomous systems means making enough of an environment explicit for programs to situate themselves within it, use a goal to determine what is relevant, decide what to do next, recognize success, and determine when progress is no longer possible.

## Programming for Autonomy

Programming for autonomy means turning assumptions about an environment into explicit facts, relations, and capabilities so that programs can pursue goals within it without human intervention.

## What Does This Change?

This has helped me move from asking, *“What does the program need to do next?”* to asking, *“What does the program need in order to decide what it will do next?”*

That shift has helped me focus on ways to implement autonomous solutions that work.

[Subscribe now](https://mamund.substack.com/subscribe?)

***

## Discussion

No replies yet.
