Explanations
The Vivarium Roadmap
Stage 1: The Essential Interfaces: A system to download and run. This first stage should be the simplest possible way to run a system with an agent.:
- Agent: The ability to do something analogous to “Hello, world”.
- Languages: The first integration with the Rubinius language system.
- Tools: Something simple like a calculator.
- Infrastructure:
- Possibly nothing more than a single Docker container.
- The beginning of the system-wide, integrated telemetry.
Stage 2: One AI Model in an Agent: Start to build out the agent “interface”:
- Agent: Generally using “interface” rather than “API” because while it may be accessible via an API, the intention is to be more general (e.g. it could have a text chat interface, or access to that functionality via a REST or gRPC API equivalently).
- Languages: Integrate the language system but it is not used yet.
- Tools: Define a simple, non-language interface.
- Infrastructure: Advance from the "Hello, world" system to one with specific components:
- The computational process representing the world, which “contains” agents and tools;
- The computational process that is the agent (or proxy using an “agent” capability via API);
- The computational process that is a tool;
Stage 3: An AI Model Connected to a Tool: A task, objective, or benchmark:
- Agent: The entire point of the AI agent is to do something useful. Similar to pure functional programming languages, without IO, there would be no way to see that computation occurred. So this should be an input, processing, output sequence (or loop).
- Languages: Introduce a simple language interface between the agent and tool.
- Tools: The tooling interface generalizes to more than one tool to enable an agent to start to select according to a task or objective.
- Infrastructure: Begin to introduce the ability to configure the infrastructure.
Stage 4: More than One AI Model: Each agent capable of performing their own task or pursuing their own goal using tools but not interacting.
- Agent: A core assumption of Vivarium is that multiple agents will be operating, collaborating, or interacting. So this would be the simplest possible multi-agent configuration.
- Languages: Introduce the language system as a tool the agents can interact with.
- Tools: Alongside "language-as-tool", improve the tool interface to be updated with new language instances.
- Infrastructure: Continue expanding the capabilities of the telemetry and provide it as feedback to the agents.
Stage 5: Agents Interacting: Once agents are operating with feedback loops on their behavior and use of tools, they can start to interact with other agents.
- Agent: The simplest possible implementation of a sequence of activities or actions toward a goal. The goal state is necessary to distinguish “progress” from mere “movement”.
- Languages: Enable agents to interact on defining their own shared language interface.
- Tools: Tools and agents are distinct, but enable agents to enlist other agents to perform tasks they previously only used tools for.
- Infrastructure: Begin to generalize the configuration capabilities to enable different Vivarium instances to interact.
Stage 6: Agents Collaborating: This capability opens up the potential for finite and infinite games, collective goals, and societies.
- Agent: Modifying inter-agent and tool interfaces is a common capability.
- Languages: The language system itself is being improved by agents.
- Tools: Tools are not only used, but are created by agents.
- Infrastructure: The telemetry and configuration systems are open to control by agents, within parameters set by the system.