agent-memory-sdk 0.1.0__tar.gz → 0.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/.github/workflows/ci.yml +151 -150
  2. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/.gitignore +24 -24
  3. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/.pre-commit-config.yaml +47 -47
  4. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/CHANGELOG.md +70 -70
  5. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/Dockerfile +76 -76
  6. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/LICENSE +20 -20
  7. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/Makefile +131 -131
  8. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/PKG-INFO +1 -1
  9. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/README.md +531 -531
  10. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/RUNNING_LOCALLY.md +429 -429
  11. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/__init__.py +46 -46
  12. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/_version.py +24 -24
  13. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/benchmark.py +140 -140
  14. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/cli.py +168 -168
  15. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/decision.py +161 -161
  16. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/eval.py +132 -132
  17. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/explain.py +116 -116
  18. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/manager.py +348 -348
  19. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/models.py +172 -172
  20. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/policy.py +131 -131
  21. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/retriever.py +91 -91
  22. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/sqlite_store.py +307 -307
  23. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/store.py +366 -366
  24. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/ttl.py +48 -48
  25. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/benchmarks/README.md +13 -13
  26. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/benchmarks/datasets/coding_agent.json +38 -38
  27. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/benchmarks/datasets/customer_support.json +42 -42
  28. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/benchmarks/datasets/research_agent.json +38 -38
  29. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/docker-compose.yml +36 -36
  30. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/docs/README.md +9 -9
  31. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/docs/architecture.md +15 -15
  32. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/docs/benchmarks.md +10 -10
  33. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/docs/examples.md +3 -3
  34. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/docs/faq.md +7 -7
  35. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/docs/getting-started.md +27 -27
  36. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/docs/memory-model.md +17 -17
  37. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/docs/policies.md +16 -16
  38. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/examples/basic_usage.py +49 -49
  39. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/mcp_server/server.py +184 -184
  40. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/pyproject.toml +57 -57
  41. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/tests/__init__.py +1 -1
  42. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/tests/test_backends.py +588 -588
  43. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/tests/test_memory.py +109 -109
  44. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/tests/test_v03.py +83 -83
  45. {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/mcp_server/__init__.py +0 -0
@@ -1,151 +1,152 @@
1
- name: CI
2
-
3
- on:
4
- push:
5
- branches: [main, develop]
6
- pull_request:
7
- branches: [main, develop]
8
-
9
- jobs:
10
- test:
11
- runs-on: ubuntu-latest
12
- strategy:
13
- matrix:
14
- python-version: ["3.10", "3.11", "3.12", "3.13"]
15
-
16
- steps:
17
- - uses: actions/checkout@v4.2.2
18
-
19
- - name: Set up Python ${{ matrix.python-version }}
20
- uses: actions/setup-python@v5.5.0
21
- with:
22
- python-version: ${{ matrix.python-version }}
23
- cache: "pip"
24
-
25
- - name: Install dependencies
26
- run: |
27
- python -m pip install --upgrade pip
28
- pip install -e ".[dev]"
29
-
30
- - name: Run tests
31
- run: |
32
- python -m pytest tests/ -v --tb=short
33
-
34
- - name: Run type checking
35
- run: |
36
- pip install mypy
37
- mypy agent_memory/ --ignore-missing-imports || true
38
-
39
- - name: Run linting
40
- run: |
41
- pip install ruff
42
- ruff check agent_memory/ tests/
43
-
44
- benchmark:
45
- runs-on: ubuntu-latest
46
- needs: test
47
- if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/'))
48
-
49
- steps:
50
- - uses: actions/checkout@v4.2.2
51
-
52
- - name: Set up Python
53
- uses: actions/setup-python@v5.5.0
54
- with:
55
- python-version: "3.11"
56
- cache: "pip"
57
-
58
- - name: Install dependencies
59
- run: |
60
- python -m pip install --upgrade pip
61
- pip install -e ".[dev]"
62
-
63
- - name: Run benchmark
64
- run: |
65
- agent-memory benchmark --seed --repeat 3
66
-
67
- - name: Run evaluation
68
- run: |
69
- agent-memory eval
70
-
71
- docker:
72
- runs-on: ubuntu-latest
73
- needs: test
74
-
75
- steps:
76
- - uses: actions/checkout@v4.2.2
77
- with:
78
- fetch-depth: 0 # Need full history for version detection
79
-
80
- - name: Build Docker image
81
- run: |
82
- echo "GITHUB_REF_NAME=${GITHUB_REF_NAME}"
83
- echo "GITHUB_REF=${GITHUB_REF}"
84
-
85
- # Generate a valid PEP 440 version
86
- if [[ "${GITHUB_REF}" == refs/tags/* ]]; then
87
- # For tags, use the tag name (strip 'v' prefix if present) - clean version for PyPI
88
- VERSION=${GITHUB_REF_NAME#v}
89
- elif [[ "${GITHUB_REF_NAME}" == "main" ]]; then
90
- # For main branch, use a dev version with commit SHA (PEP 440 compliant)
91
- VERSION="0.0.0.dev0+$(git rev-parse --short HEAD)"
92
- else
93
- # For other branches, use branch name sanitized + commit SHA (PEP 440 compliant)
94
- BRANCH=$(echo "${GITHUB_REF_NAME}" | sed 's/[^a-zA-Z0-9]/-/g')
95
- VERSION="0.0.0.dev0+${BRANCH}.$(git rev-parse --short HEAD)"
96
- fi
97
-
98
- echo "VERSION=${VERSION}"
99
- docker build --build-arg VERSION="${VERSION}" -t agent-memory:latest .
100
-
101
- - name: Test Docker image with SQLite backend
102
- run: |
103
- docker run --rm agent-memory:latest --help
104
- docker run --rm -v agent_memory_data:/home/appuser/.agent_memory agent-memory:latest remember "test" "test response"
105
- docker run --rm -v agent_memory_data:/home/appuser/.agent_memory agent-memory:latest resolve "test"
106
-
107
- - name: Test Docker image with ChromaDB backend
108
- run: |
109
- docker run --rm -v agent_memory_chromadb:/home/appuser/.agent_memory agent-memory:latest remember "test" "test response" --backend chromadb
110
- docker run --rm -v agent_memory_chromadb:/home/appuser/.agent_memory agent-memory:latest resolve "test" --backend chromadb
111
-
112
- publish:
113
- runs-on: ubuntu-latest
114
- needs: [test, benchmark]
115
- if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
116
- permissions:
117
- contents: read
118
- packages: write
119
- id-token: write
120
-
121
- steps:
122
- - uses: actions/checkout@v4.2.2
123
-
124
- - name: Set up Python
125
- uses: actions/setup-python@v5.5.0
126
- with:
127
- python-version: "3.11"
128
-
129
- - name: Install build dependencies
130
- run: |
131
- python -m pip install --upgrade pip build twine
132
-
133
- - name: Build package
134
- run: |
135
- # For tag releases, use clean version without local identifier
136
- VERSION=${GITHUB_REF_NAME#v}
137
- SETUPTOOLS_SCM_PRETEND_VERSION=${VERSION} python -m build
138
-
139
- - name: Publish to PyPI
140
- env:
141
- TWINE_USERNAME: __token__
142
- TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
143
- run: |
144
- twine upload dist/*
145
-
146
- - name: Create GitHub Release
147
- uses: softprops/action-gh-release@v2
148
- with:
149
- generate_release_notes: true
150
- env:
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main, develop]
6
+ tags: ['v*']
7
+ pull_request:
8
+ branches: [main, develop]
9
+
10
+ jobs:
11
+ test:
12
+ runs-on: ubuntu-latest
13
+ strategy:
14
+ matrix:
15
+ python-version: ["3.10", "3.11", "3.12", "3.13"]
16
+
17
+ steps:
18
+ - uses: actions/checkout@v4.2.2
19
+
20
+ - name: Set up Python ${{ matrix.python-version }}
21
+ uses: actions/setup-python@v5.5.0
22
+ with:
23
+ python-version: ${{ matrix.python-version }}
24
+ cache: "pip"
25
+
26
+ - name: Install dependencies
27
+ run: |
28
+ python -m pip install --upgrade pip
29
+ pip install -e ".[dev]"
30
+
31
+ - name: Run tests
32
+ run: |
33
+ python -m pytest tests/ -v --tb=short
34
+
35
+ - name: Run type checking
36
+ run: |
37
+ pip install mypy
38
+ mypy agent_memory/ --ignore-missing-imports || true
39
+
40
+ - name: Run linting
41
+ run: |
42
+ pip install ruff
43
+ ruff check agent_memory/ tests/
44
+
45
+ benchmark:
46
+ runs-on: ubuntu-latest
47
+ needs: test
48
+ if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/'))
49
+
50
+ steps:
51
+ - uses: actions/checkout@v4.2.2
52
+
53
+ - name: Set up Python
54
+ uses: actions/setup-python@v5.5.0
55
+ with:
56
+ python-version: "3.11"
57
+ cache: "pip"
58
+
59
+ - name: Install dependencies
60
+ run: |
61
+ python -m pip install --upgrade pip
62
+ pip install -e ".[dev]"
63
+
64
+ - name: Run benchmark
65
+ run: |
66
+ agent-memory benchmark --seed --repeat 3
67
+
68
+ - name: Run evaluation
69
+ run: |
70
+ agent-memory eval
71
+
72
+ docker:
73
+ runs-on: ubuntu-latest
74
+ needs: test
75
+
76
+ steps:
77
+ - uses: actions/checkout@v4.2.2
78
+ with:
79
+ fetch-depth: 0 # Need full history for version detection
80
+
81
+ - name: Build Docker image
82
+ run: |
83
+ echo "GITHUB_REF_NAME=${GITHUB_REF_NAME}"
84
+ echo "GITHUB_REF=${GITHUB_REF}"
85
+
86
+ # Generate a valid PEP 440 version
87
+ if [[ "${GITHUB_REF}" == refs/tags/* ]]; then
88
+ # For tags, use the tag name (strip 'v' prefix if present) - clean version for PyPI
89
+ VERSION=${GITHUB_REF_NAME#v}
90
+ elif [[ "${GITHUB_REF_NAME}" == "main" ]]; then
91
+ # For main branch, use a dev version with commit SHA (PEP 440 compliant)
92
+ VERSION="0.0.0.dev0+$(git rev-parse --short HEAD)"
93
+ else
94
+ # For other branches, use branch name sanitized + commit SHA (PEP 440 compliant)
95
+ BRANCH=$(echo "${GITHUB_REF_NAME}" | sed 's/[^a-zA-Z0-9]/-/g')
96
+ VERSION="0.0.0.dev0+${BRANCH}.$(git rev-parse --short HEAD)"
97
+ fi
98
+
99
+ echo "VERSION=${VERSION}"
100
+ docker build --build-arg VERSION="${VERSION}" -t agent-memory:latest .
101
+
102
+ - name: Test Docker image with SQLite backend
103
+ run: |
104
+ docker run --rm agent-memory:latest --help
105
+ docker run --rm -v agent_memory_data:/home/appuser/.agent_memory agent-memory:latest remember "test" "test response"
106
+ docker run --rm -v agent_memory_data:/home/appuser/.agent_memory agent-memory:latest resolve "test"
107
+
108
+ - name: Test Docker image with ChromaDB backend
109
+ run: |
110
+ docker run --rm -v agent_memory_chromadb:/home/appuser/.agent_memory agent-memory:latest remember "test" "test response" --backend chromadb
111
+ docker run --rm -v agent_memory_chromadb:/home/appuser/.agent_memory agent-memory:latest resolve "test" --backend chromadb
112
+
113
+ publish:
114
+ runs-on: ubuntu-latest
115
+ needs: [test, benchmark]
116
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
117
+ permissions:
118
+ contents: write
119
+ packages: write
120
+ id-token: write
121
+
122
+ steps:
123
+ - uses: actions/checkout@v4.2.2
124
+
125
+ - name: Set up Python
126
+ uses: actions/setup-python@v5.5.0
127
+ with:
128
+ python-version: "3.11"
129
+
130
+ - name: Install build dependencies
131
+ run: |
132
+ python -m pip install --upgrade pip build twine
133
+
134
+ - name: Build package
135
+ run: |
136
+ # For tag releases, use clean version without local identifier
137
+ VERSION=${GITHUB_REF_NAME#v}
138
+ SETUPTOOLS_SCM_PRETEND_VERSION=${VERSION} python -m build
139
+
140
+ - name: Publish to PyPI
141
+ env:
142
+ TWINE_USERNAME: __token__
143
+ TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
144
+ run: |
145
+ twine upload dist/*
146
+
147
+ - name: Create GitHub Release
148
+ uses: softprops/action-gh-release@v2
149
+ with:
150
+ generate_release_notes: true
151
+ env:
151
152
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -1,24 +1,24 @@
1
- # Python
2
- __pycache__/
3
- *.py[cod]
4
- *.egg-info/
5
- .venv/
6
- venv/
7
- .env
8
-
9
- # Chroma / memory data
10
- .agent_memory/
11
- .agent_memory_demo/
12
-
13
- # IDE
14
- .idea/
15
- .vscode/
16
-
17
- # Test / build
18
- .pytest_cache/
19
- dist/
20
- build/
21
-
22
- .agent_memory/
23
- .agent_memory_demo/
24
- .pytest_cache/
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *.egg-info/
5
+ .venv/
6
+ venv/
7
+ .env
8
+
9
+ # Chroma / memory data
10
+ .agent_memory/
11
+ .agent_memory_demo/
12
+
13
+ # IDE
14
+ .idea/
15
+ .vscode/
16
+
17
+ # Test / build
18
+ .pytest_cache/
19
+ dist/
20
+ build/
21
+
22
+ .agent_memory/
23
+ .agent_memory_demo/
24
+ .pytest_cache/
@@ -1,48 +1,48 @@
1
- # Pre-commit hooks for Agent Memory
2
- # Install: pip install pre-commit && pre-commit install
3
-
4
- repos:
5
- # Ruff - Fast Python linter and formatter
6
- - repo: https://github.com/astral-sh/ruff-pre-commit
7
- rev: v0.5.0
8
- hooks:
9
- - id: ruff
10
- args: [--fix, --exit-non-zero-on-fix]
11
- - id: ruff-format
12
-
13
- # MyPy - Static type checking
14
- - repo: https://github.com/pre-commit/mirrors-mypy
15
- rev: v1.10.0
16
- hooks:
17
- - id: mypy
18
- additional_dependencies: [types-requests, pydantic, chromadb]
19
- args: [--ignore-missing-imports, agent_memory/]
20
-
21
- # Check for common issues
22
- - repo: https://github.com/pre-commit/pre-commit-hooks
23
- rev: v4.6.0
24
- hooks:
25
- - id: trailing-whitespace
26
- - id: end-of-file-fixer
27
- - id: check-yaml
28
- - id: check-toml
29
- - id: check-json
30
- - id: check-merge-conflict
31
- - id: debug-logger
32
- - id: detect-private-key
33
-
34
- # Bandit - Security linting
35
- - repo: https://github.com/PyCQA/bandit
36
- rev: 1.7.8
37
- hooks:
38
- - id: bandit
39
- args: [-r, agent_memory/, -ll]
40
- exclude: tests/
41
-
42
- # Check for TODO/FIXME comments
43
- - repo: https://github.com/pre-commit/pre-commit-hooks
44
- rev: v4.6.0
45
- hooks:
46
- - id: check-case-conflict
47
- - id: mixed-line-ending
1
+ # Pre-commit hooks for Agent Memory
2
+ # Install: pip install pre-commit && pre-commit install
3
+
4
+ repos:
5
+ # Ruff - Fast Python linter and formatter
6
+ - repo: https://github.com/astral-sh/ruff-pre-commit
7
+ rev: v0.5.0
8
+ hooks:
9
+ - id: ruff
10
+ args: [--fix, --exit-non-zero-on-fix]
11
+ - id: ruff-format
12
+
13
+ # MyPy - Static type checking
14
+ - repo: https://github.com/pre-commit/mirrors-mypy
15
+ rev: v1.10.0
16
+ hooks:
17
+ - id: mypy
18
+ additional_dependencies: [types-requests, pydantic, chromadb]
19
+ args: [--ignore-missing-imports, agent_memory/]
20
+
21
+ # Check for common issues
22
+ - repo: https://github.com/pre-commit/pre-commit-hooks
23
+ rev: v4.6.0
24
+ hooks:
25
+ - id: trailing-whitespace
26
+ - id: end-of-file-fixer
27
+ - id: check-yaml
28
+ - id: check-toml
29
+ - id: check-json
30
+ - id: check-merge-conflict
31
+ - id: debug-logger
32
+ - id: detect-private-key
33
+
34
+ # Bandit - Security linting
35
+ - repo: https://github.com/PyCQA/bandit
36
+ rev: 1.7.8
37
+ hooks:
38
+ - id: bandit
39
+ args: [-r, agent_memory/, -ll]
40
+ exclude: tests/
41
+
42
+ # Check for TODO/FIXME comments
43
+ - repo: https://github.com/pre-commit/pre-commit-hooks
44
+ rev: v4.6.0
45
+ hooks:
46
+ - id: check-case-conflict
47
+ - id: mixed-line-ending
48
48
  args: [--fix=lf]
@@ -1,71 +1,71 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [Unreleased]
9
-
10
- ### Added
11
- - SQLite backend (`SqliteMemoryStore`) as default lightweight storage
12
- - Async API support (`aremember`, `aresolve`, `alist`, `aget`, `aforget`, `aarchive`, `acleanup`, `astats`, `aconsolidate`)
13
- - Backend selection via `backend` parameter in `Memory` constructor (`"chromadb"` or `"sqlite"`)
14
- - Comprehensive test coverage for both ChromaDB and SQLite backends
15
- - Package distribution configuration (wheel, sdist)
16
- - Docker support with both backends
17
-
18
- ### Changed
19
- - **Default backend changed from ChromaDB to SQLite** for lightweight deployments
20
- - Version bumped to `0.1.0-alpha` (was incorrectly `0.3.0` in code/docs)
21
- - Updated roadmap to reflect completed features
22
-
23
- ### Fixed
24
- - Version inconsistency across `pyproject.toml`, `agent_memory/__init__.py`, and `README.md`
25
- - Clean code principles and SOLID OOP compliance across all modules
26
-
27
- ## [0.1.0-alpha] - 2026-06-28
28
-
29
- ### Added
30
- - Initial release of Agent Memory
31
- - Decision-based memory layer (Replay / Restore / Verify / None)
32
- - Hybrid retrieval: BM25 keyword search + Vector semantic search with RRF fusion
33
- - Multi-factor scoring policy (semantic 70%, recency 15%, confidence 20%, frequency 10%)
34
- - Structured memory with types (conversation, fact, workflow, document, tool_output, code, summary, preference)
35
- - Scoped memory (session, user, project, workspace, team, global)
36
- - TTL support with flexible duration strings (e.g., "30d", "2h")
37
- - Full observability via `decision.explain()`
38
- - CLI with remember, resolve, stats, benchmark, eval, cleanup commands
39
- - MCP server integration for Cursor, VS Code, and other MCP clients
40
- - Docker support with multi-stage build
41
- - Comprehensive documentation (architecture, benchmarks, examples, FAQ, getting started, memory model, policies)
42
- - Benchmark and evaluation datasets (coding_agent, customer_support, research_agent)
43
- - CI/CD pipeline with GitHub Actions
44
- - Pre-commit hooks (ruff, mypy, black)
45
-
46
- ### Security
47
- - No known vulnerabilities
48
-
49
- ---
50
-
51
- ## Release Notes Template
52
-
53
- ### [X.Y.Z] - YYYY-MM-DD
54
-
55
- #### Added
56
- - New features
57
-
58
- #### Changed
59
- - Changes in existing functionality
60
-
61
- #### Deprecated
62
- - Soon-to-be removed features
63
-
64
- #### Removed
65
- - Removed features
66
-
67
- #### Fixed
68
- - Bug fixes
69
-
70
- #### Security
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ### Added
11
+ - SQLite backend (`SqliteMemoryStore`) as default lightweight storage
12
+ - Async API support (`aremember`, `aresolve`, `alist`, `aget`, `aforget`, `aarchive`, `acleanup`, `astats`, `aconsolidate`)
13
+ - Backend selection via `backend` parameter in `Memory` constructor (`"chromadb"` or `"sqlite"`)
14
+ - Comprehensive test coverage for both ChromaDB and SQLite backends
15
+ - Package distribution configuration (wheel, sdist)
16
+ - Docker support with both backends
17
+
18
+ ### Changed
19
+ - **Default backend changed from ChromaDB to SQLite** for lightweight deployments
20
+ - Version bumped to `0.1.0-alpha` (was incorrectly `0.3.0` in code/docs)
21
+ - Updated roadmap to reflect completed features
22
+
23
+ ### Fixed
24
+ - Version inconsistency across `pyproject.toml`, `agent_memory/__init__.py`, and `README.md`
25
+ - Clean code principles and SOLID OOP compliance across all modules
26
+
27
+ ## [0.1.0-alpha] - 2026-06-28
28
+
29
+ ### Added
30
+ - Initial release of Agent Memory
31
+ - Decision-based memory layer (Replay / Restore / Verify / None)
32
+ - Hybrid retrieval: BM25 keyword search + Vector semantic search with RRF fusion
33
+ - Multi-factor scoring policy (semantic 70%, recency 15%, confidence 20%, frequency 10%)
34
+ - Structured memory with types (conversation, fact, workflow, document, tool_output, code, summary, preference)
35
+ - Scoped memory (session, user, project, workspace, team, global)
36
+ - TTL support with flexible duration strings (e.g., "30d", "2h")
37
+ - Full observability via `decision.explain()`
38
+ - CLI with remember, resolve, stats, benchmark, eval, cleanup commands
39
+ - MCP server integration for Cursor, VS Code, and other MCP clients
40
+ - Docker support with multi-stage build
41
+ - Comprehensive documentation (architecture, benchmarks, examples, FAQ, getting started, memory model, policies)
42
+ - Benchmark and evaluation datasets (coding_agent, customer_support, research_agent)
43
+ - CI/CD pipeline with GitHub Actions
44
+ - Pre-commit hooks (ruff, mypy, black)
45
+
46
+ ### Security
47
+ - No known vulnerabilities
48
+
49
+ ---
50
+
51
+ ## Release Notes Template
52
+
53
+ ### [X.Y.Z] - YYYY-MM-DD
54
+
55
+ #### Added
56
+ - New features
57
+
58
+ #### Changed
59
+ - Changes in existing functionality
60
+
61
+ #### Deprecated
62
+ - Soon-to-be removed features
63
+
64
+ #### Removed
65
+ - Removed features
66
+
67
+ #### Fixed
68
+ - Bug fixes
69
+
70
+ #### Security
71
71
  - Security fixes