Cyberse an AI assisted development architecture

I intro of CYBERSE framework to work with ai agents for assisted code generation, and ai assisted software development.

Cyberse an AI assisted development architecture
Photo by Markus Winkler / Unsplash

In the new era of development AI is writing more code than humans do, faster, and more complex, but the architecture patterns, and tools that we were using so far are designed with humans in mind.

In this new era of software development the architecture and tools should evolve for AI usage, if we were talking before about DX (developer experience) now we should start talking about AiX (artificial intelligence experience) and we should care about how improve the experience for LLM's to work with repositories, code, processes, etc.

In this document I would like to present the first version of CYBERSE, cyberse is a framework for working with AI as assisted development agents that can interact, answer, propose, and work with code, and we should start thinking about agents as embodied entities that have a purpose and can answer to goals.

The old paradigm

Code as a plain resource, than should be optimized to be maintained for humans, in this old paradigm the code is written in files, organized in folders and stored in repositories, in the old paradigm we found key concepts to have healthy code, with main goals: make the code maintainable, readable, extensible, structured, modularization, etc.

In the old paradigm the top level layer is the repository where the code live and is structured, repositories are a key concept because not only store the code but as well is the main touch point for developers, developers live inside this virtual space, and spend most of their time there, so in the old paradigm is important optimize the repositories around DX, and the maximum expression about this are Mono-repositories, a unique repository that contains multiple software artifacts: micro-services, packages, libraries, components, etc, all in one site because in this way a developer don't need to jump into X repositories to work in a complex system, so a maintainer could explore, modify and deliver fast solutions in the same place.

normally mono-repositories have everything a developer needs to work:

- code
- documentation
- automation as scripts
- workflows as CI-CD pipelines

The problem in the new AI era

in the new AI era, we face a problem, how AI fits the old paradigm?

- LLM's tools aren't humans that can work, learn, as them.
- LLM's need a context, guardrails, goals, instructions.

nowadays is not clear how LLM's should work in repositories, the common way is run an LLM as an AI command line tool in local machine, where the AI tool start reading files, documents, and have an idea where he is, and what is the general purpose of the code, also the AI could find specialized instructions for them as:

- gemini.md
- claude.md

specific document write for AI context.

The issue in the old paradigm

the process around AI usage is not clear, not established and there is not common consensus, between maintainers about how to use the AI tools to deliver and maintain code, even worse each AI tools manage their own conventions e.g gemini.md, claude.md, making the processes attached to the tool standards making not portable to everyone and attaching each user to their tool rules.

Change of paradigm

Developers and maintainers don't write code anymore, AI agents do the job for them, in this new era the roles has shifted and now developers should think about themself as leaders, coordinators, managers, quality assurance agents, product owners, so the coder role is only for AI

The issue in the change of paradigm

there is not framework that set the guidelines to work with AI that write code, there are not guidelines, not rules, not are structure about how to.

Solution

Is necessary start looking to the code and repositories in a new way they are not anymore plain and static files optimized for humans eyes, software repositories need to be bring into life in the AI era as virtual team members that can work, and accomplish goals.

CYBERSE framework

I propose a framework that looks at repositories and code in a different way as embodied entities that are not attached to an specific LLM or tool, they are entities with identity that can work with any LLM tool, they can iterate on them self (memories, and code), they can create their context, learning's grown and interact between.

The principles

  1. A repository is a virtual space for AI agents
  2. Each AI agent represent an embodied entity with identity and code that represents their body
  3. The virtual space brings a space with rules, tools, and clear spaces for agents to interact
  4. The virtual space is a representation of how a team of humans interact as team to work in a solution

The office

Lets imagine an office where a software development team work together as a team in this office naturally there are developers, in many cases one per surface: backend, frontend, devops, android, IOs, etc, also there are team lead, project manager, designer, etc.

In CYBERSE framework the same dinamic is stablish in the virtual space where are two type of actors: Humans and AI agents, an human will fill the any of all roles of:

- team lead.
- project manager.
- quality assurance
- scrum master.

while AI agents will fill up the roles of:

- developer.
- devops engineer
- designer.

But how an AI could represent a developer in this virtual space?, the answer is as embodied entity, who has Head and Body, lets see an example, and let me introduce to you Martin, in this example Martin is and embodied entity who has body and head and he is part of a team that work in a music app to searh and find information about songs, and he habit the virtual space called songs-inc office:

songs-inc-office
└── team
    └── martin
        ├── body
        └── head

5 directories, 0 files

Martin is a ai-dev who work to build a front-end to search and find information about songs.

above example is folder, that represents the idea of the CYBERSE framework.

To bring into life Martin, he needs an identity:

- name: Martin
- role: FrontEnd developer node-react who build songs-inc web app.

So in Martin's head he stores their identity and memories:

songs-inc-office/
└── team
    └── martin
        ├── body
        ├── CLAUDE.md -> head/identity.md
        ├── GEMINI.md -> head/identity.md
        └── head
            ├── identity.md
            ├── long-memory.md
            └── short-memory.md

5 directories, 5 files

In Martin's body is where martin's code is stored, and when we think about Martin's code we talk about the front-end app songs-inc.

At same level of Martin's body and head there is the soft links files CLAUDE.md , and GEMINI.md to Martin's identity file, in this way Martin's become LLM's agnostic, and reproducible across environments, setups, and AI tools.

  • Identity file: describes Martin's identity and instructions about how to manage their memories.
  • long-memory file: stores things that Human ask Martin to remember.
  • short-memory file: stores 23 items of short memory that martin is freely to manage, each item should not be more of 800 characters and martin should manage each item during and after each session, PLUS, Martin stores here a tree of body folder which Martin should keep updated to with current body folder.

Conclusion's

This is the very first draft of the CYBERSE framework, it could seem incomplete and it is true, because it is under construction, so In further posts I will be talking more definitions about the framework and we will be walking around the construction of songs-inc, and expanding more definitions like the Human role in the framework.