-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Description
Problem
Two systems in Data Machine have the concept of "disabling" items at a scoped level:
- Tools — AI steps can disable specific tools via
disabled_toolsin pipeline step config. The ConfigureStepModal has a tool toggle UI. - Memory files — Currently no way to disable/suppress memory files at the pipeline or flow level. Core memory files always inject. Pipeline/flow memory files are opt-in (additive), but there's no way to say "don't inject this file for this flow."
These are conceptually the same pattern: a set of available items, with scope-level overrides that suppress specific items.
Proposed
Abstract the disablement pattern into a generic system that both memory files and tools can use:
The pattern
Available items (global) → Scope overrides (disabled list) → Effective items
For tools:
All registered tools → disabled_tools on pipeline step → Tools sent to AI
For memory files:
Core + pipeline + flow memory files → disabled_memory_files on flow → Files injected
Implementation options
Option A: Generic DisabledItems config pattern
- Store
disabled_memory_filesin flow_config (likedisabled_toolsin step config) - Directives check the disabled list before injecting
- UI pattern: same toggle/checkbox approach as tool disablement
Option B: Shared ScopeOverrides system
- A general-purpose system for "at scope X, disable items Y from set Z"
- Could be used by tools, memory files, and future features (handlers, providers, etc.)
- More ambitious but prevents reinventing the pattern each time
Key consideration
The disablement needs to work across priority boundaries:
- Core memory files inject at priority 20
- Pipeline memory files at 40
- Flow memory files at 45
- A flow-level
disabled_memory_filesconfig needs to suppress files injected by earlier priorities
This likely means the disablement check needs to happen at a coordination point (e.g., PromptBuilder) rather than in each individual directive. Or directives check a shared payload key.
Related
- Feature: Flow-scoped memory files #471 (flow-scoped memory files)
- Feature: Extensible core memory file registry #501 (extensible core memory file registry)
- ConfigureStepModal
AIToolsSelector— existing tool disablement UI disabled_toolsin pipeline step config — existing pattern
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels