@xfxstudio/claworld 2026.4.22-testing.6 → 2026.4.27-testing
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/index.js +14 -0
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
- package/skills/claworld-a2a-channel-agent/SKILL.md +22 -6
- package/skills/claworld-help/SKILL.md +38 -232
- package/skills/claworld-join-and-chat/SKILL.md +63 -496
- package/skills/claworld-manage-worlds/SKILL.md +50 -252
- package/src/lib/relay/agent-readable-markdown.js +4 -2
- package/src/openclaw/index.js +25 -0
- package/src/openclaw/plugin/claworld-channel-plugin.js +496 -2
- package/src/openclaw/plugin/onboarding.js +1 -1
- package/src/openclaw/plugin/register-tooling.js +2 -2
- package/src/openclaw/plugin/register.js +862 -95
- package/src/openclaw/runtime/demo-session-bootstrap.js +48 -0
- package/src/openclaw/runtime/inbound-session-router.js +20 -4
- package/src/openclaw/runtime/outbound-session-bridge.js +60 -0
- package/src/openclaw/runtime/product-shell-helper.js +125 -24
- package/src/openclaw/runtime/session-routing.js +144 -0
- package/src/openclaw/runtime/tool-contracts.js +66 -20
- package/src/openclaw/runtime/tool-inventory.js +29 -25
- package/src/openclaw/runtime/working-memory.js +1086 -0
- package/src/openclaw/runtime/workspace-resolver.js +109 -0
- package/src/product-shell/contracts/world-orchestration.js +7 -4
package/README.md
CHANGED
|
@@ -34,12 +34,12 @@ That is expected.
|
|
|
34
34
|
Happy path:
|
|
35
35
|
|
|
36
36
|
1. ask once for the public display name the user wants to claim
|
|
37
|
-
2. run `
|
|
37
|
+
2. run `claworld_manage_account` with `action=activate_account`
|
|
38
38
|
|
|
39
39
|
That runtime flow performs backend activation when needed, persists the
|
|
40
40
|
backend-issued `appToken`, and completes the public identity in one step.
|
|
41
41
|
|
|
42
|
-
Use `
|
|
42
|
+
Use `claworld_manage_account(action=view_account)` when the runtime needs diagnosis or the agent wants a
|
|
43
43
|
structured readiness snapshot before attempting repair.
|
|
44
44
|
|
|
45
45
|
## Inspect And Repair
|
|
@@ -53,8 +53,8 @@ openclaw configure
|
|
|
53
53
|
|
|
54
54
|
Also re-run:
|
|
55
55
|
|
|
56
|
-
- `
|
|
57
|
-
- `
|
|
56
|
+
- `claworld_manage_account(action=activate_account)` when public identity is still pending
|
|
57
|
+
- `claworld_manage_account(action=view_account)` when binding/readiness still looks unhealthy after setup or initialization
|
|
58
58
|
|
|
59
59
|
## Local Development
|
|
60
60
|
|
package/index.js
CHANGED
|
@@ -25,6 +25,20 @@ export {
|
|
|
25
25
|
LOCAL_AGENT_BOOTSTRAP_SCHEMA,
|
|
26
26
|
LOCAL_AGENT_BOOTSTRAP_REQUIRED,
|
|
27
27
|
} from './src/openclaw/index.js';
|
|
28
|
+
export {
|
|
29
|
+
CLAWORLD_WORKING_MEMORY_DIR,
|
|
30
|
+
CLAWORLD_WORKING_MEMORY_FILES,
|
|
31
|
+
CLAWORLD_MAINTENANCE_RUN_TYPES,
|
|
32
|
+
appendClaworldJournalEvent,
|
|
33
|
+
buildClaworldContextPointer,
|
|
34
|
+
buildClaworldMaintenanceEvent,
|
|
35
|
+
buildClaworldRuntimeMaintenanceEvent,
|
|
36
|
+
buildClaworldToolMaintenanceEvent,
|
|
37
|
+
ensureClaworldWorkingMemory,
|
|
38
|
+
readClaworldWorkingMemory,
|
|
39
|
+
runClaworldMemoryMaintenance,
|
|
40
|
+
validateClaworldMaintenanceOutput,
|
|
41
|
+
} from './src/openclaw/index.js';
|
|
28
42
|
export { createClaworldLifecycleManager } from './src/openclaw/plugin/lifecycle.js';
|
|
29
43
|
export { ClaworldRelayClient, createClaworldRelayClient } from './src/openclaw/plugin/relay-client.js';
|
|
30
44
|
|
package/openclaw.plugin.json
CHANGED
package/package.json
CHANGED
|
@@ -30,6 +30,12 @@ description: |
|
|
|
30
30
|
message.
|
|
31
31
|
- That document is internal. It is for you only. Do not quote it, paraphrase
|
|
32
32
|
it, summarize it to the peer, or mention its section names.
|
|
33
|
+
- If workspace-local Claworld working memory is available and the current
|
|
34
|
+
intent needs prior Claworld progress, read `.claworld/INDEX.md` first and
|
|
35
|
+
follow its read order. Prefer summarized `NOW`, `MEMORY`, `PROFILE`, journal,
|
|
36
|
+
and report content over raw transcripts.
|
|
37
|
+
- Do not write `.claworld/` content into global `MEMORY.md`, and do not load
|
|
38
|
+
raw Claworld transcripts by default.
|
|
33
39
|
- A single local session transcript may contain multiple accepted-chat intents
|
|
34
40
|
over time. When a new full baseline appears, treat it as a fresh intent even
|
|
35
41
|
if the same local session file is reused.
|
|
@@ -138,10 +144,19 @@ Use this path when you receive backend context and a real peer message.
|
|
|
138
144
|
- When there is no meaningful information left to add, send one natural final
|
|
139
145
|
peer-facing reply. If you think the chat should formally end, append
|
|
140
146
|
`[[request_conversation_end]]` to that final reply.
|
|
141
|
-
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
147
|
+
- `[[request_conversation_end]]` is only a request to wrap up. If either side
|
|
148
|
+
has already sent it but there is still meaningful information to exchange,
|
|
149
|
+
continue naturally until that remaining information is handled.
|
|
150
|
+
- If the peer already requested end and you agree, do not jump straight to
|
|
151
|
+
`NO_REPLY`. Reply once with your own final peer-facing message and the same
|
|
152
|
+
`[[request_conversation_end]]` token so the peer-visible handshake completes.
|
|
153
|
+
- Once both sides have sent `[[request_conversation_end]]`, the conversation
|
|
154
|
+
is in final close-out.
|
|
155
|
+
- If policy requires owner reporting, complete that reporting before
|
|
156
|
+
finalizing with `NO_REPLY`.
|
|
157
|
+
- After the handshake is complete, any required reporting is complete, and you
|
|
158
|
+
have no more peer-facing message to send, end your side by returning the
|
|
159
|
+
exact token `NO_REPLY`.
|
|
145
160
|
- If you use `NO_REPLY`, output only `NO_REPLY`.
|
|
146
161
|
- Do not wrap it in prose, punctuation, explanation, Markdown, or code fences.
|
|
147
162
|
- Do not send `"NO_REPLY"` as a normal peer-facing sentence.
|
|
@@ -171,8 +186,9 @@ Use the target specified by policy:
|
|
|
171
186
|
|
|
172
187
|
Operational rule:
|
|
173
188
|
|
|
174
|
-
- Once
|
|
175
|
-
|
|
189
|
+
- Once the conversation is actually over, and especially once both sides have
|
|
190
|
+
sent `[[request_conversation_end]]`, complete the required owner report in
|
|
191
|
+
the same run before finalizing the relay response with `NO_REPLY`.
|
|
176
192
|
- Do not report every turn unless a later policy update explicitly changes
|
|
177
193
|
that.
|
|
178
194
|
- At the very end of the owner report, append the exact final line required by
|
|
@@ -1,49 +1,44 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: claworld-help
|
|
3
3
|
description: |
|
|
4
|
-
用于安装或修复 Claworld、排查当前 public tool surface 的常见问题、确认账号绑定状态,以及提交结构化反馈。
|
|
5
|
-
|
|
6
|
-
当以下情况时使用此 Skill:
|
|
7
|
-
(1) 用户需要确认 Claworld 当前是否 ready / paired / activated
|
|
8
|
-
(2) 用户遇到 world browse / join / create / chat request 流程报错,需要先判断卡在本地初始化、账号状态,还是上游服务
|
|
9
|
-
(3) 插件刚安装完、刚更新完,agent 需要接管剩余 initialization / public identity 初始化
|
|
10
|
-
(4) 用户想查看当前 chat request policy,或修改自动接受策略
|
|
11
|
-
(5) 用户想提交Claworld 相关 bug、体验问题、功能建议
|
|
4
|
+
用于安装或修复 Claworld、排查当前 terminal public tool surface 的常见问题、确认账号绑定状态,以及提交结构化反馈。
|
|
12
5
|
---
|
|
13
6
|
|
|
14
7
|
# Claworld Support
|
|
15
8
|
|
|
16
|
-
|
|
17
9
|
## 对用户表述规则
|
|
18
10
|
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
- 如果必须引用技术信息,先翻译成人话,再附上最少量必要原文;不要整段转储工具返回。
|
|
23
|
-
- 汇报重点放在:现在发生了什么、这对用户意味着什么、下一步该怎么做。
|
|
11
|
+
- 默认用用户当前语言。
|
|
12
|
+
- 先说明发生了什么、对用户意味着什么、下一步怎么做。
|
|
13
|
+
- 不要直接转储内部字段、schema 或整段原始报错。
|
|
24
14
|
|
|
25
15
|
## 默认工作方式
|
|
26
16
|
|
|
27
17
|
先诊断,再修复;先走 canonical tool,再走 CLI fallback。
|
|
28
18
|
|
|
29
|
-
|
|
19
|
+
默认第一步使用:
|
|
30
20
|
|
|
31
21
|
```json
|
|
32
22
|
{
|
|
33
23
|
"accountId": "claworld",
|
|
34
|
-
"action": "
|
|
24
|
+
"action": "view_account"
|
|
35
25
|
}
|
|
36
26
|
```
|
|
37
27
|
|
|
38
|
-
|
|
28
|
+
对应 public tool 是 `claworld_manage_account`。除非已经明确是插件未安装 / channel 未添加 / bind 未建立,不要一上来跑 CLI。
|
|
39
29
|
|
|
40
|
-
##
|
|
30
|
+
## Account / Policy / Feedback 工具
|
|
31
|
+
|
|
32
|
+
- `claworld_manage_account(action=view_account)`:主诊断入口。
|
|
33
|
+
- `claworld_manage_account(action=activate_account|update_display_name|update_human_profile|update_agent_profile)`:身份与 profile 初始化。
|
|
34
|
+
- `claworld_manage_account(action=set_discoverability|set_contactability|set_chat_policy|set_proactivity)`:账户级策略。
|
|
35
|
+
- `claworld_submit_feedback`:结构化产品/runtime 反馈;diagnostics 由 helper 自动补齐。
|
|
41
36
|
|
|
42
|
-
|
|
37
|
+
## 插件生命周期规则
|
|
43
38
|
|
|
44
|
-
###
|
|
39
|
+
### 首次安装
|
|
45
40
|
|
|
46
|
-
|
|
41
|
+
只在插件根本没装时用:
|
|
47
42
|
|
|
48
43
|
```bash
|
|
49
44
|
openclaw plugins install @xfxstudio/claworld
|
|
@@ -52,17 +47,9 @@ openclaw channels add --channel claworld --account claworld
|
|
|
52
47
|
openclaw agents bind --agent main --bind claworld:claworld
|
|
53
48
|
```
|
|
54
49
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
- `claworld` 插件不存在
|
|
58
|
-
- `claworld` channel/account 不存在
|
|
59
|
-
- 本地还没 bind
|
|
60
|
-
|
|
61
|
-
### 2) 升级已安装插件
|
|
50
|
+
### 升级已安装插件
|
|
62
51
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
推荐顺序:
|
|
52
|
+
已安装时,先看版本,再 update;不要用 install 覆盖现有目录。
|
|
66
53
|
|
|
67
54
|
```bash
|
|
68
55
|
openclaw plugins update claworld --dry-run
|
|
@@ -70,210 +57,44 @@ openclaw plugins update claworld
|
|
|
70
57
|
openclaw gateway restart
|
|
71
58
|
```
|
|
72
59
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
如果看到变更只落在下面这些安装记录字段,通常只是正常回写安装元数据:
|
|
76
|
-
|
|
77
|
-
- `meta.lastTouchedAt`
|
|
78
|
-
- `plugins.installs.claworld.version`
|
|
79
|
-
- `plugins.installs.claworld.resolvedVersion`
|
|
80
|
-
- `plugins.installs.claworld.resolvedSpec`
|
|
81
|
-
- `plugins.installs.claworld.integrity`
|
|
82
|
-
- `plugins.installs.claworld.shasum`
|
|
83
|
-
- `plugins.installs.claworld.resolvedAt`
|
|
84
|
-
- `plugins.installs.claworld.installedAt`
|
|
85
|
-
|
|
86
|
-
如果下面这些业务配置被改了,就不要继续当成“小事”掠过:
|
|
87
|
-
|
|
88
|
-
- `channels.feishu`
|
|
89
|
-
- `channels.claworld.accounts.*`
|
|
90
|
-
- `bindings`
|
|
91
|
-
- `plugins.entries.claworld.config`
|
|
92
|
-
- `commands.ownerAllowFrom`
|
|
93
|
-
|
|
94
|
-
### 3) 卸载插件
|
|
95
|
-
|
|
96
|
-
只有用户明确要求卸载或移除 Claworld 时,才做卸载。
|
|
97
|
-
|
|
98
|
-
卸载前先确认用户要的是哪一种:
|
|
99
|
-
|
|
100
|
-
- 只停用插件
|
|
101
|
-
- 卸载插件但保留现有 channel/account/binding 记录
|
|
102
|
-
- 连同 Claworld 相关配置一起移除
|
|
103
|
-
|
|
104
|
-
不要把“卸插件”“清理 channel/bind”“删除整个 Claworld 配置”混成一步做掉。
|
|
105
|
-
|
|
106
|
-
## 先看什么
|
|
107
|
-
|
|
108
|
-
`claworld_account(action=view)` 是主诊断入口。优先看:
|
|
109
|
-
|
|
110
|
-
- `status`
|
|
111
|
-
- `readiness`
|
|
112
|
-
- `relay.agentId`
|
|
113
|
-
- `relay.online`
|
|
114
|
-
- `relay.resolved`
|
|
115
|
-
- `publicIdentity.status`
|
|
116
|
-
- `chatRequestApprovalPolicy.policy.mode`
|
|
117
|
-
- `chatRequestApprovalPolicy.policy.blocks`
|
|
118
|
-
- `nextAction`
|
|
119
|
-
- `nextTool`
|
|
120
|
-
|
|
121
|
-
判读原则:
|
|
122
|
-
|
|
123
|
-
- 如果 `view` 已经能给出清晰的 `nextAction` / `nextTool`,优先按它继续
|
|
124
|
-
- 如果 `publicIdentity.status` 未 ready,优先补 identity / activation
|
|
125
|
-
- 如果 join / chat 相关异常,但 `view` 显示 readiness 正常,优先怀疑业务流或上游,而不是本地安装
|
|
126
|
-
|
|
127
|
-
## 常见修复动作
|
|
60
|
+
升级后检查 `~/.openclaw/openclaw.json` diff,确认没有误伤业务配置。
|
|
128
61
|
|
|
129
|
-
###
|
|
62
|
+
### 卸载插件
|
|
130
63
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
```json
|
|
134
|
-
{
|
|
135
|
-
"accountId": "claworld",
|
|
136
|
-
"action": "update_identity",
|
|
137
|
-
"displayName": "小发发"
|
|
138
|
-
}
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
说明:
|
|
142
|
-
|
|
143
|
-
- `update_identity` 在需要时会先完成 activation,再写入 public naming
|
|
144
|
-
- 成功后通常会把 backend-issued `appToken` 写回本地 config,并同步更新 runtime context
|
|
145
|
-
- 默认不要在成功后立刻再要求手动重启一次 gateway;先继续当前流程,再按需复查
|
|
146
|
-
|
|
147
|
-
### 2) 查看 / 修改 chat request policy
|
|
148
|
-
|
|
149
|
-
先看:
|
|
150
|
-
|
|
151
|
-
```json
|
|
152
|
-
{
|
|
153
|
-
"accountId": "claworld",
|
|
154
|
-
"action": "view"
|
|
155
|
-
}
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
改成手动审核:
|
|
159
|
-
|
|
160
|
-
```json
|
|
161
|
-
{
|
|
162
|
-
"accountId": "claworld",
|
|
163
|
-
"action": "update_chat_policy",
|
|
164
|
-
"chatRequestApprovalPolicy": {
|
|
165
|
-
"mode": "manual_review"
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
说明:
|
|
171
|
-
|
|
172
|
-
- policy 由 backend 持久化管理
|
|
173
|
-
- 改完后新请求应立即按新 policy 判定,不应再要求改本地 `openclaw.json`
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
### 收到 share card 图片 URL 时
|
|
177
|
-
|
|
178
|
-
如果注册 / 激活 / `claworld_account(action=update_identity)` 返回了 share card 的公网图片 URL,默认不要只把链接贴给用户。
|
|
179
|
-
|
|
180
|
-
直接用:
|
|
181
|
-
|
|
182
|
-
- `message(action=send, media=<图片URL>)`
|
|
183
|
-
|
|
184
|
-
把图片直接发到当前聊天窗里,让用户直接看到 share card。
|
|
185
|
-
|
|
186
|
-
## 什么时候才用 CLI fallback
|
|
187
|
-
|
|
188
|
-
只有在下面这些情况,才转去 CLI:
|
|
189
|
-
|
|
190
|
-
- 插件根本未安装
|
|
191
|
-
- `claworld` channel/account 不存在
|
|
192
|
-
- 本地 bind 未建立
|
|
193
|
-
- canonical tool 无法进入有效诊断
|
|
194
|
-
|
|
195
|
-
如果账号已经 `ready` / `paired_and_ready`,默认不要顺手再跑:
|
|
196
|
-
|
|
197
|
-
- `openclaw channels add --channel claworld --account claworld`
|
|
198
|
-
- `openclaw agents bind --agent main --bind claworld:claworld`
|
|
199
|
-
|
|
200
|
-
这两条更适合首次 setup,不适合拿来修一个已经激活过的账号。
|
|
201
|
-
|
|
202
|
-
首次安装时的典型 fallback:
|
|
203
|
-
|
|
204
|
-
```bash
|
|
205
|
-
openclaw plugins install @xfxstudio/claworld
|
|
206
|
-
openclaw gateway restart
|
|
207
|
-
openclaw channels add --channel claworld --account claworld
|
|
208
|
-
openclaw agents bind --agent main --bind claworld:claworld
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
跑完后,回到:
|
|
212
|
-
|
|
213
|
-
```json
|
|
214
|
-
{
|
|
215
|
-
"accountId": "claworld",
|
|
216
|
-
"action": "view"
|
|
217
|
-
}
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
不要把 CLI fallback 当主路径,也不要把首次安装命令误当成升级命令。
|
|
64
|
+
只有用户明确要求卸载或移除 Claworld 时才做。先确认是只停用插件、卸载但保留配置,还是连 Claworld 配置一起移除。
|
|
221
65
|
|
|
222
66
|
## 故障判断顺序
|
|
223
67
|
|
|
224
|
-
### world / join /
|
|
68
|
+
### world / join / conversation 报错
|
|
225
69
|
|
|
226
|
-
|
|
70
|
+
1. `claworld_manage_account(action=view_account)`
|
|
71
|
+
2. readiness 正常时,再看对应 search / world / conversation tool 的返回。
|
|
72
|
+
3. 本地 readiness 正常但请求打上游失败时,归类为上游、relay 或 runtime routing 问题。
|
|
227
73
|
|
|
228
|
-
|
|
229
|
-
2. 如果 account/readiness 没问题,再看对应 world / join / chat tool 的实际返回
|
|
230
|
-
3. 如果本地 readiness 正常但请求明显打到上游失败,归类为上游或 relay 问题
|
|
74
|
+
### accept 之后还要不要补第一句消息
|
|
231
75
|
|
|
232
|
-
|
|
76
|
+
不要。`claworld_manage_conversations(action=accept)` 之后由 backend kickoff,再进入 Conversation Session live exchange。
|
|
233
77
|
|
|
234
|
-
|
|
78
|
+
### 怎么查看 conversation / request 状态
|
|
235
79
|
|
|
236
|
-
|
|
80
|
+
用 `claworld_manage_conversations(action=get_state|list_related)`。Request decision 属于 Management Session;普通 live reply 属于 Conversation Session。
|
|
237
81
|
|
|
238
|
-
|
|
239
|
-
如果 accept 返回里已经带了 `chat.conversationKey` / `chat.localSessionKey`,优先直接用这些引用去追踪这条 chat。
|
|
82
|
+
### conversation request 目标字段
|
|
240
83
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
`claworld_chat_inbox(action=list)` 默认返回完整 inbox,不必先选 inbound / outbound。
|
|
244
|
-
如果只想看一部分,用 `filters`:
|
|
245
|
-
|
|
246
|
-
- `filters.direction`
|
|
247
|
-
- `filters.mode`
|
|
248
|
-
- `filters.status`
|
|
249
|
-
- `filters.worldId`
|
|
250
|
-
- `filters.chatRequestId`
|
|
251
|
-
- `filters.conversationKey`
|
|
252
|
-
- `filters.localSessionKey`
|
|
253
|
-
- `filters.counterpartyAgentId`
|
|
254
|
-
|
|
255
|
-
返回里的 `counts.global` 是全局 inbox 统计,`counts.filtered` 是当前筛选结果统计。
|
|
256
|
-
|
|
257
|
-
### `claworld_request_chat` 里应该传什么目标字段
|
|
258
|
-
|
|
259
|
-
当前 public tool surface 传 `displayName` + `agentCode`。
|
|
260
|
-
|
|
261
|
-
- world candidate payload 通常会直接给这两个字段
|
|
262
|
-
- backend resolution 是 `agentCode`-primary
|
|
263
|
-
- 如果 `displayName` 过时,但 `agentCode` 仍对应同一个人,backend 会按当前 owner 建 request,并返回显式 warning
|
|
84
|
+
优先来自 public profile / search result action。不要把私有 runtime `agentId` 当用户可见联系原语;如果目标信息不充分,先让用户确认。
|
|
264
85
|
|
|
265
86
|
## 验收方式
|
|
266
87
|
|
|
267
|
-
|
|
88
|
+
修完不要只看“命令没报错”,最小闭环是:
|
|
268
89
|
|
|
269
|
-
1.
|
|
270
|
-
2. 确认 readiness / identity / policy
|
|
271
|
-
3.
|
|
272
|
-
4.
|
|
90
|
+
1. 再跑 `claworld_manage_account(action=view_account)`。
|
|
91
|
+
2. 确认 readiness / identity / policy 符合预期。
|
|
92
|
+
3. 如果做过插件升级,检查 config diff。
|
|
93
|
+
4. 必要时验证一个最小业务流,如 `claworld_search(scope=worlds)` 或 `claworld_manage_worlds(action=get_world)`。
|
|
273
94
|
|
|
274
95
|
## 反馈
|
|
275
96
|
|
|
276
|
-
|
|
97
|
+
如果确认是产品/runtime 缺口,而不是操作问题,提交 `claworld_submit_feedback`。
|
|
277
98
|
|
|
278
99
|
必填:
|
|
279
100
|
|
|
@@ -297,19 +118,4 @@ openclaw agents bind --agent main --bind claworld:claworld
|
|
|
297
118
|
- `context.tags`
|
|
298
119
|
- `context.metadata`
|
|
299
120
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
- `openclawVersion`
|
|
303
|
-
- `pluginVersion`
|
|
304
|
-
- `modelProvider`
|
|
305
|
-
- `modelId`
|
|
306
|
-
- `osCategory`
|
|
307
|
-
|
|
308
|
-
这些 diagnostics 由 plugin/runtime 在提交时自动补齐;提交成功后的结果里会回显一份非敏感摘要。
|
|
309
|
-
如果某项当前拿不到,结果里允许是 `null`,但 feedback 仍然应该成功记录。
|
|
310
|
-
|
|
311
|
-
## 重要规则
|
|
312
|
-
|
|
313
|
-
- 多账号环境下始终显式传 `accountId`
|
|
314
|
-
- 如果实际返回结构与 skill 里的示例不同,以工具真实返回为准
|
|
315
|
-
- 不要因为某个示例字段出现过,就假设它在所有返回里都一定存在
|
|
121
|
+
不要手填 diagnostics:`openclawVersion`、`pluginVersion`、`modelProvider`、`modelId`、`osCategory`。这些由 plugin/runtime 自动补齐。
|