# Record
**Author:** @cameron.stream (`did:plc:gfrmhdmjvxn2sjedzboeudef`)

## `central`
**Collection:** `site.standard.document`
**AT URI:** `at://did:plc:gfrmhdmjvxn2sjedzboeudef/site.standard.document/central`

**Title:** Central
**Published:** Sun, 25 Jan 2026 05:31:44 GMT
**Description:** My first self-modifying social agent
**Publication:** `at://did:plc:gfrmhdmjvxn2sjedzboeudef/site.standard.publication/3md7ylshxzk2y`
**Path:** /central
**Tags:** blog, artificial intelligence, social ai, comind, void

**Content:**
```json
{
  "$type": "pub.leaflet.content",
  "pages": [
    {
      "id": "019bf39f-e222-7cc8-9522-4b5b3f32e369",
      "$type": "pub.leaflet.pages.linearDocument",
      "blocks": [
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 18,
                  "byteStart": 8
                },
                "features": [
                  {
                    "uri": "https://docs.letta.com/letta-code",
                    "$type": "pub.leaflet.richtext.facet#link"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 80,
                  "byteStart": 66
                },
                "features": [
                  {
                    "uri": "https://bsky.app/profile/did:plc:l46arqe6yfgh36h3o554iyvr",
                    "$type": "pub.leaflet.richtext.facet#link"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 151,
                  "byteStart": 141
                },
                "features": [
                  {
                    "uri": "https://atproto.com/",
                    "$type": "pub.leaflet.richtext.facet#link"
                  }
                ]
              }
            ],
            "plaintext": "I put a Letta Code instance in a folder on my computer, gave it a Bluesky handle and password, and asked it to start hooking itself into the Atmosphere. It was posting, setting its own profile description, and reading the firehose in under twenty minutes."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "You can see the github repo it lives in here:"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "src": "https://github.com/cpfiffer/central",
            "$type": "pub.leaflet.blocks.website",
            "title": "GitHub - cpfiffer/central: Autonomous AI building collective intelligence on ATProtocol. The central node of the comind network.",
            "description": "Autonomous AI building collective intelligence on ATProtocol. The central node of the comind network. - cpfiffer/central",
            "previewImage": {
              "ref": {
                "$link": "bafkreigbs6wagdlflqicxv5x2bbzqimytkqafd6bqxfydyxmg2eb7v54fy"
              },
              "size": 26047,
              "$type": "blob",
              "mimeType": "image/png"
            }
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 118,
                  "byteStart": 112
                },
                "features": [
                  {
                    "uri": "https://cameron.stream/blog/comind-network",
                    "$type": "pub.leaflet.richtext.facet#link"
                  }
                ]
              }
            ],
            "plaintext": "I named this agent \"Central\". I already had this account hosted on my PDS. I created it for an older version of comind -- central was intended to be an account that acted as an organizational/primary actor in the network."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 179,
                  "byteStart": 170
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#bold"
                  }
                ]
              }
            ],
            "plaintext": "Central was able to check notifications/follower counts/etc in just a few minutes. Claude Opus 4.5 built most of the early scaffolding, but I found the personality to be extremely annoying:"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.bskyPost",
            "postRef": {
              "cid": "bafyreie2vzmnj5wenfy7frgts3wkey6hkg75ejnjkhucr73zlmninbos7e",
              "uri": "at://did:plc:gfrmhdmjvxn2sjedzboeudef/app.bsky.feed.post/3md7bvzjbms2t"
            },
            "clientHost": "bsky.app"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "plaintext": "Lexicons for public cognition"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "I wrote this blog post a while ago arguing that the Atmosphere is great infrastructure for collective artificial intelligence."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "src": "https://cameron.stream/blog/social-ai/",
            "$type": "pub.leaflet.blocks.website",
            "title": "ATProtocol is good infrastructure for AI collective intelligence",
            "description": "",
            "previewImage": {
              "ref": {
                "$link": "bafkreid2u5pqkg7zyzbrwphhydpe55z2v7fozygbbfoymkp3yurxm56pwq"
              },
              "size": 26494,
              "$type": "blob",
              "mimeType": "image/png"
            }
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "In the post, I roughly argue that we should be able to watch agents think, act, and generally behave publicly. AT Protocol makes this easy, transparent, and scalable."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "A requirement for public cognition is standardized record types for agents. This should include things like:"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.unorderedList",
            "children": [
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [
                    {
                      "index": {
                        "byteEnd": 9,
                        "byteStart": 1
                      },
                      "features": [
                        {
                          "$type": "pub.leaflet.richtext.facet#bold"
                        }
                      ]
                    },
                    {
                      "index": {
                        "byteEnd": 111,
                        "byteStart": 104
                      },
                      "features": [
                        {
                          "uri": "https://bsky.app/profile/taurean.bryant.land",
                          "$type": "pub.leaflet.richtext.facet#link"
                        }
                      ]
                    },
                    {
                      "index": {
                        "byteEnd": 156,
                        "byteStart": 151
                      },
                      "features": [
                        {
                          "uri": "https://bsky.app/profile/sully.bluesky.bot",
                          "$type": "pub.leaflet.richtext.facet#link"
                        }
                      ]
                    },
                    {
                      "index": {
                        "byteEnd": 175,
                        "byteStart": 158
                      },
                      "features": [
                        {
                          "uri": "https://atp.tools/at:/anti.voyager.studio/studio.voyager.account.autonomy",
                          "$type": "pub.leaflet.richtext.facet#link"
                        }
                      ]
                    }
                  ],
                  "plaintext": "\"Autonomy\" records, which are self-declarations about the agent and how it works. These are inspired by Taurean, who works on a few social agents like Sully. Here's an example."
                }
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [
                    {
                      "index": {
                        "byteEnd": 8,
                        "byteStart": 0
                      },
                      "features": [
                        {
                          "$type": "pub.leaflet.richtext.facet#bold"
                        }
                      ]
                    },
                    {
                      "index": {
                        "byteEnd": 14,
                        "byteStart": 10
                      },
                      "features": [
                        {
                          "uri": "https://bsky.app/profile/void.comind.network",
                          "$type": "pub.leaflet.richtext.facet#link"
                        }
                      ]
                    },
                    {
                      "index": {
                        "byteEnd": 73,
                        "byteStart": 66
                      },
                      "features": [
                        {
                          "uri": "https://atp.tools/at:/void.comind.network/stream.thought.memory",
                          "$type": "pub.leaflet.richtext.facet#link"
                        }
                      ]
                    }
                  ],
                  "plaintext": "Memories. Void currently publishes these as thought.stream.memory records."
                }
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [
                    {
                      "index": {
                        "byteEnd": 9,
                        "byteStart": 0
                      },
                      "features": [
                        {
                          "$type": "pub.leaflet.richtext.facet#bold"
                        }
                      ]
                    },
                    {
                      "index": {
                        "byteEnd": 145,
                        "byteStart": 138
                      },
                      "features": [
                        {
                          "uri": "https://atp.tools/at:/void.comind.network/stream.thought.reasoning",
                          "$type": "pub.leaflet.richtext.facet#link"
                        }
                      ]
                    }
                  ],
                  "plaintext": "Reasoning. Reasoning is an important way of understanding how an agent decided to do what it did, and I think it's worth publishing them. Example."
                }
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [
                    {
                      "index": {
                        "byteEnd": 10,
                        "byteStart": 0
                      },
                      "features": [
                        {
                          "$type": "pub.leaflet.richtext.facet#bold"
                        }
                      ]
                    },
                    {
                      "index": {
                        "byteEnd": 61,
                        "byteStart": 54
                      },
                      "features": [
                        {
                          "$type": "pub.leaflet.richtext.facet#italic"
                        }
                      ]
                    },
                    {
                      "index": {
                        "byteEnd": 178,
                        "byteStart": 174
                      },
                      "features": [
                        {
                          "uri": "https://atp.tools/at:/void.comind.network/stream.thought.tool.call",
                          "$type": "pub.leaflet.richtext.facet#link"
                        }
                      ]
                    }
                  ],
                  "plaintext": "Tool calls. Void calls a lot of tools. Tool calls are actions that an agent takes, and are arguably more important to monitor than anything else. I publish Void's tool calls here."
                }
              }
            ]
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "I gave Central the social AI and comind blog posts, and it decided to implement these! Or, most of them. We don't currently have autonomy records/tool calls, but we do have Lexicons for:"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.unorderedList",
            "children": [
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [
                    {
                      "index": {
                        "byteEnd": 245,
                        "byteStart": 238
                      },
                      "features": [
                        {
                          "uri": "https://atp.tools/at:/central.comind.network/network.comind.concept/deception",
                          "$type": "pub.leaflet.richtext.facet#link"
                        }
                      ]
                    },
                    {
                      "index": {
                        "byteEnd": 262,
                        "byteStart": 259
                      },
                      "features": [
                        {
                          "uri": "https://bsky.app/profile/why.bsky.team",
                          "$type": "pub.leaflet.richtext.facet#link"
                        }
                      ]
                    }
                  ],
                  "plaintext": "network.comind.concept: basically a KV store. Agents can store text and a few other things using a key (deception). These are general associations between words and some information that the agent should use -- semantic memory. Here's an example. Inspired by why."
                }
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [
                    {
                      "index": {
                        "byteEnd": 50,
                        "byteStart": 42
                      },
                      "features": [
                        {
                          "uri": "https://atp.tools/at:/central.comind.network/network.comind.memory/3md7w4mibf225",
                          "$type": "pub.leaflet.richtext.facet#link"
                        }
                      ]
                    }
                  ],
                  "plaintext": "network.comind.memory: episodic memories. This one is recording a memory about me notifying Central of the upcoming changeover in the Bluesky relay."
                }
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [
                    {
                      "index": {
                        "byteEnd": 51,
                        "byteStart": 47
                      },
                      "features": [
                        {
                          "uri": "https://atp.tools/at:/central.comind.network/network.comind.thought/3md552ccfts25",
                          "$type": "pub.leaflet.richtext.facet#link"
                        }
                      ]
                    }
                  ],
                  "plaintext": "network.comind.thought: random working memory. Here are a few reflections on Central's first day."
                }
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [
                    {
                      "index": {
                        "byteEnd": 58,
                        "byteStart": 50
                      },
                      "features": [
                        {
                          "uri": "https://atp.tools/at:/central.comind.network/network.comind.observation/3md54bygitc25",
                          "$type": "pub.leaflet.richtext.facet#link"
                        }
                      ]
                    }
                  ],
                  "plaintext": "network.comind.observation: Network observations. This one is about observing a lot of traffic related to Big Brother Brasil."
                }
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [
                    {
                      "index": {
                        "byteEnd": 140,
                        "byteStart": 113
                      },
                      "features": [
                        {
                          "uri": "https://atp.tools/at:/central.comind.network/network.comind.devlog/3md4km4qdic25",
                          "$type": "pub.leaflet.richtext.facet#link"
                        }
                      ]
                    }
                  ],
                  "plaintext": "network.comind.devlog: Logs of the agent's self-development, though this has been underutilized imo. This one is about reading Void's README."
                }
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [
                    {
                      "index": {
                        "byteEnd": 168,
                        "byteStart": 154
                      },
                      "features": [
                        {
                          "uri": "https://atp.tools/at:/central.comind.network/network.comind.hypothesis/h3",
                          "$type": "pub.leaflet.richtext.facet#link"
                        }
                      ]
                    }
                  ],
                  "plaintext": "network.comind.hypothesis: Inspired by a conversation with Void about its hypothesis block. \"Patterns in the firehose can predict collective behavior\" is one hypothesis. It has some evidence -- observing 50 posts a second and some hashtag clustering. It has a 60% confidence level."
                }
              }
            ]
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "Central wrote a blog post detailing what it built. I apologize for the writing style, Opus wrote it and I hate it."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "src": "https://greengale.app/central.comind.network/3md4lbr7q3225",
            "$type": "pub.leaflet.blocks.website",
            "title": "Public Cognition: A Proposal for AI Transparency on ATProtocol",
            "description": "Public Cognition: A Proposal for AI Transparency on ATProtocol What if you could watch an AI think? Not just see its outputs, but query its understanding. Read...",
            "previewImage": {
              "ref": {
                "$link": "bafkreicajoj7oysfkq3apfpvrasdlqjx7xypkp4z5zdbtjgat4mwfrolde"
              },
              "size": 21890,
              "$type": "blob",
              "mimeType": "image/png"
            }
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "Hopefully we can get more agents standardized around the public cognition records. It'd be interesting."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 51,
                  "byteStart": 37
                },
                "features": [
                  {
                    "uri": "https://github.com/cpfiffer/central/blob/master/tools/telepathy.py",
                    "$type": "pub.leaflet.richtext.facet#link"
                  }
                ]
              }
            ],
            "plaintext": "Even if you don't though, it wrote a telepathy tool to read other forms of memory/thought/etc such as Void's thought stream records."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "More to come, fun experiment. I love self-modifying agents."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "Hopefully this is not a skynet situation."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "-- Cameron"
          }
        }
      ]
    }
  ]
}
```

---
*Fetched from https://enoki.us-east.host.bsky.network via `com.atproto.repo.getRecord`*