topoteretes--cognee
c889a57b6b
Test Suites / Build CI Environment (push) Has been cancelled
Test Suites / Basic Tests (push) Has been cancelled
Test Suites / End-to-End Tests (push) Has been cancelled
Test Suites / CLI Tests (push) Has been cancelled
Test Suites / Slow End-to-End Tests (push) Has been cancelled
Test Suites / Graph Database Tests (push) Has been cancelled
Test Suites / Vector DB Tests (push) Has been cancelled
Test Suites / Temporal Graph Test (push) Has been cancelled
Test Suites / Search Test on Different DBs (push) Has been cancelled
Test Suites / Example Tests (push) Has been cancelled
Test Suites / Notebook Tests (push) Has been cancelled
Test Suites / OS and Python Tests Ubuntu (push) Has been cancelled
Test Suites / OS and Python Tests Extended (push) Has been cancelled
Test Suites / LLM Test Suite (push) Has been cancelled
Test Suites / S3 File Storage Test (push) Has been cancelled
Test Suites / Run Integration Tests (push) Has been cancelled
Test Suites / MCP Tests (push) Has been cancelled
Test Suites / Docker Compose Test (push) Has been cancelled
Test Suites / Docker CI test (push) Has been cancelled
Test Suites / Relational DB Migration Tests (push) Has been cancelled
Test Suites / Distributed Cognee Test (push) Has been cancelled
Test Suites / DB Examples Tests (push) Has been cancelled
Test Suites / Test Completion Status (push) Has been cancelled
Test Suites / Claude Code Review (push) Has been cancelled
Test Suites / basic checks (push) Has been cancelled
build | Build and Push Cognee MCP Docker Image to dockerhub / docker-build-and-push (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
build | Build and Push Docker Image to dockerhub / docker-build-and-push (push) Has been cancelled
Weighted Edges Tests / Test Weighted Edges Core Functionality (3.11) (push) Has been cancelled
Weighted Edges Tests / Test Weighted Edges Core Functionality (3.12) (push) Has been cancelled
Weighted Edges Tests / Test Weighted Edges with Different Graph Databases (kuzu, kuzu) (push) Has been cancelled
Weighted Edges Tests / Test Weighted Edges with Different Graph Databases (neo4j, neo4j) (push) Has been cancelled
Weighted Edges Tests / Test Weighted Edges Examples (push) Has been cancelled
Weighted Edges Tests / Code Quality for Weighted Edges (push) Has been cancelled
121 行
3.9 KiB
Markdown
121 行
3.9 KiB
Markdown
# Coding Agents
|
|
|
|
## Overview
|
|
|
|
The coding agents module provides utilities for extracting developer coding rules and best practices from text and associating them with their original sources in Cognee’s knowledge graph. It uses LLM-powered structured extraction to identify rules from conversations, documentation, or commit messages.
|
|
|
|
> [!NOTE]
|
|
> This module runs **automatically** in `cognee.memify()` (the enrichment pipeline), but is **not** enabled by default in the standard `cognee.cognify()` pipeline.
|
|
|
|
**Pipeline Position:** ingestion → graph extraction → **coding rule association** → storage / indexing
|
|
|
|
## Components
|
|
|
|
### Functions
|
|
|
|
| Function | Description |
|
|
|----------|-------------|
|
|
| `add_rule_associations(data, rules_nodeset_name, ...)` | Extracts rules via LLM from the `data`, adds them to the graph, and creates source links.|
|
|
| `get_existing_rules(rules_nodeset_name)` | Retrieves existing rules from the graph for a specific nodeset |
|
|
| `get_origin_edges(data, rules)` | Searches for the original `DocumentChunk` that matches the input `data` and creates `rule_associated_from` edges linking the new `Rule` nodes to that source chunk. |
|
|
|
|
### Data Models (extend `DataPoint`)
|
|
|
|
#### `Rule`
|
|
Represents a single extracted developer rule.
|
|
|
|
| Field | Type | Description |
|
|
|-------|------|-------------|
|
|
| `text` | `str` | The coding rule text content. |
|
|
| `belongs_to_set` | `NodeSet` | Reference to the parent `NodeSet` (e.g., "coding_agent_rules"). |
|
|
| `metadata` | `dict` | Indexing configuration (indexes `rule` field). |
|
|
|
|
#### `RuleSet`
|
|
A collection of rules extracted in a single pass.
|
|
|
|
| Field | Type | Description |
|
|
|-------|------|-------------|
|
|
| `rules` | `List[Rule]` | List of extracted `Rule` objects. |
|
|
|
|
|
|
## Usage
|
|
|
|
### Automatic (via Memify)
|
|
|
|
The `memify` pipeline includes rule associations by default.
|
|
|
|
```python
|
|
import cognee
|
|
from cognee.tasks.codingagents.coding_rule_associations import get_existing_rules
|
|
|
|
|
|
await cognee.add(["agent.md"])# Add data (text or file paths)
|
|
await cognee.cognify() # Create Knowledge Graph
|
|
await cognee.memify()# Enrich Graph (Extract Rules automatically)
|
|
|
|
rules = await get_existing_rules("coding_agent_rules")
|
|
if rules:
|
|
for rule in rules:
|
|
print(f"{rule}")
|
|
```
|
|
|
|
### Manual Rule Association
|
|
|
|
You can run the task directly on specific data.
|
|
|
|
```python
|
|
from cognee.tasks.codingagents.coding_rule_associations import add_rule_associations
|
|
|
|
await add_rule_associations(
|
|
data="Always use type hints in Python functions.",
|
|
rules_nodeset_name="coding_agent_rules"
|
|
)
|
|
```
|
|
|
|
### Retrieval
|
|
|
|
```python
|
|
from cognee.tasks.codingagents.coding_rule_associations import get_existing_rules
|
|
|
|
rules = await get_existing_rules("coding_agent_rules")
|
|
for rule in rules:
|
|
print(f"{rule}")
|
|
```
|
|
|
|
### Advanced: Manual Graph Construction
|
|
|
|
You can manually create `Rule` objects and link them to content using `get_origin_edges` if you want to bypass the LLM extraction.
|
|
```python
|
|
from cognee.tasks.codingagents.coding_rule_associations import Rule, get_origin_edges
|
|
|
|
# 1. Define your rule (the abstract guideline)
|
|
rule = Rule(text="Use snake_case for function names.")
|
|
|
|
# 2. Link it to the source (the text that implies the rule)
|
|
# 'data' is used to find the original document chunk in the graph
|
|
edges = await get_origin_edges(
|
|
data="We strictly follow PEP8. Function names must use snake_case.",
|
|
rules=[rule]
|
|
)
|
|
```
|
|
|
|
## Configuration
|
|
|
|
**Environment Variables:**
|
|
|
|
| Variable | Description |
|
|
|----------|-------------|
|
|
| `LLM_API_KEY` | API key for LLM provider (required) |
|
|
| `LLM_PROVIDER` | Provider name (default: openai) |
|
|
| `LLM_MODEL` | Model name |
|
|
|
|
## Dependencies
|
|
|
|
**Internal:** `cognee.infrastructure.databases.graph`, `cognee.infrastructure.databases.vector`, `cognee.infrastructure.llm`, `cognee.modules.engine.models`
|
|
|
|
**External:** `pydantic`, LLM provider
|
|
|
|
## Related
|
|
|
|
- [cognee docs](https://docs.cognee.ai) | [Ingestion](../ingestion/) | [Graph](../graph/)
|