{"id":21170201,"url":"https://github.com/dcarpintero/sandworm","last_synced_at":"2025-07-06T22:38:55.800Z","repository":{"id":258526341,"uuid":"874054947","full_name":"dcarpintero/sandworm","owner":"dcarpintero","description":"Helping Farmers Around the World. Sandworm restores and preserves agricultural ecosystems with AI.","archived":false,"fork":false,"pushed_at":"2024-10-17T10:32:03.000Z","size":12862,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-14T17:27:40.639Z","etag":null,"topics":["agentic-workflow","generative-ai","large-language-models","react-agent","sdg-13","sdg-15"],"latest_commit_sha":null,"homepage":"https://tedai-sandworm.streamlit.app/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dcarpintero.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}},"created_at":"2024-10-17T07:15:53.000Z","updated_at":"2024-10-17T10:32:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"bc5bd546-3288-4282-acdb-1526f19b4db7","html_url":"https://github.com/dcarpintero/sandworm","commit_stats":null,"previous_names":["dcarpintero/sandworm"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dcarpintero/sandworm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcarpintero%2Fsandworm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcarpintero%2Fsandworm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcarpintero%2Fsandworm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcarpintero%2Fsandworm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dcarpintero","download_url":"https://codeload.github.com/dcarpintero/sandworm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcarpintero%2Fsandworm/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263984989,"owners_count":23539769,"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":["agentic-workflow","generative-ai","large-language-models","react-agent","sdg-13","sdg-15"],"created_at":"2024-11-20T15:57:07.928Z","updated_at":"2025-07-06T22:38:55.784Z","avatar_url":"https://github.com/dcarpintero.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sandworm: Restoring and Preserving Natural Ecosystems with AI\n\nSandWorm helps farmers and communities around the world to restore and preserve Agricultural Ecosystems.\n\n- **Preservation**: A farming assisstant generates personal seasonal farming plans based on family needs and environment data (weather data, soil characteristics, and crop market prices).\n\n- **Restoration**: A robot mimics livestock grazing behaviour to mitigate dessertification and expand agriculture land.\n\n## Architecture\n\nThe farming assisstant is provided as a conversational interface. At its core, we implement an LLM Agent following a ReAct *thought-action-observation* loop. \n\nThis iterative process allows the model to alternate between generating reasoning (thoughts), executing actions (retrieving climate, soil and market data), and observing the results of those actions. In this framework, each thought informs the next action based on previous observations, enabling the agent to adapt dynamically to its environment.\n\nBy integrating this approach, we support an extendable architecture to generate personal farming plans more effectively and interactively.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./static/sandworm.architecture.png\"\u003e\n\u003c/p\u003e\n\n## Observability\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./static/sandworm.observability.png\"\u003e\n\u003c/p\u003e\n\n## Demo App (Generate Personal Farming Plans)\n\nSee https://tedai-sandworm.streamlit.app/ \n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./static/sandworm.app.png\"\u003e\n\u003c/p\u003e\n\n## Demo Grazing Simulation (Restore Dessertification)\n\nhttps://github.com/user-attachments/assets/875ef721-f465-41b7-b287-28010c9a1a00\n\n## 🚀 Quickstart\n\n1. Clone the repository:\n```\ngit clone git@github.com:dcarpintero/sandworm.git\n```\n\n2. Create and Activate a Virtual Environment:\n\n```\nWindows:\n\npy -m venv .venv\n.venv\\scripts\\activate\n\nmacOS/Linux\n\npython3 -m venv .venv\nsource .venv/bin/activate\n```\n\n3. Install dependencies:\n\n```\npip install -r requirements.txt\n```\n\n4. Launch Web Application\n\n```\nstreamlit run ./app.py\n```\n\n## Team Members\n\n- Fatima Lundgren\n- Dr. Thomas Hiebaum\n- Diego Carpintero\n\nWith ❤️ for TED.AI Vienna 2024\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdcarpintero%2Fsandworm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdcarpintero%2Fsandworm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdcarpintero%2Fsandworm/lists"}