mirror of https://github.com/openclaw/openclaw.git
229 lines
8.1 KiB
JSON
229 lines
8.1 KiB
JSON
{
|
|
"id": "self-evolve",
|
|
"name": "Self Evolve",
|
|
"description": "MemRL-style self-evolving retrieval policy over episodic memory.",
|
|
"uiHints": {
|
|
"embedding.provider": {
|
|
"label": "Embedding Provider",
|
|
"help": "Use OpenAI for semantic embeddings, or hash for local deterministic embeddings."
|
|
},
|
|
"embedding.apiKey": {
|
|
"label": "OpenAI API Key",
|
|
"sensitive": true,
|
|
"placeholder": "sk-proj-..."
|
|
},
|
|
"embedding.model": {
|
|
"label": "Embedding Model",
|
|
"placeholder": "text-embedding-3-small"
|
|
},
|
|
"retrieval.k1": {
|
|
"label": "Phase-A Top K",
|
|
"help": "Top-k candidate count after similarity gating."
|
|
},
|
|
"retrieval.k2": {
|
|
"label": "Phase-B Top K",
|
|
"help": "Final selected memory count injected into context."
|
|
},
|
|
"retrieval.lambda": {
|
|
"label": "Q Weight",
|
|
"help": "Blend ratio between z-normalized similarity and Q-value."
|
|
},
|
|
"retrieval.delta": {
|
|
"label": "Similarity Gate",
|
|
"help": "Minimum cosine similarity for Phase-A candidate admission."
|
|
},
|
|
"learning.alpha": {
|
|
"label": "Learning Rate",
|
|
"help": "Q-learning step size."
|
|
},
|
|
"reward.provider": {
|
|
"label": "Reward Provider",
|
|
"help": "Use an LLM judge over user feedback text."
|
|
},
|
|
"reward.model": {
|
|
"label": "Reward Model",
|
|
"help": "Model used to score user feedback when reward provider is OpenAI."
|
|
},
|
|
"experience.summarizer": {
|
|
"label": "Experience Summarizer",
|
|
"help": "Use an LLM summarizer for procedural memory experience text."
|
|
},
|
|
"experience.model": {
|
|
"label": "Experience Model",
|
|
"help": "Model used to summarize hidden reasoning and tool traces into reusable memory."
|
|
},
|
|
"experience.apiKey": {
|
|
"label": "Experience API Key",
|
|
"sensitive": true,
|
|
"placeholder": "sk-proj-..."
|
|
},
|
|
"runtime.observeTurns": {
|
|
"label": "Observe Turns",
|
|
"help": "First N turns only observe and skip Q-value learning updates."
|
|
},
|
|
"runtime.minAbsReward": {
|
|
"label": "Min |Reward|",
|
|
"help": "Skip learning updates when reward magnitude is too small."
|
|
},
|
|
"runtime.minRewardConfidence": {
|
|
"label": "Min Reward Confidence",
|
|
"help": "Skip learning updates when reward confidence is below this threshold."
|
|
},
|
|
"runtime.learnMode": {
|
|
"label": "Learning Mode",
|
|
"help": "balanced: prefer tool turns and allow very strong no-tool feedback; tools_only: learn only when tools were called; all: learn from every qualified turn."
|
|
},
|
|
"runtime.noToolMinAbsReward": {
|
|
"label": "No-Tool Min |Reward|",
|
|
"help": "In balanced mode, no-tool turns must reach this reward magnitude to learn."
|
|
},
|
|
"runtime.noToolMinRewardConfidence": {
|
|
"label": "No-Tool Min Confidence",
|
|
"help": "In balanced mode, no-tool turns must reach this confidence to learn."
|
|
},
|
|
"runtime.newIntentSimilarityThreshold": {
|
|
"label": "New Intent Similarity Threshold",
|
|
"help": "When a new user prompt similarity is lower than this threshold, close the current task and start a new one."
|
|
},
|
|
"runtime.idleTurnsToClose": {
|
|
"label": "Idle Turns To Close",
|
|
"help": "Close waiting tasks after N non-feedback idle turns."
|
|
},
|
|
"runtime.pendingTtlMs": {
|
|
"label": "Pending TTL (ms)",
|
|
"help": "Close pending tasks when no update is observed for this duration."
|
|
},
|
|
"runtime.maxTurnsPerTask": {
|
|
"label": "Max Turns Per Task",
|
|
"help": "Hard cap of turns accumulated into one learnable task."
|
|
},
|
|
"reward.apiKey": {
|
|
"label": "Reward API Key",
|
|
"sensitive": true,
|
|
"placeholder": "sk-proj-..."
|
|
},
|
|
"learning.gamma": {
|
|
"label": "Discount Factor",
|
|
"help": "Future utility discount for Q update bootstrap term."
|
|
},
|
|
"memory.maxEntries": {
|
|
"label": "Max Memories",
|
|
"help": "Maximum episodic memory entries persisted for this plugin."
|
|
}
|
|
},
|
|
"configSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"embedding": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"provider": {
|
|
"type": "string",
|
|
"enum": ["openai", "hash"]
|
|
},
|
|
"apiKey": {
|
|
"type": "string"
|
|
},
|
|
"baseUrl": {
|
|
"type": "string"
|
|
},
|
|
"model": {
|
|
"type": "string"
|
|
},
|
|
"dimensions": {
|
|
"type": "number",
|
|
"minimum": 16,
|
|
"maximum": 4096
|
|
}
|
|
}
|
|
},
|
|
"retrieval": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"k1": { "type": "number", "minimum": 1, "maximum": 100 },
|
|
"k2": { "type": "number", "minimum": 1, "maximum": 20 },
|
|
"delta": { "type": "number", "minimum": -1, "maximum": 1 },
|
|
"tau": { "type": "number", "minimum": -1, "maximum": 1 },
|
|
"lambda": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
"epsilon": { "type": "number", "minimum": 0, "maximum": 1 }
|
|
}
|
|
},
|
|
"learning": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"alpha": { "type": "number", "minimum": 0.0001, "maximum": 1 },
|
|
"gamma": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
"qInit": { "type": "number", "minimum": -1, "maximum": 1 },
|
|
"rewardSuccess": { "type": "number", "minimum": -1, "maximum": 2 },
|
|
"rewardFailure": { "type": "number", "minimum": -2, "maximum": 1 }
|
|
}
|
|
},
|
|
"memory": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"maxEntries": { "type": "number", "minimum": 20, "maximum": 50000 },
|
|
"maxExperienceChars": { "type": "number", "minimum": 120, "maximum": 12000 },
|
|
"includeFailures": { "type": "boolean" },
|
|
"stateFile": { "type": "string" }
|
|
}
|
|
},
|
|
"reward": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"provider": {
|
|
"type": "string",
|
|
"enum": ["openai"]
|
|
},
|
|
"apiKey": { "type": "string" },
|
|
"baseUrl": { "type": "string" },
|
|
"model": { "type": "string" },
|
|
"temperature": { "type": "number", "minimum": 0, "maximum": 1 }
|
|
}
|
|
},
|
|
"runtime": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"minPromptChars": { "type": "number", "minimum": 1, "maximum": 200 },
|
|
"observeTurns": { "type": "number", "minimum": 0, "maximum": 500 },
|
|
"minAbsReward": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
"minRewardConfidence": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
"learnMode": {
|
|
"type": "string",
|
|
"enum": ["balanced", "tools_only", "all"]
|
|
},
|
|
"noToolMinAbsReward": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
"noToolMinRewardConfidence": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
"newIntentSimilarityThreshold": { "type": "number", "minimum": -1, "maximum": 1 },
|
|
"idleTurnsToClose": { "type": "number", "minimum": 0, "maximum": 20 },
|
|
"pendingTtlMs": { "type": "number", "minimum": 1000, "maximum": 86400000 },
|
|
"maxTurnsPerTask": { "type": "number", "minimum": 1, "maximum": 100 }
|
|
}
|
|
},
|
|
"experience": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"summarizer": {
|
|
"type": "string",
|
|
"enum": ["openai"]
|
|
},
|
|
"apiKey": { "type": "string" },
|
|
"baseUrl": { "type": "string" },
|
|
"model": { "type": "string" },
|
|
"temperature": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
"maxToolEvents": { "type": "number", "minimum": 1, "maximum": 100 },
|
|
"maxRawChars": { "type": "number", "minimum": 200, "maximum": 20000 },
|
|
"maxSummaryChars": { "type": "number", "minimum": 100, "maximum": 4000 }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|