<!-- .github/pull_request_template.md --> ## Description <!-- Provide a clear description of the changes in this PR --> kuzu + s3 is failing on dev. What's happening is: 1. During cognee.add, run_pipeline uses [`run_tasks`](https://github.com/topoteretes/cognee/blob/dev/cognee/modules/pipelines/operations/pipeline.py#L193-L195) 2. run_tasks calls [`push_to_s3`](https://github.com/topoteretes/cognee/blob/dev/cognee/modules/pipelines/operations/run_tasks.py#L336-L338), which attempts to [checkpoint](https://github.com/topoteretes/cognee/blob/dev/cognee/infrastructure/databases/graph/kuzu/adapter.py#L142) before the push (Kuzu connection is initialized in `cognify`) Trace: ``` AttributeError: 'NoneType' object has no attribute 'execute' Traceback (most recent call last): File "/Users/daulet/PycharmProjects/cognee-source/examples/python/dynamic_steps_example.py", line 219, in <module> loop.run_until_complete(main(steps_to_enable)) File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete return future.result() ^^^^^^^^^^^^^^^ File "/Users/daulet/PycharmProjects/cognee-source/examples/python/dynamic_steps_example.py", line 186, in main await cognee.add(text) File "/Users/daulet/PycharmProjects/cognee-source/cognee/api/v1/add/add.py", line 145, in add async for run_info in cognee_pipeline( File "/Users/daulet/PycharmProjects/cognee-source/cognee/modules/pipelines/operations/pipeline.py", line 106, in cognee_pipeline async for run_info in run_pipeline( File "/Users/daulet/PycharmProjects/cognee-source/cognee/modules/pipelines/operations/pipeline.py", line 197, in run_pipeline async for pipeline_run_info in pipeline_run: File "/Users/daulet/PycharmProjects/cognee-source/cognee/modules/pipelines/operations/run_tasks.py", line 53, in wrapper async for run_info in original_gen(*args, **kwargs): File "/Users/daulet/PycharmProjects/cognee-source/cognee/modules/pipelines/operations/run_tasks.py", line 360, in run_tasks raise error File "/Users/daulet/PycharmProjects/cognee-source/cognee/modules/pipelines/operations/run_tasks.py", line 337, in run_tasks await graph_engine.push_to_s3() File "/Users/daulet/PycharmProjects/cognee-source/cognee/infrastructure/databases/graph/kuzu/adapter.py", line 142, in push_to_s3 self.connection.execute("CHECKPOINT;") ``` # After fix Running `dynamic_steps_example.py`: ### Main branch ``` Data pruned. System pruned. User 26ab9bde-39a1-47b7-93d7-368ccccdc503 has registered. Added text: CV 1: Relevant Name: Dr. Emily Car... Added text: CV 2: Relevant Name: Michael Rodri... Added text: CV 3: Relevant Name: Sarah Nguyen ... Added text: CV 4: Not Relevant Name: David Tho... Added text: CV 5: Not Relevant Name: Jessica M... Knowledge graph created. ['David Thompson has experience in design tools, specifically in graphic design with over 8 years of experience and proficiency in Adobe Creative Suite.'] ``` ### This branch ``` Data pruned. System pruned. User 65cbe3a4-d94a-4043-921b-78bc90c3f0a6 has registered. Added text: CV 1: Relevant Name: Dr. Emily Car... Added text: CV 2: Relevant Name: Michael Rodri... Added text: CV 3: Relevant Name: Sarah Nguyen ... Added text: CV 4: Not Relevant Name: David Tho... Added text: CV 5: Not Relevant Name: Jessica M... Knowledge graph created. ['David Thompson — Creative Graphic Designer; proficient in Adobe Photoshop, Illustrator and InDesign (Adobe Creative Suite) and basic web design (HTML/CSS).'] ``` ## DCO Affirmation I affirm that all code in every commit of this pull request conforms to the terms of the Topoteretes Developer Certificate of Origin. |
||
|---|---|---|
| .github | ||
| alembic | ||
| assets | ||
| bin | ||
| cognee | ||
| cognee-frontend | ||
| cognee-mcp | ||
| cognee-starter-kit | ||
| deployment | ||
| distributed | ||
| evals | ||
| examples | ||
| licenses | ||
| logs | ||
| notebooks | ||
| tools | ||
| .dockerignore | ||
| .env.template | ||
| .gitattributes | ||
| .gitguardian.yml | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .pylintrc | ||
| alembic.ini | ||
| CODE_OF_CONDUCT.md | ||
| cognee-gui.py | ||
| CONTRIBUTING.md | ||
| CONTRIBUTORS.md | ||
| DCO.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| entrypoint.sh | ||
| LICENSE | ||
| mypy.ini | ||
| NOTICE.md | ||
| poetry.lock | ||
| pyproject.toml | ||
| README.md | ||
| SECURITY.md | ||
| uv.lock | ||
cognee - Memory for AI Agents in 5 lines of code
Demo . Learn more · Join Discord · Join r/AIMemory . Docs . cognee community repo
🚀 We launched Cogwit beta (Fully-hosted AI Memory): Sign up here! 🚀
Build dynamic memory for Agents and replace RAG using scalable, modular ECL (Extract, Cognify, Load) pipelines.
🌐 Available Languages : Deutsch | Español | français | 日本語 | 한국어 | Português | Русский | 中文
Features
- Interconnect and retrieve your past conversations, documents, images and audio transcriptions
- Replaces RAG systems and reduces developer effort, and cost.
- Load data to graph and vector databases using only Pydantic
- Manipulate your data while ingesting from 30+ data sources
Get Started
Get started quickly with a Google Colab notebook , Deepnote notebook or starter repo
Contributing
Your contributions are at the core of making this a true open source project. Any contributions you make are greatly appreciated. See CONTRIBUTING.md for more information.
📦 Installation
You can install Cognee using either pip, poetry, uv or any other python package manager.
Cognee supports Python 3.10 to 3.13
With pip
pip install cognee
Local Cognee installation
You can install the local Cognee repo using uv, pip and poetry. For local pip installation please make sure your pip version is above version 21.3.
with UV with all optional dependencies
uv sync --all-extras
💻 Basic Usage
Setup
import os
os.environ["LLM_API_KEY"] = "YOUR OPENAI_API_KEY"
You can also set the variables by creating .env file, using our template. To use different LLM providers, for more info check out our documentation
Simple example
This script will run the default pipeline:
import cognee
import asyncio
async def main():
# Add text to cognee
await cognee.add("Natural language processing (NLP) is an interdisciplinary subfield of computer science and information retrieval.")
# Generate the knowledge graph
await cognee.cognify()
# Query the knowledge graph
results = await cognee.search("Tell me about NLP")
# Display the results
for result in results:
print(result)
if __name__ == '__main__':
asyncio.run(main())
Example output:
Natural Language Processing (NLP) is a cross-disciplinary and interdisciplinary field that involves computer science and information retrieval. It focuses on the interaction between computers and human language, enabling machines to understand and process natural language.
Our paper is out! Read here
Cognee UI
You can also cognify your files and query using cognee UI.

Try cognee UI out locally here.
Understand our architecture
Demos
- Cogwit Beta demo:
- Simple GraphRAG demo
- cognee with Ollama
Code of Conduct
We are committed to making open source an enjoyable and respectful experience for our community. See CODE_OF_CONDUCT for more information.
💫 Contributors
Sponsors
Thanks to the following companies for sponsoring the ongoing development of cognee.