Repository navigation
v0.4.0 — BSL 1.1 license; the distillation model never gets tools; L1 supersedes out-of-date memories
Before you upgrade
Warning
1. The license changes. From 0.4.0 the server is licensed under the Business Source License 1.1 (#48).
- Free: evaluation, development and testing; personal and non-profit use; and production use by an organization with at most 1 department and 10 members across all its deployments.
- Commercial license required: larger production use, or offering AgentMemory as a hosted service.
- Each version becomes Apache 2.0 four years after its release. The
amemclient and the plugins stay MIT, and 0.3.2 and earlier remain MIT. - See COMMERCIAL.md.
2. memory-core refuses to start when AGENT_MEMORY_LLM_CLI_ARGS grants the distillation CLI capability (#47). The refused arguments include:
--dangerously-*,--yolo,--allowedTools,--mcp-config, a permissive--permission-mode;- codex
--enable,--search,--profile, a sandbox other thanread-only; - codex
-csettings that add MCP servers, web search, features or approval.
The error names the argument. Remove it before upgrading.
3. The distillation codex no longer reads config.toml. Move the settings it needs into -c arguments.
git fetch --tags && git checkout v0.4.0
./upgrade.shupgrade.sh builds the new version and checks your configuration before starting it. If the check, the build or the start fails, it restores .env and brings the previous version back on its previous image. No data migration is needed in this release. Then update amem on each client (REMOTE-CLIENTS §4).
Details: UPGRADE → To 0.4.0.
What's new
The distillation model gets no tools (#47, the direction agreed in #37). Distillation reads untrusted conversation text.
-
Agent CLIs. memory-core turns off their own tools before they read a prompt (
llm.cli.hardening, defaultauto):clauderuns with 0 tools and no MCP servers;codexruns with its connectors, plugins, shell, code execution, browsing and web search off, a read-only sandbox, and--ignore-user-config.
Every CLI is told it has no tools. See DISTILLATION §6.
-
Self-hosted models. A reply that is only a tool call fails with the new code
LLM_TOOL_REQUESTand is dropped without retries, like a refused CLI call. An answer next to a stray tool call is kept. -
memory-server check-configvalidates the configuration without starting the server. -
upgrade.shrolls back on any failure between the backup and a healthy new version. -
Fix: the Docker build could ship the previous binary when the sources came from an archive.
Memory that keeps up with the conversation (#49, @blackhorseya, closes #43).
- L1 now sees the session's recent memories, so a later turn can mark an out-of-date one (
supersedes) and rewrite it in place. - L2 writes scenes as the current state, not as a change log.
Docs (#45, #46): README badges, the new logo, a clearer introduction, and this CHANGELOG.
Thanks to @blackhorseya for #49, for four careful review rounds on #47 (ten findings, all fixed), and for agreeing to the license change.
All changes since v0.3.2: #45, #46, #48, #49, #47, the release PR #50, and a README update on main. Compare v0.3.2…v0.4.0
升級前請先看
Warning
1. 授權變更。 從 0.4.0 開始,server 端改用 Business Source License 1.1(#48)。
- 免費: 評估、開發與測試;個人與非營利使用;以及所有部署合計最多 1 個部門、10 位成員的組織用於正式環境。
- 需要商業授權: 更大規模的正式環境使用,或把 AgentMemory 做成託管服務提供給他人。
- 每個版本發布滿四年後轉為 Apache 2.0。
amemclient 和各工具的 plugin 維持 MIT,0.3.2 以前的版本也維持 MIT。 - 詳見 COMMERCIAL.zh-tw.md。
2. 只要 AGENT_MEMORY_LLM_CLI_ARGS 讓蒸餾用的 CLI 拿到額外能力,memory-core 就不會啟動(#47)。會被拒絕的參數包括:
--dangerously-*、--yolo、--allowedTools、--mcp-config、寬鬆的--permission-mode;- codex 的
--enable、--search、--profile、read-only以外的 sandbox; - 會加入 MCP server、網路搜尋、feature 或 approval 的 codex
-c設定。
錯誤訊息會指出是哪個參數,升級前請先拿掉。
3. 蒸餾用的 codex 不再讀 config.toml。 需要的設定請改放到 -c 參數。
git fetch --tags && git checkout v0.4.0
./upgrade.shupgrade.sh 會先建置新版本並檢查你的設定,通過後才啟動。如果檢查、建置或啟動失敗,會還原 .env,並用原本的 image 重新執行舊版本。這一版不需要遷移資料。升級後請更新每台 client 的 amem(REMOTE-CLIENTS 第 4 節)。
新功能
蒸餾模型不會拿到任何工具(#47,依照 #37 討論出的方向)。蒸餾讀的是不可信的對話內容。
-
Agent CLI: memory-core 會在它們讀到 prompt 之前,先關掉它們自帶的工具(
llm.cli.hardening,預設auto):claude以 0 個工具、不載入 MCP server 的狀態執行;codex關掉 connector、plugin、shell、程式執行、瀏覽和網路搜尋,使用唯讀 sandbox,並加上--ignore-user-config。
每個 CLI 也都會被告知它沒有工具。詳見 DISTILLATION 第 6 節。
-
自架模型: 回應只有工具呼叫時,以新的錯誤代碼
LLM_TOOL_REQUEST失敗,直接 drop、不重試,和 CLI 的工具被拒絕一樣。答案旁邊順帶出現的工具呼叫會被拿掉,答案本身照常使用。 -
memory-server check-config: 只檢查設定,不啟動 server。 -
upgrade.sh會自動還原: 從備份之後到新版本健康檢查通過之前,任何一步失敗都會還原。 -
修正: 原始碼來自壓縮檔時,Docker 建置可能沿用舊的執行檔。
記憶會跟上對話的最新狀態(#49,@blackhorseya,修正 #43)。
- L1 抽取時會看到這個 session 最近的記憶,後面的對話可以把過時的那筆標記出來(
supersedes),就地改寫。 - L2 把場景寫成目前的狀態,不再寫成變更紀錄。
文件(#45、#46):README 的 badge、新 logo、更清楚的介紹,以及這份 CHANGELOG。
感謝 @blackhorseya 貢獻 #49,對 #47 做了四輪仔細的 review(共 10 點,全部已修正),也同意這次的授權變更。
v0.3.2 之後的所有變更: #45、#46、#48、#49、#47、release PR #50,以及 main 上一次 README 更新。比較 v0.3.2…v0.4.0