{"id":26844279,"url":"https://github.com/dingolytics/golem-gpt","last_synced_at":"2025-04-30T19:34:49.288Z","repository":{"id":154039151,"uuid":"629927748","full_name":"Dingolytics/golem-gpt","owner":"Dingolytics","description":"Framework for building actionable agents to achieve goals specified by user, powered by OpenAI GPT-4 and GPT-3.5","archived":false,"fork":false,"pushed_at":"2025-04-13T19:26:06.000Z","size":151,"stargazers_count":13,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-13T20:32:04.706Z","etag":null,"topics":["ai","chatgpt","framework","gpt-3","gpt-4","python"],"latest_commit_sha":null,"homepage":"https://golem-gpt.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dingolytics.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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-04-19T10:03:03.000Z","updated_at":"2025-01-18T20:15:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"ef8dc43d-0a65-4642-9529-a811849fa03e","html_url":"https://github.com/Dingolytics/golem-gpt","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dingolytics%2Fgolem-gpt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dingolytics%2Fgolem-gpt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dingolytics%2Fgolem-gpt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dingolytics%2Fgolem-gpt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dingolytics","download_url":"https://codeload.github.com/Dingolytics/golem-gpt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251769845,"owners_count":21640987,"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":["ai","chatgpt","framework","gpt-3","gpt-4","python"],"created_at":"2025-03-30T19:19:18.642Z","updated_at":"2025-04-30T19:34:49.283Z","avatar_url":"https://github.com/Dingolytics.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Golem-GPT \n=========\n\n![PyPI](https://img.shields.io/pypi/v/golem-gpt) ![PyPI - Status](https://img.shields.io/pypi/status/golem-gpt) ![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/dingolytics/golem-gpt?sort=date)\n\n⚠️ **This is an experimental development. Run it on your own risk!** ⚠️\n\nFramework for building actionable agents to achieve goals specified\nby user, powered by [OpenAI](https://openai.com) [GPT-4](https://openai.com/research/gpt-4)\nand [GPT-3.5](https://platform.openai.com/docs/models/gpt-3-5)\n\n\nUsage\n-----\n\nThe optimal way to run Golem-GPT is to use the [Docker image](https://hub.docker.com/r/dingolytics/golem-gpt) or Docker Compose.\n\n### Requirements\n\n- Docker or Python 3.8+ environment\n- OpenAI API key\n\n### Quick start\n\nPut credentials to `.env`:\n\n```bash\nOPENAI_API_KEY=...\nOPENAI_ORG_ID=...\nOPENAI_MODEL=gpt-4\n```\n\n*(For `gpt-4` model you should have an early access enabled, it's not publicly available yet).*\n\nRun it via Docker Compose:\n\n```bash\ndocker compose build \u0026\u0026 docker compose run app\n```\n\nor via Python:\n\n```bash\npip install --upgrade golem-gpt\npython -m golemgpt\n```\n\n❗️ It's safer to run it inside Docker to have it isolated. Because\nGolem can access an environment and filesystem, so it's better to keep\nit inside a container.\n\n\nArchitecture\n------------\n\nWe introduce a novel framework for building **Golems** (actionable agents)\nwhich is based on the following high-level concepts:\n\n- **Goals**: a set of goals, initially defined by user's input. Goals could\n  be high-level definitions, like \"I want to build a web app\", or low-level\n  definitions, like \"I want to create a new file with content 'Hello, world!'\"\n\n- **Cognitron**: a language model, which interprets input text and produces an\n  action plan, or other kind of structured output. It runs on top of OpenAI\n  models, which could be potentially replaced with any other language model.\n\n- **Lexicon**: a set of rules and dictionary to generate prompts for Cognitron\n  and interpret its structured output.\n\n- **Action plan**: a structured output of Cognitron, which is a set of\n  actions to be executed for achieving goals.\n\n- **Actions**: a predefined executables or functions, which can interact\n  with the environment to achieve goals. Actions could also be recursive or\n  delegate their execution to other Golems.\n\n- **Memory**: a storage for the Golem's current state, which can also be\n  saved and loaded to continue the job later.\n\n- **Codex**: a built-in Golem's moderator, which is responsible for\n  checking the agent's actions and preventing it from doing something\n  unexpected. Codex has its own Cognitrion and Lexicon.\n\nNOTE: *In our implementation, Actions are implemented as Python functions*\n\n\nWhy?\n----\n\n**How is it different from [AutoGPT](https://github.com/Significant-Gravitas/Auto-GPT)?**\n\nWe build it because we like it. Our implementation is not as advanced\nas AutoGPT to the moment, but it has some unique focus:\n\n- Keeping it simple and easy to modify, also with minimal dependencies\n- While keeping the core simple, we aim to make it extensible via custom\n  actions, roles, policies, and other components\n- We think of it as interactive tool, not necessarily to be fully autonomous\n- Also we test it with GPT-3.5, which porbably sounds not super-hyped,\n  but it's waaay cheaper and delivers results good enough for many use cases\n- We are going to utilize it in our own development cycle, and refine it\n  to fit real needs in software development\n\n\nActions supported\n-----------------\n\nThe pipeline consists of the following actions:\n\n- [x] ask_human_input(query)\n- [x] get_os_details()\n- [x] get_local_date()\n- [x] read_file(filename)\n- [x] write_file(filename, content)\n- [ ] summarize_file(filename, hint, to_filename)\n- [x] http_download(url, method, headers, body, to_filename)\n- [ ] create_python_script(name, description, in_files, out_files)\n- [ ] create_shell_script(name, description, in_files, out_files)\n- [x] run_script(name)\n- [ ] ask_google(query, to_filename)\n- [ ] delegate_job(goal, role, in_files, out_files)\n- [x] explain(comment)\n- [x] reject_job(message)\n- [x] finish_job(message)\n\n\nDevelopment\n-----------\n\nSetup virtualenv:\n\n```bash\npython -m venv .venv\nsource .venv/bin/activate\npip install --upgrade pip pip-tools\npip-compile\npip install -r requirements.txt\n```\n\nPut variables to `.env`:\n\n```bash\nOPENAI_API_KEY=...\nOPENAI_ORG_ID=...\n```\n\nStart a new job:\n\n```bash\npython -m golemgpt\n```\n\nContinue saved job:\n\n```bash\npython -m golemgpt -j \u003cjob key\u003e\n```\n\nTerminate simply with ^C or empty input.\n\n\nCode formatting convention:\n\n\n```\nruff format --line-length 80\n```\n\n\nLicense\n-------\n\nGolem-GPT is licensed under the [Apache-2.0](LICENSE).\n\nAuthors:\n\n- Alexey Kinev \u003crudy@05bit.com\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdingolytics%2Fgolem-gpt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdingolytics%2Fgolem-gpt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdingolytics%2Fgolem-gpt/lists"}