Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/smartcomputer-ai/agent-os
Build autonomous AI agents! ๐
https://github.com/smartcomputer-ai/agent-os
Last synced: 3 months ago
JSON representation
Build autonomous AI agents! ๐
- Host: GitHub
- URL: https://github.com/smartcomputer-ai/agent-os
- Owner: smartcomputer-ai
- License: mit
- Created: 2023-07-26T09:58:12.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-22T15:57:51.000Z (8 months ago)
- Last Synced: 2024-05-22T19:00:40.349Z (8 months ago)
- Language: Python
- Size: 4.81 MB
- Stars: 75
- Watchers: 8
- Forks: 9
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
- awesome_ai_agents - AgentOS - The Agent OS is an experimental platform for creating self-evolving, autonomous AI agents capable of writing and executing their own code, designed to be a long-term environment for such agents and supports various programming languages [github](https://github.com/smartcomputer-ai/agent-os) (Learning / Repositories)
- awesome_ai_agents - AgentOS - The Agent OS is an experimental platform for creating self-evolving, autonomous AI agents capable of writing and executing their own code, designed to be a long-term environment for such agents and supports various programming languages [github](https://github.com/smartcomputer-ai/agent-os) (Learning / Repositories)
README
# Agent OS
๐ Build autonomous AI agents!๐ ๏ธThe Agent OS is an experimental framework and runtime to build sophisticated, long running, and self-coding AI agents.
We believe that the most important super-power of AI agents is to write and execute their own code to interact with the world. But for that to work, they need to run in a suitable environmentโa place designed to be inhabited by agents. The Agent OS is designed from the ground up to function as a long-term computing substrate for these kinds of self-evolving agents.
โIf you want to understand the motivation behind the project, read the [manifesto](docs/articles/manifesto.md).
โTo learn how everything works, start reading the [design docs](docs/design/design.md).In short:
- Think of the Agent OS as a *substrate* that is designed for the next generation of robust [Auto-GPTs](https://github.com/Significant-Gravitas/Auto-GPT).
- The current version is implemented in Python, but the runtime and protocol is designed to work with many different programming languages, and the runtime should eventually be rewritten in a systems language. The current runtime is a prototype (but a serious one).
- The framework plays well with other AI libraries such as LangChain or LlamaIndex.
- The system is designed for "[local-first](https://www.inkandswitch.com/local-first/)" agents that run on your machine, but it should also be possible to run parts of an agent in the cloud.
- The data layer is made for longevity. We introduce a novel data structure that is inspired by Git. It's a content addressable storage that maintains your agent's history and memory and makes sure you never lose data.
- An agent's primary purpose is not to run large language models on your machine (although that's possible too), but to provide a place to execute the code and functions that are generated by these models. It then composes these functions into larger features and routes events and data to them.
- To demonstrate the power of the Agent OS, this project comes with a demo agent called ["Jetpack"](agents/README.md#jetpack) that can chat with you and write self-executing programs.
Click the the image to watch a short demo on YouTube.NOTE: WE ARE CURRENTLY WORKING ON A DISTRIBUTED RUNTIME.
Everything below this is out of date.## Getting Started
As long as the project is still in alpha, the best way to get started is to clone this repository.Requires Python >= 3.10 and [Poetry](https://python-poetry.org/). Works on Linux, macOS, and Windows.
Once cloned, `cd` into the repository and run:
```
poetry install
```The project comes with a CLI that can be used to initiate and run agents. To see the available commands run:
```
poetry run aos --help
```## Test Drive an Agent ๐ค
To run your first agent, put an `.env` file in the project root that contains an OpenAI API key. (It also works without an `.env` file or key if you just want to give the project a quick spin.)
```
OPENAI_API_KEY=sk-myspecialkey
```
### Agent Dependencies
Some of the dependencies for the demo agents are optional and not part of the core Agent OS source. To install them, run:
```
poetry install --with agents
```### Jetpack Agent
The ["Jetpack" agent](agents/README.md) demonstrates what the Agent OS can do and is geared towards end-to-end code generation and execution. It's a conversational agent that can accomplish various tasks for you. To run it, execute the following commands:
```
poetry run aos -d agents/jetpack/ push
poetry run aos -d agents/jetpack/ run
```Jetpack comes with a web interface, and the Agent OS hosts a web server. To access the interface, browse to http://127.0.0.1:5000/ag/jetpack/wit/actors/frontend/query/web
## Project Structure
* `agents/`: examples of agent implementations. [See the folder](agents/) for more details.
* `jetpack/`: the flagship agent demo, geared towards conversational task completion through code generation.
* `src/`: contains all relevant modules that are part of the Agent OS.
* `grit/`: object store, inspired by Git.
* `wit/`: libraries to help write "wit" state transition functions
* `runtime/`: the Agent OS runtime: actor executor, custom python module loader, and wit function resolver.
* `sync/`: modules to push and pull data into grit from the developer's file system.
* `web/`: the web server that provides the web interface.
* `cli/`: the "aos" (agent OS) CLI.
* `tests/`: extensive unit tests that cover most of the `/src` packages
and modules.
* `docs/`: documentation, intended to be rendered as a GitBook.## Running the Tests
If you want to hack on the code, it is helpful to run the tests. The project uses `pytest` and has almost 100 unit tests.
```
poetry run pytest tests/
```