auto: sync OpenClaw config 2026-09-15 16:13
This commit is contained in:
+37
-36
@@ -183,8 +183,8 @@
|
||||
"agentDir": "/home/yangxuan/.openclaw/agents/resume/agent",
|
||||
"model": {
|
||||
"primary": "deepseek/deepseek-flash"
|
||||
},
|
||||
"models": {
|
||||
},
|
||||
"models": {
|
||||
"deepseek/deepseek-flash": {}
|
||||
},
|
||||
"identity": {
|
||||
@@ -198,8 +198,8 @@
|
||||
"agentDir": "/home/yangxuan/.openclaw/agents/travel/agent",
|
||||
"model": {
|
||||
"primary": "deepseek/deepseek-flash"
|
||||
},
|
||||
"models": {
|
||||
},
|
||||
"models": {
|
||||
"deepseek/deepseek-flash": {}
|
||||
},
|
||||
"identity": {
|
||||
@@ -213,8 +213,8 @@
|
||||
"agentDir": "/home/yangxuan/.openclaw/agents/fitness/agent",
|
||||
"model": {
|
||||
"primary": "deepseek/deepseek-flash"
|
||||
},
|
||||
"models": {
|
||||
},
|
||||
"models": {
|
||||
"deepseek/deepseek-flash": {}
|
||||
},
|
||||
"identity": {
|
||||
@@ -228,8 +228,8 @@
|
||||
"agentDir": "/home/yangxuan/.openclaw/agents/finances/agent",
|
||||
"model": {
|
||||
"primary": "deepseek/deepseek-flash"
|
||||
},
|
||||
"models": {
|
||||
},
|
||||
"models": {
|
||||
"deepseek/deepseek-flash": {}
|
||||
},
|
||||
"identity": {
|
||||
@@ -243,8 +243,8 @@
|
||||
"agentDir": "/home/yangxuan/.openclaw/agents/juaner/agent",
|
||||
"model": {
|
||||
"primary": "deepseek/deepseek-flash"
|
||||
},
|
||||
"models": {
|
||||
},
|
||||
"models": {
|
||||
"deepseek/deepseek-flash": {}
|
||||
},
|
||||
"identity": {
|
||||
@@ -270,8 +270,8 @@
|
||||
"agentDir": "/home/yangxuan/.openclaw/agents/note/agent",
|
||||
"model": {
|
||||
"primary": "deepseek/deepseek-flash"
|
||||
},
|
||||
"models": {
|
||||
},
|
||||
"models": {
|
||||
"deepseek/deepseek-flash": {}
|
||||
},
|
||||
"identity": {
|
||||
@@ -283,10 +283,10 @@
|
||||
"name": "PBS备份",
|
||||
"workspace": "/home/yangxuan/.openclaw/workspace-pbs",
|
||||
"agentDir": "/home/yangxuan/.openclaw/agents/pbs/agent",
|
||||
"model": {
|
||||
"model": {
|
||||
"primary": "deepseek/deepseek-flash"
|
||||
},
|
||||
"models": {
|
||||
},
|
||||
"models": {
|
||||
"deepseek/deepseek-flash": {}
|
||||
},
|
||||
"identity": {
|
||||
@@ -300,8 +300,8 @@
|
||||
"agentDir": "/home/yangxuan/.openclaw/agents/wellness/agent",
|
||||
"model": {
|
||||
"primary": "deepseek/deepseek-flash"
|
||||
},
|
||||
"models": {
|
||||
},
|
||||
"models": {
|
||||
"deepseek/deepseek-flash": {}
|
||||
},
|
||||
"identity": {
|
||||
@@ -313,10 +313,10 @@
|
||||
"name": "导航页",
|
||||
"workspace": "/home/yangxuan/.openclaw/workspace-tab",
|
||||
"agentDir": "/home/yangxuan/.openclaw/agents/tab/agent",
|
||||
"model": {
|
||||
"model": {
|
||||
"primary": "deepseek/deepseek-flash"
|
||||
},
|
||||
"models": {
|
||||
},
|
||||
"models": {
|
||||
"deepseek/deepseek-flash": {}
|
||||
},
|
||||
"identity": {
|
||||
@@ -410,7 +410,10 @@
|
||||
"commands": {
|
||||
"native": "auto",
|
||||
"nativeSkills": "auto",
|
||||
"restart": true
|
||||
"restart": true,
|
||||
"ownerAllowFrom": [
|
||||
"feishu:ou_28124d6721134f0e31d6122d30088418"
|
||||
]
|
||||
},
|
||||
"session": {
|
||||
"dmScope": "per-channel-peer"
|
||||
@@ -623,7 +626,8 @@
|
||||
"searxng",
|
||||
"openclaw-weixin",
|
||||
"dingtalk-connector",
|
||||
"openclaw-lark"
|
||||
"openclaw-lark",
|
||||
"feishu"
|
||||
],
|
||||
"entries": {
|
||||
"ollama": {
|
||||
@@ -654,10 +658,10 @@
|
||||
"enabled": false
|
||||
},
|
||||
"feishu": {
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
},
|
||||
"openclaw-lark": {
|
||||
"enabled": true
|
||||
"enabled": false
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -672,28 +676,25 @@
|
||||
},
|
||||
"feishu": {
|
||||
"enabled": true,
|
||||
"appId": "cli_aa2a59f378b8c19b",
|
||||
"appId": "cli_aa2274de26b8c0db",
|
||||
"appSecret": {
|
||||
"source": "file",
|
||||
"provider": "lark-secrets",
|
||||
"id": "/lark/appSecret"
|
||||
"source": "store",
|
||||
"provider": "default",
|
||||
"id": "FEISHU_APP_SECRET"
|
||||
},
|
||||
"domain": "feishu",
|
||||
"connectionMode": "websocket",
|
||||
"requireMention": true,
|
||||
"dmPolicy": "allowlist",
|
||||
"allowFrom": [
|
||||
"ou_d6f8d891fe1898d6da683542e7e76a81"
|
||||
],
|
||||
"groupAllowFrom": [
|
||||
"ou_d6f8d891fe1898d6da683542e7e76a81"
|
||||
],
|
||||
"groupPolicy": "allowlist",
|
||||
"groups": {
|
||||
"*": {
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"allowFrom": [
|
||||
"ou_28124d6721134f0e31d6122d30088418"
|
||||
]
|
||||
}
|
||||
},
|
||||
"bindings": [
|
||||
@@ -712,7 +713,7 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"agentId": "fitness",
|
||||
"agentId": "main",
|
||||
"match": {
|
||||
"channel": "feishu"
|
||||
}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
/home/yangxuan/.openclaw/extensions/openclaw-lark/skills/feishu-bitable
|
||||
@@ -1 +0,0 @@
|
||||
/home/yangxuan/.openclaw/extensions/openclaw-lark/skills/feishu-calendar
|
||||
@@ -1 +0,0 @@
|
||||
/home/yangxuan/.openclaw/extensions/openclaw-lark/skills/feishu-channel-rules
|
||||
@@ -1 +0,0 @@
|
||||
/home/yangxuan/.openclaw/extensions/openclaw-lark/skills/feishu-create-doc
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
/home/yangxuan/.openclaw/npm/projects/openclaw-feishu-dc69f44688/node_modules/@openclaw/feishu/skills/feishu-doc
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
/home/yangxuan/.openclaw/npm/projects/openclaw-feishu-dc69f44688/node_modules/@openclaw/feishu/skills/feishu-drive
|
||||
@@ -1 +0,0 @@
|
||||
/home/yangxuan/.openclaw/extensions/openclaw-lark/skills/feishu-fetch-doc
|
||||
@@ -1 +0,0 @@
|
||||
/home/yangxuan/.openclaw/extensions/openclaw-lark/skills/feishu-im-read
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
/home/yangxuan/.openclaw/npm/projects/openclaw-feishu-dc69f44688/node_modules/@openclaw/feishu/skills/feishu-perm
|
||||
@@ -1 +0,0 @@
|
||||
/home/yangxuan/.openclaw/extensions/openclaw-lark/skills/feishu-task
|
||||
@@ -1 +0,0 @@
|
||||
/home/yangxuan/.openclaw/extensions/openclaw-lark/skills/feishu-troubleshoot
|
||||
@@ -1 +0,0 @@
|
||||
/home/yangxuan/.openclaw/extensions/openclaw-lark/skills/feishu-update-doc
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
/home/yangxuan/.openclaw/npm/projects/openclaw-feishu-dc69f44688/node_modules/@openclaw/feishu/skills/feishu-wiki
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
---
|
||||
name: "cross-agent-chat"
|
||||
description: "怎么和其他 agent 聊天、消息没到某 agent:查 bindings 路由,openclaw agent --agent 一问一答,Control UI 切换,sessions_send 委派。"
|
||||
status: proposal
|
||||
version: "v1"
|
||||
date: "2026-09-15T05:09:03.194Z"
|
||||
---
|
||||
|
||||
# Cross-agent chat
|
||||
|
||||
用于回答「怎么和其他 agent 聊天」「让某 agent 处理」「消息为什么到不了某 agent」,并把消息实际送到同级 agent。
|
||||
|
||||
## 事实基础
|
||||
- 入站渠道消息由 `bindings` 决定落到哪个 agent:`gateway(config.get, path="bindings")`。
|
||||
- CLI 无需渠道即可给同级 agent 发一轮对话:`openclaw agent --agent <id> --message "<文本>"`,经 Gateway 运行并打印回复。已实测:`openclaw agent --agent travel --message "..."` 直接返回 travel 的回复。
|
||||
- Control UI 侧边栏顶部身份行 → agent 切换器,只改变 Chat 归属 agent(多 agent 环境才有)。
|
||||
- agent 侧转达/委派:`sessions_send(agentId=...)` / `sessions_spawn(agentId=...)`,受 `tools.agentToAgent`(本机 enabled + allow 列表)与 `tools.sessions.visibility` 控制。
|
||||
|
||||
## 步骤
|
||||
1. 列 agent:`agents_list`,或 `openclaw agents list --bindings`。
|
||||
2. 回答「某渠道能不能到某 agent」前,先读 `bindings`(feishu 当前只绑 main,飞书 DM 到不了其他 agent);不要凭猜测断言。
|
||||
3. 要把消息真的发给同级 agent:`openclaw agent --agent <id> --message "..."`;复用既有会话用 `--session-key`。
|
||||
4. 在本轮内委派:`sessions_send(agentId=...)`;需要独立可回访会话时 `sessions_spawn(agentId=..., visible=true)`。
|
||||
5. 告知用户自助入口:Control UI 切换器,或上述 CLI 命令。
|
||||
|
||||
## 参考
|
||||
- `docs/tools/agent-send.md`、`docs/cli/agent.md`、`docs/concepts/multi-agent.md`、`docs/web/control-ui.md`(相对 `<openclaw 包>/docs`)。
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
---
|
||||
name: "session-lifecycle-triage"
|
||||
description: "删除/归档会话失败(did not finish stopping)时,只读定位 placement 键不匹配并走受支持修复路径。"
|
||||
status: proposal
|
||||
version: "v1"
|
||||
date: "2026-09-15T05:29:00.623Z"
|
||||
---
|
||||
|
||||
# 会话删除/归档失败排查(session lifecycle triage)
|
||||
|
||||
用于「删除会话」「归档会话」失败时,只读定位原因并走受支持路径,绝不绕过守卫。
|
||||
|
||||
## 事实基础(OpenClaw 2026.8.1 实测)
|
||||
- 守卫比对 placement 记录的 `sessionId + sessionKey + agentId`;不一致即报 `... cloud worker placement identity changed`,delete/archive 一律失败。
|
||||
- cron 会话的 placement `session_key` 形如 `agent:<agent>:cron:<jobId>:run:<sessionId>`,而会话注册 key 是 `agent:<agent>:cron:<jobId>`。二者后缀不同 → 守卫拒绝 stop。
|
||||
- placement `state=local` 且无 turn claim,说明没有正在跑的工作,此时「等它跑完再删」不会生效。
|
||||
- 外部 `sqlite3` 无法打开活动状态目录下的库(报 `external sqlite3 cannot open databases under the active OpenClaw state directory`)。
|
||||
- 拥有该会话的一次性 cron 作业运行后已自删时,这条 stale placement 行不会被后续 reconcile 自动清理。
|
||||
|
||||
## 步骤
|
||||
1. 先执行 `openclaw sessions delete "<key>" --agent <id> --yes --json`。若报 `did not finish stopping` 或 `cloud worker placement identity changed`,进入下一步。
|
||||
2. 只读查 placement 行:把 `state/openclaw.sqlite`、`openclaw.sqlite-wal`、`openclaw.sqlite-shm` 复制到临时目录(如 `/tmp/olstate-inspect/`),再执行
|
||||
`sqlite3 -readonly <临时副本> "select session_id,agent_id,session_key,state,transition_generation,environment_id,turn_claim_owner from worker_session_placements where session_id='<sessionId>';"`
|
||||
查完立即删除临时副本。**绝不**让 sqlite3 指向活动状态目录。
|
||||
3. 对比 placement 的 `session_key` 与会话注册 key。若为上述 `:run:` 后缀差异,即守卫拒绝原因;同时确认 `state` 与 `turn_claim_owner` 判断有无活跃工作。
|
||||
4. 走受支持修复路径之一:稍后重试;退出 OpenClaw 后在 shell 跑 `openclaw doctor`(受支持修复入口);仍失败则用 `openclaw logs` 加完整报错上报缺陷。**禁止**直接改 `state/openclaw.sqlite` 来绕守卫。
|
||||
5. 若仍删不掉,向用户说明:会话仍可见、不影响其他功能,并列出上面三条路径请其选择,不擅自绕过。
|
||||
Reference in New Issue
Block a user