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.
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/.github/workflows/ci.yml +151 -150
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/.gitignore +24 -24
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/.pre-commit-config.yaml +47 -47
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/CHANGELOG.md +70 -70
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/Dockerfile +76 -76
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/LICENSE +20 -20
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/Makefile +131 -131
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/PKG-INFO +1 -1
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/README.md +531 -531
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/RUNNING_LOCALLY.md +429 -429
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/__init__.py +46 -46
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/_version.py +24 -24
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/benchmark.py +140 -140
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/cli.py +168 -168
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/decision.py +161 -161
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/eval.py +132 -132
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/explain.py +116 -116
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/manager.py +348 -348
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/models.py +172 -172
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/policy.py +131 -131
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/retriever.py +91 -91
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/sqlite_store.py +307 -307
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/store.py +366 -366
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/agent_memory/ttl.py +48 -48
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/benchmarks/README.md +13 -13
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/benchmarks/datasets/coding_agent.json +38 -38
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/benchmarks/datasets/customer_support.json +42 -42
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/benchmarks/datasets/research_agent.json +38 -38
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/docker-compose.yml +36 -36
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/docs/README.md +9 -9
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/docs/architecture.md +15 -15
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/docs/benchmarks.md +10 -10
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/docs/examples.md +3 -3
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/docs/faq.md +7 -7
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/docs/getting-started.md +27 -27
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/docs/memory-model.md +17 -17
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/docs/policies.md +16 -16
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/examples/basic_usage.py +49 -49
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/mcp_server/server.py +184 -184
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/pyproject.toml +57 -57
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/tests/__init__.py +1 -1
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/tests/test_backends.py +588 -588
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/tests/test_memory.py +109 -109
- {agent_memory_sdk-0.1.0 → agent_memory_sdk-0.1.2}/tests/test_v03.py +83 -83
- {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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
pip install
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
pip install
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
echo "
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
docker run --rm
|
|
105
|
-
docker run --rm -v agent_memory_data:/home/appuser/.agent_memory agent-memory:latest
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
docker run --rm -v agent_memory_chromadb:/home/appuser/.agent_memory agent-memory:latest
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
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
|