You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Refactor memory action management and enhance document event handling
- Introduced `apply_actions_to_text` function to streamline action application on memory text.
- Updated `MemoryActionManager` to utilize the new function for applying actions.
- Enhanced `CollectionMemoryManager` to read memory text safely with `read_memory_text_or_empty`.
- Added `apply_update_to_text` function for handling memory updates based on proposals.
- Expanded `WebhookEventModel` to include `DocumentEventModel` for better event handling.
- Implemented document event handling in `processor_request.py` to refresh memory on document updates and deletes.
- Updated tests to verify memory handling on document events and ensure proper memory state management.
- Modified `CollectionWorkspaceManager` to bootstrap only system prompts until memory is needed, improving initialization efficiency.
Copy file name to clipboardExpand all lines: docs/config.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -93,6 +93,7 @@ features:
93
93
94
94
runtime:
95
95
dry_run: false
96
+
collection_memory_document_title: MEMORY
96
97
tool_execution_max_rounds: 10
97
98
tool_execution_max_steps: 6
98
99
tool_execution_chunk_size: 2
@@ -231,6 +232,7 @@ Packaged prompts live under `src/outline_agent/assets/prompts/`, while user over
231
232
| Field | Required | Default | Purpose | Notes |
232
233
| --- | --- | --- | --- | --- |
233
234
| `runtime.dry_run` | No | `false` | Simulates side effects without mutating Outline state. | Useful for testing plans and prompts safely. |
235
+
| `runtime.collection_memory_document_title` | No | `MEMORY` | Title of the remote Outline document used for collection-wide memory. | The runtime lazily pulls this document on the first involved chat after startup, mirrors it into local `memory/MEMORY.md`, and only creates it on the first actual memory write. |
234
236
| `runtime.tool_execution_max_rounds` | No | `10` | Maximum number of planning/replanning rounds for one request. | Increase this for more complex tool-driven tasks. |
235
237
| `runtime.tool_execution_max_steps` | No | `6` | Maximum number of steps the planner may propose in one round. | This is the planner budget, not the total global task budget. |
236
238
| `runtime.tool_execution_chunk_size` | No | `2` | Number of planned steps actually executed before replanning. | Smaller chunks improve adaptability after partial failures. |
3. the remote collection memory document is created on demand or updated
230
+
4. the local cache `memory/MEMORY.md` is refreshed
231
+
5.`memory/index.json` is regenerated
213
232
214
233
This path is user-controlled and intentional.
215
234
@@ -219,8 +238,9 @@ After a successful reply:
219
238
220
239
1. the collection memory updater reviews the latest interaction
221
240
2. it proposes durable collection-level entries
222
-
3.`memory/MEMORY.md` is appended/updated
223
-
4.`memory/index.json` is regenerated
241
+
3. the remote collection memory document is created on demand or updated
242
+
4. the local cache `memory/MEMORY.md` is refreshed
243
+
5.`memory/index.json` is regenerated
224
244
225
245
This should only retain reusable cross-document/cross-thread memory.
226
246
@@ -328,7 +348,7 @@ These prompts still have important hard-coded protocol/skeleton pieces in code.
328
348
|`src/outline_agent/planning/tool_planner.py::UNIFIED_TOOL_PLANNER_SYSTEM_PROMPT`| protocol prompt | tool planner protocol/schema; policy addendum now comes from the internal prompt policy file / override path |
329
349
|`src/outline_agent/planning/tool_planner.py::_build_user_prompt`| user prompt template | provides tool catalog, work-dir inventory, prior rounds, document memory, attachments, and comment context |
330
350
|`src/outline_agent/state/workspace.py::INITIAL_SYSTEM_TEMPLATE`| initialization template | bootstrap template for collection `memory/00_SYSTEM.md`|
331
-
|`src/outline_agent/state/workspace.py::INITIAL_MEMORY_TEMPLATE`| initialization template |bootstrap template for collection `memory/MEMORY.md`|
351
+
|`src/outline_agent/state/workspace.py::INITIAL_MEMORY_TEMPLATE`| initialization template | template used when collection memory is first created locally/remotely|
332
352
|`src/outline_agent/state/workspace.py::INITIAL_DOCUMENT_MEMORY_TEMPLATE`| initialization template | bootstrap template for document `documents/<document_id>/MEMORY.md`|
0 commit comments