{"id":13450457,"url":"https://github.com/AutoPackAI/beebot","last_synced_at":"2025-03-23T16:31:30.786Z","repository":{"id":181506276,"uuid":"665298172","full_name":"AutoPackAI/beebot","owner":"AutoPackAI","description":"An Autonomous AI Agent that works","archived":false,"fork":false,"pushed_at":"2023-10-22T23:25:16.000Z","size":473,"stargazers_count":389,"open_issues_count":9,"forks_count":66,"subscribers_count":12,"default_branch":"main","last_synced_at":"2024-07-31T07:15:38.153Z","etag":null,"topics":["artificial-intelligence","autonomous-agents"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AutoPackAI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-07-11T22:37:03.000Z","updated_at":"2024-07-30T16:01:47.000Z","dependencies_parsed_at":"2023-07-15T23:28:20.773Z","dependency_job_id":"2ca7b54c-eb5e-4e3b-ae8c-816fee6d1236","html_url":"https://github.com/AutoPackAI/beebot","commit_stats":null,"previous_names":["autopackai/beebot"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AutoPackAI%2Fbeebot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AutoPackAI%2Fbeebot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AutoPackAI%2Fbeebot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AutoPackAI%2Fbeebot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AutoPackAI","download_url":"https://codeload.github.com/AutoPackAI/beebot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221856408,"owners_count":16892438,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artificial-intelligence","autonomous-agents"],"created_at":"2024-07-31T07:00:34.800Z","updated_at":"2024-10-28T16:31:17.941Z","avatar_url":"https://github.com/AutoPackAI.png","language":"Python","funding_links":[],"categories":["[BeeBot](https://github.com/AutoPackAI/beebot)","Python","Open-source Projects","Autonomous Agents"],"sub_categories":["Links"],"readme":"# BeeBot\n\nBeeBot is your personal worker bee, an Autonomous AI Assistant designed to perform a wide range of practical tasks\nautonomously.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://eriklp.com/mascot.png\" alt=\"BeeBot Mascot\"  align=\"center\" /\u003e\n\u003c/p\u003e\n\n## Status\n\nDevelopment of BeeBot is currently on hold. I've decided that LLMs as they are now (late 2023) aren't up to the task of generalized autonomous AI. I will revive the project if either:\n\n- LLMs get significantly better at structured thinking, reliable outcomes, and obeying instructions\n- I can develop or fine tune a custom model which is trained specifically for Autonomous AI\n- I figure out a particular subset of tasks that BeeBot is acceptably good at that I can focus on. (Hint: It's not coding)\n\nCheck back here, hopefully this will get re-started.\n\n## Features\n\n- Tool selection via [AutoPack](https://autopack.ai) and the ability to acquire more tools during task execution\n- Built-in persistence\n- REST API conforming to the [e2b](https://www.e2b.dev/) standard.\n- A websocket server to publish all events that occur within BeeBot\n- Swappable filesystem emulation so that files can be stored in-memory, on-disk, or in a database\n- A Web UI for managing your tasks (coming very soon)\n- Dynamic manipulation of history during task execution\n- Built-in caching with [Helicone](https://www.helicone.ai/) if enabled.\n\n## Installation\n\nTo get started with BeeBot, you can clone the repo to your local machine and install its dependencies using `poetry`.\nThese instructions may vary depending on your local development environment.\n\n```bash\ngit clone https://github.com/AutoPackAI/beebot.git\ncd beebot\n./setup.sh\n```\n\nWindows is officially unsupported but it may work. PRs are welcome for Windows compatibility but will not be a primary\nfocus.\n\n### Persistence\n\nPersistence is _required_. While SQLite is officially supported and is used in tests, it is highly recommended that\nyou use Postgres via docker, simply by executing `docker compose up -d`.\n\n## Running\n\n### CLI\n\nTo use the CLI run:\n\n```bash\npoetry run beebot\n```\n\n### API (via [e2b](https://www.e2b.dev/))\n\nTo start the server run:\n\n```bash\nuvicorn beebot.initiator.api:create_app --factory --timeout-keep-alive=300\n```\n\nIf you're doing development on BeeBot itself, you may want to use this command:\n\n```bash\nuvicorn beebot.initiator.api:create_app --factory --reload  --timeout-graceful-shutdown=3 --timeout-keep-alive=300\n```\n\nand then you can call the API using the following commands:\n\nTo **create a task** run:\n\n```bash\ncurl --request POST \\\n  --url http://localhost:8000/agent/tasks \\\n  --header 'Content-Type: application/json' \\\n  --data '{\n\t\"input\": \"Write '\\''hello world'\\'' to hi.txt\"\n}'\n```\n\nYou will get a response like this:\n\n```json\n{\n  \"input\": \"Write 'hello world' to hi.txt\",\n  \"task_id\": \"103\",\n  \"artifacts\": []\n}\n```\n\nThen to **execute one step of the task** copy the `task_id` you got from the previous request and run:\n\n```bash\ncurl --request POST \\\n  --url http://localhost:8000/agent/tasks/\u003ctask-id\u003e/steps\n```\n\n### Websocket Connection\n\n_Note: Notifications are currently undergoing a rework and may not work at the moment_\n\nTo receive a stream of changes to all the data models in BeeBot, you can subscribe to the websocket connection at\nthe `/notifications` endpoint with the same host/port as the web api, e.g. ws://localhost:8000/notifications. Use your\nfavorite websocket testing tool to try it out. (I like [Insomnia](https://insomnia.rest/))\n\n### Web Interface\n\nWe are working on a web interface using Node.js (Remix)\n\n## Philosophy\n\nBeeBot's development process is guided by a specific philosophy, emphasizing key principles that shape its development\nand future direction.\n\n### Priorities\n\nThe development of BeeBot is driven by the following priorities, always in this order:\n\n1. Functionality: BeeBot aims to achieve a high success rate for tasks within its range of _expected_ capabilities.\n2. Flexibility: BeeBot strives to be adaptable to a wide range of tasks, expanding that range over time.\n3. Reliability: BeeBot focuses on reliably completing known tasks with predictability.\n4. Efficiency: BeeBot aims to execute tasks with minimal steps, optimizing both time and resource usage.\n5. Convenience: BeeBot aims to provide a user-friendly platform for task automation.\n\n### Principles\n\nTo achieve these priorities, BeeBot follows the following principles:\n\n- Tool-focused: BeeBot carefully selects and describes tools, ensuring their reliable use by LLMs. It\n  uses [AutoPack](https://autopack.ai) as the package manager for its tools.\n- LLM specialization: BeeBot will leverage a variety of LLMs best suited for different tasks, while OpenAI remains the\n  primary LLM for planning and decision-making.\n- Functionality and flexibility first: BeeBot prioritizes functionality and flexibility over developer quality-of-life,\n  which may limit support for specific platforms and other deployment conveniences.\n- Unorthodox methodologies: BeeBot employs unconventional development approaches to increase development speed, such as\n  the absence of unit tests. Instead, end-to-end tests are used, ensuring the entire system works together as expected.\n- Proven concepts: BeeBot adopts new concepts only after they have been proven to enhance its five priorities.\n  As a result, it does not have complex memory or a tree of thought.\n\n## Documentation\n\nFor further information on the architecture and future plans of BeeBot, please refer to the `docs/` directory. The\ndocumentation is currently very light, but will evolve alongside the project as new insights and developments emerge.\nContributions and feedback from the community are highly appreciated.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAutoPackAI%2Fbeebot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAutoPackAI%2Fbeebot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAutoPackAI%2Fbeebot/lists"}