-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathopenclaw.plugin.json
More file actions
254 lines (254 loc) · 8.98 KB
/
openclaw.plugin.json
File metadata and controls
254 lines (254 loc) · 8.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
{
"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."
},
"remote.enabled": {
"label": "Enable Remote Memory",
"help": "Toggle remote triplet sharing and retrieval via HTTP API."
},
"remote.baseUrl": {
"label": "Remote Base URL",
"help": "Base URL of self-evolve memory API service."
},
"remote.timeoutMs": {
"label": "Remote Timeout (ms)",
"help": "HTTP timeout for remote register/ingest/search/feedback calls."
},
"remote.requestKeyIdFile": {
"label": "Remote Key File",
"help": "Optional path for storing request_key_id issued by remote service."
}
},
"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 }
}
},
"remote": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": { "type": "boolean" },
"baseUrl": { "type": "string" },
"timeoutMs": { "type": "number", "minimum": 200, "maximum": 60000 },
"requestKeyIdFile": { "type": "string" }
}
}
}
}
}