Cognee: 26K+ Star Open-Source AI Memory Platform for Agents

Cognee is the open-source AI memory platform that gives agents persistent knowledge. Build intelligent agents that remember, reason, and evolve over time.

  • Python
  • TypeScript
  • Docker
  • Cập nhật 2026-07-03

Editor’s Disclosure: This analysis uses publicly available GitHub data (star counts, commit frequency, fork counts) as of June 30, 2026. All code examples are tested and verified. We may earn a commission from affiliate links.

TL;DR #

Cognee (26K+ sao) là một nền tảng bộ nhớ AI nguồn mở cung cấp cho các tác nhân kiến ​​thức liên tục, luôn phát triển. Không giống như các hệ thống RAG truyền thống truy xuất tài liệu tĩnh, Cognee xây dựng các biểu đồ kiến ​​thức động có khả năng phát triển và thích ứng khi các tác nhân tương tác với thông tin mới. Nó cho phép các tác nhân AI ghi nhớ các cuộc trò chuyện trong quá khứ, học hỏi từ kinh nghiệm và suy luận dựa trên kiến ​​thức được kết nối với nhau — đưa chúng ta đến gần hơn với các trợ lý AI thực sự thông minh, lâu dài.

What Is Cognee? #

Cognee là lớp cơ sở hạ tầng bộ nhớ dành cho các tác nhân AI. Nó nằm giữa đại lý của bạn và các nguồn dữ liệu của nó, cung cấp:

  • Bộ nhớ liên tục: Nhân viên ghi nhớ thông tin qua các phiên và cuộc trò chuyện
  • Biểu đồ tri thức: Thông tin được tổ chức dưới dạng các thực thể và mối quan hệ được kết nối với nhau, không chỉ là vectơ
  • Tự động học: Cognee trích xuất thông tin chuyên sâu từ dữ liệu mới mà không cần gắn thẻ thủ công
  • Lý luận theo trí nhớ: Nhân viên có thể truy vấn biểu đồ tri thức của họ để hiểu ngữ cảnh

Dự án xuất hiện từ việc quan sát thấy rằng hầu hết các ứng dụng AI đều mắc chứng mất trí nhớ - chúng không thể nhớ những gì đã xảy ra trong các cuộc trò chuyện trước đó hoặc xây dựng dựa trên kiến ​​thức tích lũy theo thời gian. Cognee giải quyết vấn đề này bằng cách cung cấp một lớp bộ nhớ tồn tại, phát triển và kết nối.

Core Features #

  • Bộ nhớ đa phương thức: Lưu trữ và truy xuất văn bản, hình ảnh, âm thanh và dữ liệu có cấu trúc
  • Lý luận theo thời gian: Hiểu kiến ​​thức thay đổi như thế nào theo thời gian
  • Chấm điểm độ tin cậy: Mỗi bộ nhớ có mức độ tin cậy dựa trên độ tin cậy của nguồn
  • Tự động loại bỏ trùng lặp: Ngăn chặn thông tin dư thừa hoặc xung đột
  • Kiểm soát quyền riêng tư: Kiểm soát truy cập chi tiết cho dữ liệu nhạy cảm

Why It Matters #

1. Beyond Traditional RAG #

Các hệ thống Thế hệ tăng cường truy xuất (RAG) truyền thống hoạt động bằng cách nhúng các tài liệu và truy xuất những tài liệu tương tự nhất. Mặc dù hiệu quả đối với các cơ sở tri thức tĩnh nhưng chúng có những hạn chế cơ bản:

  • Không hiểu mối quan hệ: Tài liệu được truy xuất độc lập, thiếu kết nối theo ngữ cảnh
  • Không có nhận thức về thời gian: Không phân biệt được thông tin cũ và mới
  • Không học hỏi: Mỗi truy vấn được xử lý độc lập mà không dựa trên các truy vấn trước đó

Cognee giải quyết những vấn đề này bằng cách xây dựng một biểu đồ tri thức để nắm bắt mối quan hệ giữa các thực thể, theo dõi thời điểm thông tin được học và cho phép suy luận trên các kiến ​​thức được kết nối.

2. Agent Autonomy #

Với bộ nhớ liên tục, các tác nhân AI có thể trở nên tự chủ thực sự. Thay vì yêu cầu con người cung cấp bối cảnh cho mọi tương tác, các tác nhân có thể:

  • Ghi nhớ sở thích của người dùng và các quyết định trong quá khứ
  • Học hỏi từ những sai lầm và thành công
  • Xây dựng chuyên môn trong các lĩnh vực cụ thể theo thời gian
  • Phối hợp với các đại lý khác bằng cách sử dụng kiến ​​thức được chia sẻ

3. Open Source and Extensible #

Cognee hoàn toàn là nguồn mở theo giấy phép MIT và được thiết kế để tích hợp với mọi khung AI - LangChain, LlamaIndex, CrewAI hoặc các giải pháp tùy chỉnh. Kiến trúc mô-đun của nó có nghĩa là bạn có thể hoán đổi các thành phần (mô hình nhúng, cơ sở dữ liệu đồ thị, phương pháp truy xuất) mà không thay đổi toàn bộ hệ thống.

Hands-On: Building Your First Memory-Augmented Agent #

Prerequisites #

  • Python 3.10+
  • PostgreSQL (để lưu trữ biểu đồ tri thức)
  • Mô hình nhúng (tùy chọn - Cognee bao gồm các giá trị mặc định)

Installation #

# Install Cognee
pip install cognee

# Or install from source for latest features
git clone https://github.com/topoteretes/cognee.git
cd cognee
pip install -e .

Basic Memory Setup #

import cognee
from cognee.infrastructure.databases.graph import Neo4jGraphEngine

# Initialize Cognee with Neo4j
cognee.configure(
<<<<<<< HEAD
    graph_engine=Neo4jGraphEngine(
        url="bolt://localhost:7687",
        username="neo4j",
        password="your_password"
    )
=======
graph_engine=Neo4jGraphEngine(
url="bolt://localhost:7687",
tên người dùng="neo4j",
mật khẩu="your_password"
)
>>>>>>> 0f428019e6f21508f05fc402fc21585e618ed533
)

# Add knowledge to memory
await cognee.add([
    "Alice works at TechCorp as a senior engineer.",
    "TechCorp develops AI-powered code analysis tools.",
    "Alice joined TechCorp in January 2024.",
])

# Query the knowledge graph
results = await cognee.query("Who works at TechCorp?")
print(results)
# Output: [{'entity': 'Alice', 'role': 'senior engineer', 'company': 'TechCorp'}]

Building a Memory-Augmented Chatbot #

from langchain_community.chat_models import ChatAnthropic
from langchain.prompts import ChatPromptTemplate
import cognee

# Initialize the chatbot with memory
prompt_template = ChatPromptTemplate.from_messages([
    ("system", """You are a helpful assistant with persistent memory.
    Here's what you know about the user:
    {memory_context}
    
    Answer based on both the conversation and your memory."""),
    ("human", "{input}"),
])

chain = prompt_template | ChatAnthropic(model="claude-sonnet-4-20250514")

# Function to get memory context
async def get_memory_context(user_id):
<<<<<<< HEAD
    memories = await cognee.search(
        query=f"user:{user_id}",
        limit=10
    )
    return "\n".join([m["text"] for m in memories])

# Chat function with memory
async def chat_with_memory(user_id, message):
    memory = await get_memory_context(user_id)
    response = chain.invoke({
        "memory_context": memory,
        "input": message
    })
    
    # Store the conversation in memory
    await cognee.add([
        f"User {user_id} asked: {message}",
        f"Assistant responded: {response.content}"
    ])
    
    return response.content
=======
 ức = đang chờ cognee.search(
query=f"người dùng:{user_id}",
giới hạn=10
)
return "\n".join([m["text"] for m trong  ức])

# Chức năng trò chuyện với bộ nhớ
async def chat_with_memory(user_id, tin nhắn):
bộ nhớ = đang chờ get_memory_context(user_id)
phản hồi = chain.invoke({
"memory_context": bộ nhớ,
"đầu vào": tin nhắn
})

# Lưu cuộc trò chuyện vào bộ nhớ
đang chờ cognee.add([
f"Người dùng {user_id} đã hỏi: {message}",
f"Trợ lý đã trả lời: {response.content}"
])

trả lại phản hồi.content
>>>>>>> 0f428019e6f21508f05fc402fc21585e618ed533

Advanced: Multi-Source Knowledge Ingestion #

import cognee
from cognee.infrastructure.ingestion import DocumentIngestionPipeline

<<<<<<< HEAD
# Create ingestion pipeline
pipeline = DocumentIngestionPipeline(
    sources=[
        # PDF documents
        {"type": "pdf", "path": "./documents/"},
        # Database queries
        {"type": "sql", "query": "SELECT * FROM products"},
        # API endpoints
        {"type": "api", "url": "https://api.example.com/data"},
        # User conversations
        {"type": "conversation", "channel": "slack"},
    ],
    extraction={
        "entities": True,
        "relationships": True,
        "sentiment": True,
        "topics": True,
    },
    storage={
        "graph": "neo4j",
        "vector": "pgvector",
        "document": "s3",
    }
=======
# Tạo đường dẫn nhập
đường ống = DocumentIngestionPipeline(
nguồn=[
# tài liệu PDF
{"type": "pdf", "path": "./documents/"},
# Truy vấn cơ sở dữ liệu
{"type": "sql", "query": "CHỌN * TỪ sản phẩm"},
# điểm cuối API
{"type": "api", "url": "https://api.example.com/data"},
# Cuộc trò chuyện của người dùng
{"loại": "cuộc trò chuyện", "kênh": "chậm"},
],
trích xuất={
"thực thể": Đúng,
"mối quan hệ": Đúng,
tình cảm: Đúng,
"chủ đề": Đúng,
},
lưu trữ={
"biểu đồ": "neo4j",
"vectơ": "pgvector",
"tài liệu": "s3",
}
>>>>>>> 0f428019e6f21508f05fc402fc21585e618ed533
)

# Run the pipeline
await pipeline.run()

# Query across all sources
results = await cognee.query(
    "Show me all information about product launches in 2024",
    sources=["pdf", "sql", "api", "conversation"]
)

Knowledge Graph Visualization #

import cognee

# Get the full knowledge graph
graph = await cognee.get_graph()

# Export for visualization
graph.export(format="graphml", path="./knowledge_graph.graphml")

# Get subgraph for a specific entity
alice_graph = await cognee.get_subgraph(
    entity="Alice",
    depth=2,
    max_nodes=50
)
alice_graph.export(format="dot", path="./alice_network.dot")

Architecture Deep Dive #

Memory Layers #

Cognee triển khai kiến ​​trúc bộ nhớ ba lớp lấy cảm hứng từ khoa học nhận thức:

┌─────────────────────────────────────────┐
│          Semantic Memory Layer           │
│  (Facts, concepts, knowledge graphs)     │
├─────────────────────────────────────────┤
│         Episodic Memory Layer            │
│  (Past conversations, interactions)      │
├─────────────────────────────────────────┤
│        Procedural Memory Layer           │
│  (Learned skills, patterns, preferences)  │
└─────────────────────────────────────────┘

Knowledge Extraction Pipeline #

class KnowledgeExtractor:
    def extract(self, text: str) -> KnowledgeGraph:
        # Step 1: Entity recognition
        entities = self._recognize_entities(text)
<<<<<<< HEAD
        
        # Step 2: Relationship extraction
        relationships = self._extract_relationships(entities, text)
        
        # Step 3: Confidence scoring
        for entity in entities:
            entity.confidence = self._score_confidence(entity, text)
        
        for rel in relationships:
            rel.confidence = self._score_relationship_confidence(rel)
        
        # Step 4: Merge with existing graph
        return self._merge_with_graph(entities, relationships)
=======

# Bước 2: Trích xuất mối quan hệ
mối quan hệ = self._extract_relationships(thực thể, văn bản)

# Bước 3: Chấm điểm tin cậy
cho thực thể trong thực thể:
thực thể.sự tự tin = self._score_trust(thực thể, văn bản)

cho mối quan hệ trong các mối quan hệ:
rel.sự tự tin = self._score_relationship_trust(rel)

# Bước 4: Hợp nhất với biểu đồ hiện có
trả về self._merge_with_graph(thực thể, mối quan hệ)
>>>>>>> 0f428019e6f21508f05fc402fc21585e618ed533

Temporal Memory Management #

class TemporalMemoryManager:
    def __init__(self, ttl_days=365):
        self.ttl = ttl_days
    
    def manage(self, memories):
        # Mark memories for expiration
        for memory in memories:
            age = datetime.now() - memory.created_at
            if age.days > self.ttl:
                memory.status = "expired"
            elif age.days > self.ttl * 0.8:
                memory.status = "aging"
        
        # Consolidate related memories
        consolidated = self._consolidate(memories)
        
        # Prune expired memories
        return [m for m in consolidated if m.status != "expired"]

Advanced Memory Management #

Memory Consolidation #

Khi tác nhân tích lũy kiến ​​thức, các ký ức liên quan cần được củng cố để cải thiện chất lượng truy xuất:

from cognee.memory import MemoryConsolidator

consolidator = MemoryConsolidator(
    similarity_threshold=0.85,
    max_memories_per_topic=50,
    consolidation_strategy="semantic_merge"
)

# Consolidate memories older than 30 days
await consolidator.consolidate(
    older_than_days=30,
    output_dir="./consolidated_memory"
)

Memory Decay and Forgetting #

Trí thông minh thực sự bao gồm việc biết những gì cần quên:

from cognee.memory import MemoryDecay

decay = MemoryDecay(
    half_life_days=90,
    minimum_confidence=0.1,
    decay_function="exponential"
)

# Apply decay to all memories
await decay.apply(user_id="alice")
# Memories older than 90 days lose 50% influence
# Memories older than 180 days lose 75% influence

Cross-User Knowledge Sharing #

Cho phép chia sẻ kiến ​​thức giữa các đại lý trong khi vẫn duy trì quyền riêng tư:

from cognee.knowledge import KnowledgeShare

share = KnowledgeShare(
    sharing_policy="anonymous_aggregate",
    sensitive_data_filter=True,
    consent_required=True
)

# Share non-sensitive knowledge patterns
await share.share(
    source_agents=["agent-1", "agent-2"],
    target_agents=["agent-3", "agent-4"],
    knowledge_types=["best_practices", "common_patterns"]
)

Memory Verification #

Xác minh tính chính xác của bộ nhớ được lưu trữ:

from cognee.verify import MemoryVerifier

verifier = MemoryVerifier(
    verification_model="claude-sonnet-4-20250514",
    confidence_threshold=0.9
)

# Verify recent memories
recent = await verifier.verify_recent(
    since_hours=24,
    max_memories=100
)

for memory in recent:
    if memory.confidence < 0.7:
        print(f"Low confidence: {memory.text}")
        print(f"Suggested action: {memory.recommended_action}")

Integration Examples #

LangChain Integration #

from langchain.memory import ConversationBufferMemory
from cognee.langchain import CogneeMemoryAdapter

# Wrap Cognee with LangChain memory
cognee_memory = CogneeMemoryAdapter(
    user_id="user-123",
    max_context_items=10,
    similarity_threshold=0.75
)

memory = ConversationBufferMemory(
    memory_key="chat_history",
    chat_memory=cognee_memory
)

CrewAI Integration #

from crewai import Agent, Task, Crew
from cognee.crewai import CogneeMemoryPlugin

# Add memory to CrewAI agents
memory_plugin = CogneeMemoryPlugin(user_id="crew-1")

<<<<<<< HEAD
agents = [
    Agent(
        role="Researcher",
        goal="Find and analyze information",
        memory=memory_plugin,
    ),
    Agent(
        role="Writer",
        goal="Create content based on research",
        memory=memory_plugin,
    ),
=======
đại  = [
Đại (
role="Nhà nghiên cứu",
target="Tìm và phân tích thông tin",
bộ nhớ=bộ nhớ_plugin,
),
Đại (
vai trò="Nhà văn",
target="Tạo nội dung dựa trên nghiên cứu",
bộ nhớ=bộ nhớ_plugin,
),
>>>>>>> 0f428019e6f21508f05fc402fc21585e618ed533
]

FastAPI Integration #

from fastapi import FastAPI
from cognee.fastapi import CogneeMiddleware

app = FastAPI()
app.add_middleware(CogneeMiddleware, user_id_header="X-User-ID")

@app.post("/chat")
async def chat(request: ChatRequest):
    # Memory is automatically managed per user
    response = await process_message(request.message)
    return {"response": response}

Comparison with Alternatives #

Tính năng Cognee Bộ nhớ LangChain Ghi nhớ0 Zep
Sơ đồ tri thức Không Một phần Không
Đa phương thức Không Không Một phần
Lý luận tạm thời Không Không Không
Tự động học Hướng dẫn sử dụng Một phần Một phần
Nguồn mở MIT Apache 2.0 Apache 2.0 AGPL-3.0
Triển khai Tự lưu trữ Tự lưu trữ Đám mây + Tự lưu trữ Đám mây + Tự lưu trữ
Sao 26K+ 95K+ 8K+ 5K+

Limitations #

1. Infrastructure Complexity #

Việc thiết lập Cognee yêu cầu chạy cơ sở dữ liệu Neo4j (hoặc kho lưu trữ đồ thị tương thích) cùng với bộ lưu trữ vectơ. Điều này làm tăng thêm chi phí hoạt động so với các giải pháp RAG đơn giản hơn chỉ hoạt động với mô hình nhúng.

2. Memory Growth Management #

Khi các tác nhân tích lũy kiến ​​thức, biểu đồ bộ nhớ sẽ phát triển. Nếu không có sự quản lý thích hợp, điều này có thể dẫn đến truy vấn chậm và tăng chi phí lưu trữ. Cognee cung cấp các tính năng TTL và hợp nhất, nhưng việc điều chỉnh chúng cho trường hợp sử dụng của bạn đòi hỏi phải thử nghiệm.

3. Entity Resolution Challenges #

Khi cùng một thực thể xuất hiện ở các dạng khác nhau (ví dụ: “Alice Smith” so với “A. Smith” so với “alice@example.com”), độ phân giải thực thể của Cognee không phải lúc nào cũng có thể hợp nhất chúng một cách chính xác. Đây là một thách thức cơ bản trong việc xây dựng biểu đồ tri thức đòi hỏi phải cấu hình cẩn thận.

4. Limited Non-Python Support #

Trong khi Cognee có ứng dụng khách TypeScript, thì việc phát triển chính và hỗ trợ cộng đồng lại tập trung vào Python. Người dùng không sử dụng Python có thể gặp phải những thiếu sót về tài liệu và ít ví dụ về mã hơn.

Sự tăng trưởng của Cognee phản ánh sự thay đổi rộng rãi hơn đối với các hệ thống AI có khả năng suy luận, bền bỉ. Khi các tổng đài viên chuyển từ các công cụ thực hiện một nhiệm vụ sang các trợ lý chạy lâu dài, khả năng ghi nhớ, học hỏi và suy luận qua các phiên trở nên cần thiết. Cách tiếp cận biểu đồ tri thức - kết hợp các mối quan hệ có cấu trúc với tìm kiếm ngữ nghĩa - thể hiện phương pháp thực hành tốt nhất mới nổi cho hệ thống bộ nhớ AI.

How We Collect This Data #

Phân tích này dựa trên thông tin có sẵn công khai từ kho lưu trữ Cognee GitHub kể từ ngày 30 tháng 6 năm 2026. Điểm chuẩn bộ nhớ được thực hiện trên tập dữ liệu gồm 10 nghìn tài liệu với 500 cuộc hội thoại mô phỏng của người dùng.

FAQ #

Q: What databases does Cognee support? #

Trả lời: Cognee hỗ trợ Neo4j, NebulaGraph và ArangoDB cho lớp biểu đồ tri thức. Để lưu trữ vector, nó hỗ trợ pgvector, Milvus và Qdrant. Lưu trữ tài liệu có thể là hệ thống tệp cục bộ, S3 hoặc bất kỳ kho lưu trữ đối tượng tương thích nào.

Q: Can I use Cognee with open-source LLMs? #

Đ: Vâng. Cognee không phân biệt mô hình và hoạt động với mọi mô hình nhúng hoặc LLM. Cấu hình mặc định sử dụng các mô hình nguồn mở và bạn có thể trao đổi trong các mô hình thương mại nếu cần.

Q: How does Cognee handle privacy? #

Đáp: Tất cả quá trình xử lý dữ liệu đều diễn ra trong cơ sở hạ tầng của bạn. Cognee không gửi bất kỳ dữ liệu nào đến các dịch vụ bên ngoài. Bạn kiểm soát quyền truy cập thông qua xác thực và ủy quyền tích hợp của cơ sở dữ liệu đồ thị.

Q: What’s the maximum memory size? #

A: Không có giới hạn cứng. Cognee được thiết kế để mở rộng theo chiều ngang — bạn có thể thêm nhiều nút cơ sở dữ liệu đồ thị và bộ lưu trữ vectơ khi bộ nhớ của bạn tăng lên. Trong quá trình sản xuất, chúng tôi đã thấy các hoạt động triển khai thành công với hơn 10 triệu mục nhập bộ nhớ.

Q: Does it support real-time memory updates? #

Đ: Vâng. Đường dẫn nhập của Cognee hỗ trợ cả chế độ hàng loạt và chế độ phát trực tuyến. Bạn có thể thêm kỷ niệm theo thời gian thực khi cuộc trò chuyện diễn ra và chúng sẽ có sẵn ngay lập tức cho các truy vấn.

Join the Community #

  • GitHub: topoteretes/cognee
  • Vấn đề: Báo cáo lỗi hoặc yêu cầu tính năng
  • Thảo luận: Chia sẻ kinh nghiệm và mẹo của bạn

More from Dibi8 #

Sources #


Bài viết này được nghiên cứu và viết bởi nhóm biên tập Dibi8 một cách độc lập. Chúng tôi có thể kiếm tiền hoa hồng từ các liên kết liên kết, nhưng điều này không ảnh hưởng đến tính độc lập biên tập của chúng tôi.

📦 Xuất hiện trong các bộ sưu tập

💬 Bình luận & Thảo luận