refactor(worker): Decouple capabilities from AI providers #226
Labels
No labels
good first issue
has-pr
help wanted
idea
priority
critical
priority
high
priority
low
priority
medium
status
blocked
status
in-progress
status
needs-review
status
ready
type
bug
type
docs
type
enhancement
type
feature
type
refactor
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
#224 feat(worker): Configurable worker capabilities and limits per capability
customable/claude-mem
Reference
customable/claude-mem#226
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Worker capabilities are currently tightly coupled to specific AI providers (e.g.,
summarize:mistral,observation:openai). Capabilities should describe what a worker can do, while the provider should be a separate, configurable property.Current Problem
Problems with this approach:
Proposed Solution
1. Abstract Capabilities
Capabilities describe what the worker can do:
2. Provider Types (grouped by function)
Providers are grouped by their function, not by capability:
3. Worker Configuration with Multiple Capabilities
IMPORTANT: Workers can have multiple capabilities. Each capability uses the appropriate provider based on its type:
Example: Multi-capability worker
This worker can handle 5 different task types:
observationllmsummarizellmclaudemd-generatellmembeddingembeddingqdrant-syncvectordb4. Capability-to-Provider Mapping
5. VectorDB Provider Configuration
The
vectordbprovider determines where embeddings are synced:qdrant-localqdrant-cloudqdrant-remoteConnection settings per provider:
6. Settings-based Configuration Examples
Example 1: Specialized workers (one capability each)
Example 2: General-purpose workers (multiple capabilities)
Example 3: Mixed setup (specialized + general)
7. Default Provider Fallback
If no provider is specified, use global default:
Benefits
summarize:mistralsummarize+ provider configMigration Path
Files to Modify
packages/types/src/capabilities.ts- New capability types, provider types, mappingpackages/types/src/settings.ts- Worker config types, VectorDB connection configpackages/backend/src/services/worker-process-manager.ts- Spawn with provider configpackages/worker/src/- Accept provider from config, use mappingpackages/backend/src/websocket/task-dispatcher.ts- Match abstract capabilitiesRelated Issues
Acceptance Criteria