mirror of
https://github.com/xmanrui/OpenClaw-bot-review.git
synced 2026-08-14 00:47:49 +00:00
Add bound-model test API and docs assets
This commit is contained in:
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"hooks": {
|
||||||
|
"postToolUse": [
|
||||||
|
{
|
||||||
|
"matcher": "Edit|Write",
|
||||||
|
"command": "npx tsc --noEmit --pretty 2>&1 | head -20"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,4 +4,5 @@ node_modules
|
|||||||
next-env.d.ts
|
next-env.d.ts
|
||||||
.idea
|
.idea
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
/.openclaw
|
||||||
/public/assets/pixel-office/*.mp3
|
/public/assets/pixel-office/*.mp3
|
||||||
|
|||||||
+1
-1
@@ -394,7 +394,7 @@ export default function Home() {
|
|||||||
const pending: Record<string, any> = {};
|
const pending: Record<string, any> = {};
|
||||||
if (data) for (const a of data.agents) pending[a.id] = null;
|
if (data) for (const a of data.agents) pending[a.id] = null;
|
||||||
setTestResults(pending);
|
setTestResults(pending);
|
||||||
callTestApi("/api/test-agents")
|
callTestApi("/api/test-bound-models")
|
||||||
.then((resp) => {
|
.then((resp) => {
|
||||||
if (resp.results) {
|
if (resp.results) {
|
||||||
const map: Record<string, { ok: boolean; text?: string; error?: string; elapsed: number }> = {};
|
const map: Record<string, { ok: boolean; text?: string; error?: string; elapsed: number }> = {};
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
我叫谢满锐,资深agent开发工程师
|
||||||
|
现在是独立agent全栈开发者,前端、后端、运维一把梭
|
||||||
|
OpenClaw可视化运维开源项目OpenClaw-bot-review的作者,欢迎提交issue和pr:
|
||||||
|
https://github.com/xmanrui/OpenClaw-bot-review
|
||||||
|
|
||||||
|
小红书:9707067905
|
||||||
|
微信:xmanr123
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
项目名称:Openclaw可视化运维平台
|
||||||
|
|
||||||
|
痛点场景:
|
||||||
|
当你在多个平台(飞书、Discord 等)上运行多个 OpenClaw Agent 时,会面临以下管理和监控难题:
|
||||||
|
- 哪个机器人使用了哪个 AI 模型?
|
||||||
|
- 各个平台的连接状态如何?
|
||||||
|
- OpenClaw Gateway 是否正常运行?
|
||||||
|
- Token 消耗了多少?
|
||||||
|
- 各个 Agent 的运行状态如何
|
||||||
|
|
||||||
|
|
||||||
|
机器人页面:
|
||||||
|
这三个功能的详细介绍:
|
||||||
|
|
||||||
|
1.一键测试功能
|
||||||
|
提供四种批量测试能力:
|
||||||
|
|
||||||
|
- 测试所有 Agent - 向每个 Agent 发送测试请求,验证 Agent 是否能正常响应,显示响应时间和结果
|
||||||
|
- 测试所有平台 - 检测每个 Agent 绑定的平台(飞书/Discord)连接状态,确认平台配置是否正确
|
||||||
|
- 测试所有会话 - 测试每个 Agent 的会话连通性,验证会话是否可用
|
||||||
|
- 测试所有 DM 会话 - 专门测试私聊会话的连接状态
|
||||||
|
测试结果会实时显示在每个 Agent 卡片上
|
||||||
|
|
||||||
|
2.模型切换功能
|
||||||
|
在 Agent 卡片上可以直接切换该 Agent 使用的 AI 模型:
|
||||||
|
- 下拉菜单按 Provider 分组显示所有可用模型
|
||||||
|
- 切换后立即生效,无需重启服务
|
||||||
|
|
||||||
|
3.Agent 任务追踪
|
||||||
|
实时监控 Agent 的工作状态和任务执行情况:
|
||||||
|
|
||||||
|
- 工作状态 - 显示 Agent 当前状态(working/waiting/idle/offline)
|
||||||
|
- 子任务追踪 - 显示 Agent 正在执行的子任务(subagent)及其活动事件
|
||||||
|
- 定时任务监控 - 显示 Cron Job 的运行状态(running/success/failed)、执行时长、下次运行时间、连续失败次数
|
||||||
|
- 自动轮询 - 每 30 秒自动刷新任务状态
|
||||||
|
|
||||||
|
像素办公室页面:
|
||||||
|
让冰冷的监控数据变成有趣的像素游戏,直观"看到"每个 Agent 在做什么
|
||||||
|
|
||||||
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 382 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 376 KiB |
@@ -0,0 +1,25 @@
|
|||||||
|
五大简易测评标准,对标原生openclaw:
|
||||||
|
1.能否自由配置大模型(30分)
|
||||||
|
2.能否自由配置多种im,同一种im工具能否配置多个机器人(30分)
|
||||||
|
3.多agent(20分)
|
||||||
|
4.通用技能(20分)
|
||||||
|
5.业务场景技能(区别与原生openclaw,加分项,10分)
|
||||||
|
|
||||||
|
PS个人主观评测,不代表真实情况,仅供参考
|
||||||
|
我是OpenClaw可视化运维开源项目OpenClaw-bot-review的作者,欢迎提交issue和pr
|
||||||
|
|
||||||
|
据说 填表可以 领 MiniMax 30$ 的 Token @所有人
|
||||||
|
https://vrfi1sk8a0.feishu.cn/share/base/form/shrcndGDz9YAOoe3xkQyrx75bdc
|
||||||
|
|
||||||
|
免费模型:
|
||||||
|
https://openrouter.ai/
|
||||||
|
|
||||||
|
中转站聚合平台:
|
||||||
|
https://relaypulse.top/
|
||||||
|
|
||||||
|
测评结果:
|
||||||
|
https://my.feishu.cn/wiki/HlruwwdCriwb83k6sDbccLaenld?sheet=itHLaR
|
||||||
|
|
||||||
|
https://my.feishu.cn/wiki/HlruwwdCriwb83k6sDbccLaenld
|
||||||
|
|
||||||
|
https://my.feishu.cn/wiki/HlruwwdCriwb83k6sDbccLaenld?from=from_copylink
|
||||||
+11
-11
@@ -66,8 +66,8 @@ const translations: Record<Locale, Record<string, string>> = {
|
|||||||
"home.defaultModel": "預設模型",
|
"home.defaultModel": "預設模型",
|
||||||
"home.viewModels": "查看模型列表 →",
|
"home.viewModels": "查看模型列表 →",
|
||||||
"home.skillMgmt": "🧩 技能管理",
|
"home.skillMgmt": "🧩 技能管理",
|
||||||
"home.testAll": "測試綁定的模型",
|
"home.testAll": "測試已綁定模型",
|
||||||
"home.testingAll": "測試中...",
|
"home.testingAll": "測試模型中...",
|
||||||
"home.testOk": "正常",
|
"home.testOk": "正常",
|
||||||
"home.testFail": "異常",
|
"home.testFail": "異常",
|
||||||
"home.updatedAt": "更新於",
|
"home.updatedAt": "更新於",
|
||||||
@@ -86,8 +86,8 @@ const translations: Record<Locale, Record<string, string>> = {
|
|||||||
"home.noResponseData": "暫無回應時間資料",
|
"home.noResponseData": "暫無回應時間資料",
|
||||||
"home.testPlatforms": "測試平台連線",
|
"home.testPlatforms": "測試平台連線",
|
||||||
"home.testingPlatforms": "測試平台中...",
|
"home.testingPlatforms": "測試平台中...",
|
||||||
"home.testSessions": "測試 Agent",
|
"home.testSessions": "測試 Agent 會話",
|
||||||
"home.testingSessions": "測試中...",
|
"home.testingSessions": "測試會話中...",
|
||||||
"home.testDmSessions": "測試 DM Session",
|
"home.testDmSessions": "測試 DM Session",
|
||||||
"home.testingDmSessions": "測試中...",
|
"home.testingDmSessions": "測試中...",
|
||||||
"home.agentTaskTracking": "Agent 任務追蹤",
|
"home.agentTaskTracking": "Agent 任務追蹤",
|
||||||
@@ -354,8 +354,8 @@ const translations: Record<Locale, Record<string, string>> = {
|
|||||||
"home.defaultModel": "默认模型",
|
"home.defaultModel": "默认模型",
|
||||||
"home.viewModels": "查看模型列表 →",
|
"home.viewModels": "查看模型列表 →",
|
||||||
"home.skillMgmt": "🧩 技能管理",
|
"home.skillMgmt": "🧩 技能管理",
|
||||||
"home.testAll": "测试绑定的模型",
|
"home.testAll": "测试已绑定模型",
|
||||||
"home.testingAll": "测试中...",
|
"home.testingAll": "测试模型中...",
|
||||||
"home.testOk": "正常",
|
"home.testOk": "正常",
|
||||||
"home.testFail": "异常",
|
"home.testFail": "异常",
|
||||||
"home.updatedAt": "更新于",
|
"home.updatedAt": "更新于",
|
||||||
@@ -374,8 +374,8 @@ const translations: Record<Locale, Record<string, string>> = {
|
|||||||
"home.noResponseData": "暂无响应时间数据",
|
"home.noResponseData": "暂无响应时间数据",
|
||||||
"home.testPlatforms": "测试平台连通",
|
"home.testPlatforms": "测试平台连通",
|
||||||
"home.testingPlatforms": "测试平台中...",
|
"home.testingPlatforms": "测试平台中...",
|
||||||
"home.testSessions": "测试 Agent",
|
"home.testSessions": "测试 Agent 会话",
|
||||||
"home.testingSessions": "测试中...",
|
"home.testingSessions": "测试会话中...",
|
||||||
"home.testDmSessions": "测试 DM Session",
|
"home.testDmSessions": "测试 DM Session",
|
||||||
"home.testingDmSessions": "测试中...",
|
"home.testingDmSessions": "测试中...",
|
||||||
"home.agentTaskTracking": "Agent 任务追踪",
|
"home.agentTaskTracking": "Agent 任务追踪",
|
||||||
@@ -643,7 +643,7 @@ const translations: Record<Locale, Record<string, string>> = {
|
|||||||
"home.viewModels": "View Models →",
|
"home.viewModels": "View Models →",
|
||||||
"home.skillMgmt": "🧩 Skills",
|
"home.skillMgmt": "🧩 Skills",
|
||||||
"home.testAll": "Test Bound Models",
|
"home.testAll": "Test Bound Models",
|
||||||
"home.testingAll": "Testing...",
|
"home.testingAll": "Testing Models...",
|
||||||
"home.testOk": "OK",
|
"home.testOk": "OK",
|
||||||
"home.testFail": "Failed",
|
"home.testFail": "Failed",
|
||||||
"home.updatedAt": "Updated at",
|
"home.updatedAt": "Updated at",
|
||||||
@@ -662,8 +662,8 @@ const translations: Record<Locale, Record<string, string>> = {
|
|||||||
"home.noResponseData": "No response time data",
|
"home.noResponseData": "No response time data",
|
||||||
"home.testPlatforms": "Test Platforms",
|
"home.testPlatforms": "Test Platforms",
|
||||||
"home.testingPlatforms": "Testing Platforms...",
|
"home.testingPlatforms": "Testing Platforms...",
|
||||||
"home.testSessions": "Test Agents",
|
"home.testSessions": "Test Agent Sessions",
|
||||||
"home.testingSessions": "Testing...",
|
"home.testingSessions": "Testing Sessions...",
|
||||||
"home.testDmSessions": "Test DM Sessions",
|
"home.testDmSessions": "Test DM Sessions",
|
||||||
"home.testingDmSessions": "Testing...",
|
"home.testingDmSessions": "Testing...",
|
||||||
"home.agentTaskTracking": "Agent Task Tracking",
|
"home.agentTaskTracking": "Agent Task Tracking",
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"scopes": {
|
||||||
|
"tenant": [
|
||||||
|
"aily:file:read",
|
||||||
|
"aily:file:write",
|
||||||
|
"application:application.app_message_stats.overview:readonly",
|
||||||
|
"application:application:self_manage",
|
||||||
|
"application:bot.menu:write",
|
||||||
|
"cardkit:card:write",
|
||||||
|
"contact:contact.base:readonly",
|
||||||
|
"contact:user.employee_id:readonly",
|
||||||
|
"corehr:file:download",
|
||||||
|
"docs:document.content:read",
|
||||||
|
"event:ip_list",
|
||||||
|
"im:chat",
|
||||||
|
"im:chat.access_event.bot_p2p_chat:read",
|
||||||
|
"im:chat.members:bot_access",
|
||||||
|
"im:message",
|
||||||
|
"im:message.group_at_msg:readonly",
|
||||||
|
"im:message.group_msg",
|
||||||
|
"im:message.p2p_msg:readonly",
|
||||||
|
"im:message:readonly",
|
||||||
|
"im:message:send_as_bot",
|
||||||
|
"im:resource",
|
||||||
|
"sheets:spreadsheet",
|
||||||
|
"wiki:wiki:readonly"
|
||||||
|
],
|
||||||
|
"user": [
|
||||||
|
"aily:file:read",
|
||||||
|
"aily:file:write",
|
||||||
|
"contact:contact.base:readonly",
|
||||||
|
"im:chat.access_event.bot_p2p_chat:read"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user