feat: NoMemory/Cleaner memory system + doc update

- _sdk_local/ removed (moved to standalone sdk repo)
- internal/agent/core: NoMemory/Cleaner data-flow breakpoints
- internal/memory: clean_text, document store refactor
- internal/plugin/registry.go: plugin API alignment
- docs: PLUGIN_DEV.md, ARCHITECTURE.md NoMemory/Cleaner docs
- plan.md, review.md: status update
This commit is contained in:
JianFeeeee
2026-07-25 11:17:31 +08:00
parent 4a2df503ed
commit 31664a7853
36 changed files with 639 additions and 2488 deletions

View File

@ -84,7 +84,6 @@ type Registry struct {
toolCleaner PluginToolCleaner
knownDisabled map[string]bool
textCleaners []func(string) string
}
func NewRegistry() *Registry {
@ -110,17 +109,6 @@ func (r *Registry) SetStageRegistrar(fn sdk.StageRegistrar) { r.regStage =
func (r *Registry) SetAPIRegistrar(fn sdk.APIRegistrar) { r.regAPI = fn }
func (r *Registry) SetToolCleaner(tc PluginToolCleaner) { r.toolCleaner = tc }
// CleanText applies all registered text cleaners in order.
func (r *Registry) CleanText(text string) string {
r.mu.RLock()
cleaners := r.textCleaners
r.mu.RUnlock()
for _, fn := range cleaners {
text = fn(text)
}
return text
}
func (r *Registry) RegisterNative(name string, factory NativeFactory) {
r.mu.Lock()
defer r.mu.Unlock()
@ -270,7 +258,6 @@ func (r *Registry) Load(dir string) error {
r.plugins[name] = p
r.pluginAutoRestart[name] = plgSDK.AutoRestart()
r.instances = append(r.instances, p)
r.textCleaners = append(r.textCleaners, plgSDK.TextCleaners()...)
r.mu.Unlock()
log.Printf("[plugin] loaded: %s", name)
}
@ -353,7 +340,6 @@ func (r *Registry) loadOne(plgDir, name string) bool {
r.plugins[name] = plg
r.pluginAutoRestart[name] = plgSDK.AutoRestart()
r.instances = append(r.instances, plg)
r.textCleaners = append(r.textCleaners, plgSDK.TextCleaners()...)
r.mu.Unlock()
log.Printf("[plugin] loaded: %s", name)
return true
@ -370,7 +356,6 @@ func (r *Registry) StopAll() {
r.plugins = make(map[string]sdk.Plugin)
r.instances = nil
r.pluginAutoRestart = make(map[string]bool)
r.textCleaners = nil
}
func (r *Registry) Reload(dir string) (string, error) {