@lobehub/lobehub 2.0.0-next.307 → 2.0.0-next.309

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.
Files changed (221) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/changelog/v1.json +21 -0
  3. package/locales/ar/agentGroup.json +5 -0
  4. package/locales/ar/chat.json +26 -0
  5. package/locales/ar/models.json +43 -5
  6. package/locales/ar/plugin.json +4 -5
  7. package/locales/ar/setting.json +11 -0
  8. package/locales/ar/subscription.json +2 -0
  9. package/locales/ar/tool.json +2 -0
  10. package/locales/bg-BG/agentGroup.json +5 -0
  11. package/locales/bg-BG/chat.json +26 -0
  12. package/locales/bg-BG/models.json +49 -3
  13. package/locales/bg-BG/plugin.json +4 -5
  14. package/locales/bg-BG/setting.json +11 -0
  15. package/locales/bg-BG/subscription.json +2 -0
  16. package/locales/bg-BG/tool.json +2 -0
  17. package/locales/de-DE/agentGroup.json +5 -0
  18. package/locales/de-DE/chat.json +26 -0
  19. package/locales/de-DE/models.json +48 -5
  20. package/locales/de-DE/plugin.json +4 -5
  21. package/locales/de-DE/setting.json +11 -0
  22. package/locales/de-DE/subscription.json +2 -0
  23. package/locales/de-DE/tool.json +2 -0
  24. package/locales/en-US/models.json +8 -6
  25. package/locales/en-US/plugin.json +3 -4
  26. package/locales/en-US/setting.json +10 -11
  27. package/locales/en-US/tool.json +2 -0
  28. package/locales/es-ES/agentGroup.json +5 -0
  29. package/locales/es-ES/chat.json +26 -0
  30. package/locales/es-ES/models.json +43 -5
  31. package/locales/es-ES/plugin.json +4 -5
  32. package/locales/es-ES/setting.json +11 -0
  33. package/locales/es-ES/subscription.json +2 -0
  34. package/locales/es-ES/tool.json +2 -0
  35. package/locales/fa-IR/agentGroup.json +5 -0
  36. package/locales/fa-IR/chat.json +26 -0
  37. package/locales/fa-IR/models.json +42 -5
  38. package/locales/fa-IR/plugin.json +4 -5
  39. package/locales/fa-IR/setting.json +11 -0
  40. package/locales/fa-IR/subscription.json +2 -0
  41. package/locales/fa-IR/tool.json +2 -0
  42. package/locales/fr-FR/agentGroup.json +5 -0
  43. package/locales/fr-FR/chat.json +26 -0
  44. package/locales/fr-FR/models.json +5 -5
  45. package/locales/fr-FR/plugin.json +4 -5
  46. package/locales/fr-FR/setting.json +11 -0
  47. package/locales/fr-FR/subscription.json +2 -0
  48. package/locales/fr-FR/tool.json +2 -0
  49. package/locales/it-IT/agentGroup.json +5 -0
  50. package/locales/it-IT/chat.json +26 -0
  51. package/locales/it-IT/models.json +1 -3
  52. package/locales/it-IT/plugin.json +4 -5
  53. package/locales/it-IT/setting.json +11 -0
  54. package/locales/it-IT/subscription.json +2 -0
  55. package/locales/it-IT/tool.json +2 -0
  56. package/locales/ja-JP/agentGroup.json +5 -0
  57. package/locales/ja-JP/chat.json +26 -0
  58. package/locales/ja-JP/models.json +1 -5
  59. package/locales/ja-JP/plugin.json +4 -5
  60. package/locales/ja-JP/setting.json +11 -0
  61. package/locales/ja-JP/subscription.json +2 -0
  62. package/locales/ja-JP/tool.json +2 -0
  63. package/locales/ko-KR/agentGroup.json +5 -0
  64. package/locales/ko-KR/chat.json +26 -0
  65. package/locales/ko-KR/models.json +1 -3
  66. package/locales/ko-KR/plugin.json +4 -5
  67. package/locales/ko-KR/setting.json +11 -0
  68. package/locales/ko-KR/subscription.json +2 -0
  69. package/locales/ko-KR/tool.json +2 -0
  70. package/locales/nl-NL/agentGroup.json +5 -0
  71. package/locales/nl-NL/chat.json +26 -0
  72. package/locales/nl-NL/models.json +35 -3
  73. package/locales/nl-NL/plugin.json +4 -5
  74. package/locales/nl-NL/setting.json +11 -0
  75. package/locales/nl-NL/subscription.json +2 -0
  76. package/locales/nl-NL/tool.json +2 -0
  77. package/locales/pl-PL/agentGroup.json +5 -0
  78. package/locales/pl-PL/chat.json +26 -0
  79. package/locales/pl-PL/models.json +1 -3
  80. package/locales/pl-PL/plugin.json +4 -5
  81. package/locales/pl-PL/setting.json +11 -0
  82. package/locales/pl-PL/subscription.json +2 -0
  83. package/locales/pl-PL/tool.json +2 -0
  84. package/locales/pt-BR/agentGroup.json +5 -0
  85. package/locales/pt-BR/chat.json +26 -0
  86. package/locales/pt-BR/models.json +50 -5
  87. package/locales/pt-BR/plugin.json +4 -5
  88. package/locales/pt-BR/setting.json +11 -0
  89. package/locales/pt-BR/subscription.json +2 -0
  90. package/locales/pt-BR/tool.json +2 -0
  91. package/locales/ru-RU/agentGroup.json +5 -0
  92. package/locales/ru-RU/chat.json +26 -0
  93. package/locales/ru-RU/models.json +22 -3
  94. package/locales/ru-RU/plugin.json +4 -5
  95. package/locales/ru-RU/setting.json +11 -0
  96. package/locales/ru-RU/subscription.json +2 -0
  97. package/locales/ru-RU/tool.json +2 -0
  98. package/locales/tr-TR/agentGroup.json +5 -0
  99. package/locales/tr-TR/chat.json +26 -0
  100. package/locales/tr-TR/models.json +36 -3
  101. package/locales/tr-TR/plugin.json +4 -5
  102. package/locales/tr-TR/setting.json +11 -0
  103. package/locales/tr-TR/subscription.json +2 -0
  104. package/locales/tr-TR/tool.json +2 -0
  105. package/locales/vi-VN/agentGroup.json +5 -0
  106. package/locales/vi-VN/chat.json +26 -0
  107. package/locales/vi-VN/models.json +1 -1
  108. package/locales/vi-VN/plugin.json +4 -5
  109. package/locales/vi-VN/setting.json +11 -0
  110. package/locales/vi-VN/subscription.json +2 -0
  111. package/locales/vi-VN/tool.json +2 -0
  112. package/locales/zh-CN/models.json +52 -5
  113. package/locales/zh-CN/plugin.json +6 -7
  114. package/locales/zh-CN/setting.json +10 -11
  115. package/locales/zh-CN/tool.json +2 -2
  116. package/locales/zh-TW/agentGroup.json +5 -0
  117. package/locales/zh-TW/chat.json +26 -0
  118. package/locales/zh-TW/models.json +54 -5
  119. package/locales/zh-TW/plugin.json +4 -5
  120. package/locales/zh-TW/setting.json +11 -0
  121. package/locales/zh-TW/subscription.json +2 -0
  122. package/locales/zh-TW/tool.json +2 -0
  123. package/package.json +1 -1
  124. package/packages/agent-runtime/src/types/state.ts +2 -0
  125. package/packages/builtin-tool-group-agent-builder/src/client/Inspector/GetAgentInfo/index.tsx +68 -0
  126. package/packages/builtin-tool-group-agent-builder/src/client/Inspector/index.ts +3 -0
  127. package/packages/builtin-tool-group-management/src/client/Inspector/ExecuteAgentTask/index.tsx +52 -8
  128. package/packages/builtin-tool-group-management/src/client/Render/ExecuteTask/index.tsx +2 -21
  129. package/packages/builtin-tool-group-management/src/executor.test.ts +6 -4
  130. package/packages/builtin-tool-group-management/src/manifest.ts +5 -1
  131. package/packages/builtin-tool-group-management/src/types.ts +2 -0
  132. package/packages/builtin-tool-local-system/src/client/Render/WriteFile/index.tsx +48 -5
  133. package/packages/builtin-tool-local-system/src/client/Streaming/WriteFile/index.tsx +39 -0
  134. package/packages/builtin-tool-local-system/src/client/Streaming/index.ts +2 -0
  135. package/packages/builtin-tool-memory/src/manifest.ts +581 -19
  136. package/packages/model-bank/src/aiModels/qiniu.ts +24 -0
  137. package/packages/types/src/topic/thread.ts +2 -2
  138. package/packages/types/src/userMemory/layers.ts +19 -8
  139. package/packages/types/src/userMemory/shared.ts +7 -1
  140. package/src/app/[variants]/(auth)/_layout/index.tsx +0 -2
  141. package/src/app/[variants]/(auth)/layout.tsx +0 -2
  142. package/src/app/[variants]/(auth)/login/[[...login]]/page.tsx +1 -3
  143. package/src/app/[variants]/(auth)/signup/[[...signup]]/page.tsx +1 -3
  144. package/src/app/[variants]/(desktop)/desktop-onboarding/_layout/index.tsx +0 -2
  145. package/src/app/[variants]/(main)/_layout/index.tsx +0 -2
  146. package/src/app/[variants]/(main)/agent/_layout/index.tsx +0 -2
  147. package/src/app/[variants]/(main)/agent/features/Portal/index.tsx +0 -2
  148. package/src/app/[variants]/(main)/community/(list)/_layout/index.tsx +0 -2
  149. package/src/app/[variants]/(main)/community/(list)/assistant/_layout/index.tsx +0 -2
  150. package/src/app/[variants]/(main)/community/(list)/mcp/_layout/index.tsx +0 -2
  151. package/src/app/[variants]/(main)/community/(list)/model/_layout/index.tsx +0 -2
  152. package/src/app/[variants]/(main)/community/_layout/index.tsx +0 -2
  153. package/src/app/[variants]/(main)/group/_layout/index.tsx +0 -2
  154. package/src/app/[variants]/(main)/group/features/Conversation/Header/index.tsx +4 -2
  155. package/src/app/[variants]/(main)/group/features/Portal/index.tsx +0 -2
  156. package/src/app/[variants]/(main)/home/_layout/index.tsx +0 -2
  157. package/src/app/[variants]/(main)/home/index.tsx +0 -2
  158. package/src/app/[variants]/(main)/image/_layout/Topics/TopicUrlSync.tsx +0 -2
  159. package/src/app/[variants]/(main)/image/_layout/index.tsx +0 -2
  160. package/src/app/[variants]/(main)/memory/_layout/index.tsx +0 -2
  161. package/src/app/[variants]/(main)/page/_layout/index.tsx +0 -2
  162. package/src/app/[variants]/(main)/resource/(home)/_layout/index.tsx +0 -2
  163. package/src/app/[variants]/(main)/resource/_layout/index.tsx +0 -2
  164. package/src/app/[variants]/(main)/resource/library/_layout/index.tsx +0 -2
  165. package/src/app/[variants]/(main)/resource/library/features/Container.tsx +0 -2
  166. package/src/app/[variants]/(main)/settings/_layout/index.tsx +0 -2
  167. package/src/app/[variants]/(main)/settings/about/index.tsx +0 -2
  168. package/src/app/[variants]/(main)/settings/agent/index.tsx +0 -2
  169. package/src/app/[variants]/(main)/settings/apikey/index.tsx +0 -2
  170. package/src/app/[variants]/(main)/settings/chat-appearance/index.tsx +0 -2
  171. package/src/app/[variants]/(main)/settings/common/index.tsx +0 -2
  172. package/src/app/[variants]/(main)/settings/hotkey/index.tsx +0 -2
  173. package/src/app/[variants]/(main)/settings/image/index.tsx +0 -2
  174. package/src/app/[variants]/(main)/settings/memory/index.tsx +0 -2
  175. package/src/app/[variants]/(main)/settings/provider/(list)/index.tsx +0 -2
  176. package/src/app/[variants]/(main)/settings/proxy/index.tsx +0 -2
  177. package/src/app/[variants]/(main)/settings/security/index.tsx +1 -3
  178. package/src/app/[variants]/(main)/settings/storage/index.tsx +0 -2
  179. package/src/app/[variants]/(main)/settings/tts/index.tsx +0 -2
  180. package/src/app/[variants]/(mobile)/(home)/_layout/index.tsx +0 -2
  181. package/src/app/[variants]/(mobile)/_layout/index.tsx +1 -3
  182. package/src/app/[variants]/(mobile)/chat/_layout/index.tsx +0 -2
  183. package/src/app/[variants]/(mobile)/chat/settings/_layout/index.tsx +0 -2
  184. package/src/app/[variants]/(mobile)/community/(detail)/_layout/index.tsx +0 -2
  185. package/src/app/[variants]/(mobile)/community/(list)/_layout/index.tsx +0 -2
  186. package/src/app/[variants]/(mobile)/community/_layout/index.tsx +0 -2
  187. package/src/app/[variants]/(mobile)/router/MobileClientRouter.tsx +0 -2
  188. package/src/app/[variants]/(mobile)/settings/index.tsx +0 -2
  189. package/src/app/[variants]/onboarding/_layout/index.tsx +0 -2
  190. package/src/app/[variants]/router/DesktopClientRouter.tsx +0 -2
  191. package/src/components/ModelSelect/index.tsx +6 -56
  192. package/src/components/server/MobileNavLayout.tsx +0 -2
  193. package/src/components/server/ServerLayout.tsx +0 -2
  194. package/src/features/ModelSwitchPanel/components/Footer.tsx +0 -2
  195. package/src/features/ModelSwitchPanel/components/List/MultipleProvidersModelItem.tsx +0 -1
  196. package/src/features/ModelSwitchPanel/components/List/SingleProviderModelItem.tsx +0 -1
  197. package/src/features/ModelSwitchPanel/components/List/VirtualItemRenderer.tsx +0 -1
  198. package/src/features/ModelSwitchPanel/components/List/index.tsx +15 -13
  199. package/src/features/ModelSwitchPanel/components/PanelContent.tsx +0 -2
  200. package/src/features/ModelSwitchPanel/index.tsx +21 -23
  201. package/src/features/ResourceManager/components/Explorer/MasonryView/index.tsx +0 -2
  202. package/src/features/User/UserAvatar.tsx +0 -2
  203. package/src/locales/default/plugin.ts +3 -1
  204. package/src/server/modules/AgentRuntime/RuntimeExecutors.ts +11 -3
  205. package/src/server/modules/Mecha/AgentToolsEngine/index.ts +14 -6
  206. package/src/server/modules/Mecha/AgentToolsEngine/types.ts +4 -3
  207. package/src/server/routers/lambda/aiAgent.ts +10 -0
  208. package/src/server/services/agent/index.test.ts +155 -0
  209. package/src/server/services/agent/index.ts +25 -0
  210. package/src/server/services/agentRuntime/AgentRuntimeService.ts +2 -0
  211. package/src/server/services/agentRuntime/types.ts +1 -0
  212. package/src/server/services/aiAgent/__tests__/execAgent.threadId.test.ts +29 -9
  213. package/src/server/services/aiAgent/index.ts +175 -6
  214. package/src/server/services/lobehubSkill/index.ts +109 -0
  215. package/src/server/services/toolExecution/builtin.ts +28 -2
  216. package/src/server/services/toolExecution/types.ts +3 -0
  217. package/src/store/chat/agents/GroupOrchestration/__tests__/call-supervisor.test.ts +305 -0
  218. package/src/store/chat/agents/GroupOrchestration/createGroupOrchestrationExecutors.ts +2 -1
  219. package/src/store/chat/agents/createAgentExecutors.ts +4 -2
  220. package/src/store/chat/slices/plugin/actions/exector.ts +92 -0
  221. package/src/store/chat/slices/plugin/actions/pluginTypes.ts +82 -177
@@ -103,7 +103,7 @@
103
103
  "Pro/deepseek-ai/DeepSeek-V3.description": "DeepSeek-V3 是一款擁有 6710 億參數的 MoE 模型,採用 MLA 與 DeepSeekMoE 架構,並透過無損負載平衡實現高效推理與訓練。預訓練於 14.8 兆高品質詞元上,並經過 SFT 與強化學習微調,表現超越其他開源模型,接近領先的封閉模型。",
104
104
  "Pro/moonshotai/Kimi-K2-Instruct-0905.description": "Kimi K2-Instruct-0905 是最新且最強大的 Kimi K2 模型。這是一款頂級的 MoE 模型,總參數達 1 兆,啟用參數為 320 億。其主要特點包括更強的代理式程式設計智能,在基準測試與真實世界代理任務中表現大幅提升,並且前端程式碼的美學與可用性也獲得顯著改善。",
105
105
  "Pro/moonshotai/Kimi-K2-Thinking.description": "Kimi K2 Thinking Turbo 是 K2 Thinking 的 Turbo 變體,針對推理速度與吞吐量進行優化,同時保留多步推理與工具使用能力。這是一款 MoE 模型,總參數約為 1 兆,原生支援 256K 上下文,並具備穩定的大規模工具調用能力,適用於對延遲與併發有嚴格要求的生產場景。",
106
- "Pro/zai-org/glm-4.7.description": "GLM-4.7 是智譜推出的新一代旗艦模型,總參數量達 355B,激活參數量為 32B,在通用對話、推理與智能體能力方面全面升級。GLM-4.7 強化了交錯思考(Interleaved Thinking),並引入保留思考(Preserved Thinking)與輪級思考(Turn-level Thinking),在多輪對話與複雜任務中展現更強的邏輯與連貫性。",
106
+ "Pro/zai-org/glm-4.7.description": "GLM-4.7 是智譜推出的新一代旗艦模型,擁有 3550 億總參數與 320 億活躍參數,在通用對話、推理與智能體能力方面全面升級。GLM-4.7 強化了交錯思維,並引入了保留思維與輪次級思維。",
107
107
  "QwQ-32B-Preview.description": "Qwen QwQ 是一個實驗性研究模型,專注於提升推理能力。",
108
108
  "Qwen/QVQ-72B-Preview.description": "QVQ-72B-Preview 是來自 Qwen 的研究模型,專注於視覺推理,擅長複雜場景理解與視覺數學問題。",
109
109
  "Qwen/QwQ-32B-Preview.description": "Qwen QwQ 是一個實驗性研究模型,致力於提升 AI 推理能力。",
@@ -388,7 +388,7 @@
388
388
  "deepseek-v3.1:671b.description": "DeepSeek V3.1 是新一代推理模型,強化複雜推理與思路鏈能力,適合需要深入分析的任務。",
389
389
  "deepseek-v3.2-exp.description": "deepseek-v3.2-exp 引入稀疏注意力機制,在處理長文本時提升訓練與推理效率,價格低於 deepseek-v3.1。",
390
390
  "deepseek-v3.2-think.description": "DeepSeek V3.2 Think 是完整的深度思考模型,具備更強的長鏈推理能力。",
391
- "deepseek-v3.2.description": "DeepSeek-V3.2 是深度求索推出的首款將思考融入工具使用的混合推理模型,透過高效架構節省算力、以大規模強化學習提升能力、並結合大規模合成任務資料強化泛化能力,三者融合使其效能媲美 GPT-5-High,輸出長度大幅降低,顯著減少計算成本與用戶等待時間。",
391
+ "deepseek-v3.2.description": "DeepSeek-V3.2 DeepSeek 首個融合推理能力的混合模型,將思考能力整合至工具使用中。透過高效架構節省運算資源,結合大規模強化學習提升能力,並利用大量合成任務數據強化泛化能力。三者結合使其表現可媲美 GPT-5-High,且大幅縮短輸出長度,顯著降低計算負擔與用戶等待時間。",
392
392
  "deepseek-v3.description": "DeepSeek-V3 是一款強大的 MoE 模型,總參數達 671B,每個 token 啟用 37B 參數。",
393
393
  "deepseek-vl2-small.description": "DeepSeek VL2 Small 是輕量級多模態模型,適用於資源受限與高併發場景。",
394
394
  "deepseek-vl2.description": "DeepSeek VL2 是一款多模態模型,支援圖文理解與細緻的視覺問答任務。",
@@ -434,7 +434,7 @@
434
434
  "doubao-seed-1.6-thinking.description": "Doubao-Seed-1.6-thinking 大幅強化推理能力,進一步提升程式設計、數學與邏輯推理核心能力,並新增視覺理解。支援 256k 上下文視窗與最多 16k 輸出字元。",
435
435
  "doubao-seed-1.6-vision.description": "Doubao-Seed-1.6-vision 是一款視覺深度推理模型,針對教育、圖像審查、檢測/安防與 AI 搜尋問答等場景提供更強的多模態理解與推理能力。支援 256k 上下文視窗與最多 64k 輸出字元。",
436
436
  "doubao-seed-1.6.description": "Doubao-Seed-1.6 是一款全新多模態深度推理模型,具備自動、思考與非思考模式。在非思考模式下,效能顯著超越 Doubao-1.5-pro/250115。支援 256k 上下文視窗與最多 16k 輸出字元。",
437
- "doubao-seed-1.8.description": "Doubao-Seed-1.8 擁有更強的多模態理解與 Agent 能力,支援文字/圖片/影片輸入與上下文快取,在複雜任務中展現更卓越的表現。",
437
+ "doubao-seed-1.8.description": "豆包 Seed-1.8 擁有更強的多模態理解與智能體能力,支援文字/圖片/影片輸入與上下文快取,在複雜任務中展現優異表現。",
438
438
  "doubao-seed-code.description": "Doubao-Seed-Code 專為代理式程式設計深度優化,支援多模態輸入(文字/圖片/影片)與 256k 上下文視窗,兼容 Anthropic API,適用於程式設計、視覺理解與代理工作流程。",
439
439
  "doubao-seededit-3-0-i2i-250628.description": "Doubao 影像模型(來自字節跳動 Seed)支援文字與圖像輸入,實現高度可控、高品質的圖像生成。支援文字引導的圖像編輯,輸出尺寸長邊介於 512 至 1536。",
440
440
  "doubao-seedream-3-0-t2i-250415.description": "Seedream 3.0 是字節跳動 Seed 團隊推出的圖像生成模型,支援文字與圖像輸入,實現高度可控、高品質的圖像生成。可根據文字提示生成圖像。",
@@ -560,8 +560,8 @@
560
560
  "glm-4.5-x.description": "GLM-4.5 快速版,生成速度高達每秒 100 個 token,效能出色。",
561
561
  "glm-4.5.description": "智譜旗艦模型,支援可切換思考模式,整體表現達開源 SOTA,支援最多 128K 上下文。",
562
562
  "glm-4.5v.description": "智譜新一代 MoE 視覺推理模型,總參數 106B,啟用 12B,於圖像、影片、文件理解與 GUI 任務中,在同級開源多模態模型中達到 SOTA 水準。",
563
- "glm-4.6.description": "智譜最新旗艦模型 GLM-4.6(355B)在高階編碼、長文本處理、推理與智能體能力上全面超越前代,特別在程式能力上對齊 Claude Sonnet 4,成為國內頂尖的 Coding 模型。",
564
- "glm-4.7.description": "GLM-4.7 是智譜最新旗艦模型,針對 Agentic Coding 場景強化了編碼能力、長程任務規劃與工具協同,並在多個公開基準榜單中取得開源模型領先表現。通用能力提升,回應更簡潔自然,寫作更具沉浸感。執行複雜智能體任務與工具調用時,指令遵循更強,Artifacts 與 Agentic Coding 的前端美感與長程任務完成效率進一步提升。",
563
+ "glm-4.6.description": "智譜最新旗艦模型 GLM-4.6(3550 億參數)在高階編碼、長文本處理、推理與智能體能力上全面超越前代,程式能力與 Claude Sonnet 4 相當,成為中國頂尖的編碼模型。",
564
+ "glm-4.7.description": "GLM-4.7 是智譜最新旗艦模型,針對智能體編碼場景進行強化,提升了編碼能力、長期任務規劃與工具協作能力。在多個公開基準測試中於開源模型中表現領先。通用能力方面,回應更簡潔自然,寫作更具沉浸感。對於複雜智能體任務,工具調用時的指令遵循能力更強,並進一步提升了 Artifacts 與智能體編碼的前端美學與長期任務完成效率。",
565
565
  "glm-4.description": "GLM-4 是 2024 年 1 月推出的舊版旗艦模型,現已由更強的 GLM-4-0520 取代。",
566
566
  "glm-4v-flash.description": "GLM-4V-Flash 專注於單張圖像的高效理解,適用於即時或批次圖像處理等快速分析場景。",
567
567
  "glm-4v-plus-0111.description": "GLM-4V-Plus 能理解影片與多張圖像,適合多模態任務。",
@@ -665,6 +665,55 @@
665
665
  "gpt-oss:120b.description": "GPT-OSS 120B 是 OpenAI 的大型開源 LLM,採用 MXFP4 量化,定位為旗艦模型。需多 GPU 或高階工作站環境,於複雜推理、程式碼生成與多語言處理方面表現優異,支援進階函式呼叫與工具整合。",
666
666
  "gpt-oss:20b.description": "GPT-OSS 20B 是 OpenAI 的開源 LLM,採用 MXFP4 量化,適用於高階消費級 GPU 或 Apple Silicon Mac。於對話生成、編碼與推理任務中表現良好,支援函式呼叫與工具使用。",
667
667
  "gpt-realtime.description": "通用即時模型,支援即時文字與音訊輸入/輸出,並支援圖片輸入。",
668
+ "grok-2-image-1212.description": "我們最新的圖像生成模型可根據提示生成生動、寫實的圖像,特別適用於行銷、社群媒體與娛樂場景。",
669
+ "grok-2-vision-1212.description": "提升了準確性、指令遵循能力與多語言支持。",
670
+ "grok-3-mini.description": "一款在回應前先思考的輕量模型。適合不需深度領域知識的邏輯任務,具備快速反應與原始推理軌跡存取能力。",
671
+ "grok-3.description": "旗艦模型,擅長企業應用如資料擷取、程式編寫與摘要,具備金融、醫療、法律與科學等領域的深度知識。",
672
+ "grok-4-0709.description": "xAI 的 Grok 4,具備強大的推理能力。",
673
+ "grok-4-1-fast-non-reasoning.description": "前沿多模態模型,針對高效能智能體工具使用進行優化。",
674
+ "grok-4-1-fast-reasoning.description": "前沿多模態模型,針對高效能智能體工具使用進行優化。",
675
+ "grok-4-fast-non-reasoning.description": "我們很高興推出 Grok 4 Fast,這是我們在高性價比推理模型上的最新進展。",
676
+ "grok-4-fast-reasoning.description": "我們很高興推出 Grok 4 Fast,這是我們在高性價比推理模型上的最新進展。",
677
+ "grok-4.description": "我們最新且最強大的旗艦模型,在自然語言處理、數學與推理方面表現卓越,是理想的全能型模型。",
678
+ "grok-code-fast-1.description": "我們很高興推出 grok-code-fast-1,一款快速且高性價比的推理模型,特別擅長智能體編碼。",
679
+ "groq/compound-mini.description": "Compound-mini 是一個由 GroqCloud 支援的複合式 AI 系統,整合多個公開模型,能智慧選擇工具來回應用戶查詢。",
680
+ "groq/compound.description": "Compound 是一個由 GroqCloud 支援的複合式 AI 系統,整合多個公開模型,能智慧選擇工具來回應用戶查詢。",
681
+ "gryphe/mythomax-l2-13b.description": "MythoMax L2 13B 是一款融合多個頂尖模型的創意型智慧語言模型。",
682
+ "hunyuan-a13b.description": "混合推理模型 Hunyuan-A13B,從 hunyuan-standard-256K(總參數 800 億,活躍參數 130 億)升級而來。預設為慢思考模式,並可透過參數或前綴 /no_think 切換快/慢思考。整體能力較前代大幅提升,特別是在數學、科學、長文本理解與智能體任務方面。",
683
+ "hunyuan-code.description": "最新程式碼生成模型,使用 2000 億高品質程式碼與六個月 SFT 訓練,支援 8K 上下文。在五種語言的自動化基準測試中名列前茅,並在十項人工評估指標中表現優異。",
684
+ "hunyuan-functioncall.description": "最新 MoE FunctionCall 模型,使用高品質函數調用數據訓練,具備 32K 上下文視窗,在多項基準測試中表現領先。",
685
+ "hunyuan-large-longcontext.description": "擅長長文檔任務如摘要與問答,同時具備通用生成能力。對於複雜、細節豐富內容的長文本分析與生成表現出色。",
686
+ "hunyuan-large-vision.description": "由 Hunyuan Large 訓練的視覺語言模型,支援多圖+文字輸入,解析度不限,並提升多語言視覺理解能力。",
687
+ "hunyuan-large.description": "Hunyuan-large 擁有約 3890 億總參數與約 520 億活躍參數,是目前最大且最強的開源 MoE Transformer 架構模型。",
688
+ "hunyuan-lite-vision.description": "最新 70 億參數多模態模型,具備 32K 上下文視窗,支援中英文多模態對話、物體識別、文檔表格理解與多模態數學,在多項基準測試中超越同級模型。",
689
+ "hunyuan-lite.description": "升級為 MoE 架構,支援 256K 上下文視窗,在 NLP、程式碼、數學與產業基準測試中領先多數開源模型。",
690
+ "hunyuan-pro.description": "兆級參數 MOE-32K 長上下文模型,在複雜指令與推理、高階數學、函數調用方面表現優異,並針對多語翻譯、金融、法律與醫療領域進行優化。",
691
+ "hunyuan-role.description": "最新角色扮演模型,經過角色扮演數據集精調,為角色扮演場景提供更強的基礎表現。",
692
+ "hunyuan-standard-256K.description": "透過改進路由機制減少負載不均與專家崩潰問題。在長上下文中達成 99.9% 的 needle-in-a-haystack 成就。MOE-256K 進一步擴展上下文長度與品質。",
693
+ "hunyuan-standard-vision.description": "最新多模態模型,具備多語言回應能力,中英文表現均衡。",
694
+ "hunyuan-standard.description": "透過改進路由機制減少負載不均與專家崩潰問題。在長上下文中達成 99.9% 的 needle-in-a-haystack 成就。MOE-32K 提供強大價值並能處理長輸入。",
695
+ "hunyuan-t1-20250321.description": "在文藝與 STEM 能力間取得平衡,具備強大的長文本資訊捕捉能力。支援數學、邏輯、科學與程式問題的推理解答,涵蓋各種難度。",
696
+ "hunyuan-t1-20250403.description": "提升專案級程式碼生成與寫作品質,加強多輪主題理解與 ToB 指令遵循,改善詞彙層級理解,減少簡繁混用與中英混雜輸出問題。",
697
+ "hunyuan-t1-20250529.description": "提升創意寫作與作文能力,加強前端編碼、數學與邏輯推理,並增強指令遵循能力。",
698
+ "hunyuan-t1-20250711.description": "大幅提升高難度數學、邏輯與程式能力,增強輸出穩定性與長文本處理能力。",
699
+ "hunyuan-t1-latest.description": "顯著提升慢思考模型在高難度數學、複雜推理、困難編碼、指令遵循與創意寫作品質方面的表現。",
700
+ "hunyuan-t1-vision-20250619.description": "最新 t1-vision 多模態深度推理模型,具備原生長鏈思維,較前代預設版本有顯著提升。",
701
+ "hunyuan-t1-vision-20250916.description": "最新 t1-vision 深度推理模型,在 VQA、視覺對齊、OCR、圖表、拍照題解與圖像創作方面有重大突破,並強化英文與低資源語言能力。",
702
+ "hunyuan-turbo-20241223.description": "本版本提升指令擴展能力以增強泛化性,顯著改善數學/程式/邏輯推理,增強詞彙層級理解與寫作品質。",
703
+ "hunyuan-turbo-latest.description": "在 NLP 理解、寫作、對話、問答、翻譯與專業領域方面全面提升體驗;回應更具人性化,對模糊意圖澄清更佳,詞彙解析更準確,創意與互動性更高,多輪對話能力更強。",
704
+ "hunyuan-turbo-vision.description": "下一代視覺語言旗艦模型,採用全新 MoE 架構,在識別、內容創作、知識問答與分析推理方面全面升級。",
705
+ "hunyuan-turbo.description": "混元下一代大型語言模型預覽版,採用全新 MoE 架構,推理速度更快,整體表現超越 hunyuan-pro。",
706
+ "hunyuan-turbos-20250313.description": "統一數學解題風格,加強多輪數學問答。寫作風格更自然,減少 AI 感,提升語言潤色。",
707
+ "hunyuan-turbos-20250416.description": "升級預訓練基座以提升指令理解與遵循能力;對齊強化數學、程式、邏輯與科學能力;改善寫作品質、閱讀理解、翻譯準確性與知識問答;加強智能體能力,特別是多輪理解。",
708
+ "hunyuan-turbos-20250604.description": "升級預訓練基座,提升寫作與閱讀理解能力,在程式與 STEM 領域取得重大進展,並改善複雜指令遵循能力。",
709
+ "hunyuan-turbos-20250926.description": "升級預訓練數據品質與後訓練策略,提升智能體能力、英文與低資源語言表現、指令遵循、程式與 STEM 能力。",
710
+ "hunyuan-turbos-latest.description": "最新混元 TurboS 旗艦模型,推理能力更強,整體體驗更佳。",
711
+ "hunyuan-turbos-longtext-128k-20250325.description": "擅長長文檔任務如摘要與問答,同時具備通用生成能力。對於複雜、細節豐富內容的長文本分析與生成表現出色。",
712
+ "hunyuan-turbos-role-plus.description": "最新角色扮演模型,經過角色扮演數據集精調,為角色扮演場景提供更強的基礎表現。",
713
+ "hunyuan-turbos-vision-20250619.description": "最新 TurboS 視覺語言旗艦模型,在圖文任務如實體識別、知識問答、文案撰寫與拍照題解方面取得重大進展。",
714
+ "hunyuan-turbos-vision.description": "基於最新 TurboS 的下一代視覺語言旗艦模型,專注於圖文理解任務,如實體識別、知識問答、文案撰寫與拍照題解。",
715
+ "hunyuan-vision-1.5-instruct.description": "基於文本 TurboS 基座打造的圖生文快思考模型,較前代在圖像基礎識別、圖像分析推理等方面有明顯提升。",
716
+ "hunyuan-vision.description": "最新多模態模型,支援圖像+文字輸入以生成文字。",
668
717
  "meta/Llama-3.2-90B-Vision-Instruct.description": "先進的圖像推理能力,適用於視覺理解代理應用。",
669
718
  "meta/Llama-3.3-70B-Instruct.description": "Llama 3.3 是最先進的多語言開源 Llama 模型,以極低成本提供接近 405B 的效能。該模型基於 Transformer 架構,並透過 SFT 與 RLHF 提升實用性與安全性。經指令微調版本針對多語言對話進行最佳化,在業界基準測試中超越多數開放與封閉模型。知識截止時間:2023 年 12 月。",
670
719
  "meta/Meta-Llama-3-70B-Instruct.description": "一款功能強大的 70B 參數模型,擅長推理、程式編寫與廣泛語言任務。",
@@ -61,18 +61,16 @@
61
61
  "builtins.lobe-group-agent-builder.inspector.title": "標題",
62
62
  "builtins.lobe-group-agent-builder.title": "群組代理建構器",
63
63
  "builtins.lobe-group-management.apiName.broadcast": "所有人發言",
64
- "builtins.lobe-group-management.apiName.createAgent": "新增團隊成員",
65
64
  "builtins.lobe-group-management.apiName.createWorkflow": "規劃工作流程",
66
- "builtins.lobe-group-management.apiName.executeTask": "執行任務",
65
+ "builtins.lobe-group-management.apiName.executeAgentTask": "執行代理任務",
66
+ "builtins.lobe-group-management.apiName.executeAgentTasks": "執行平行代理任務",
67
67
  "builtins.lobe-group-management.apiName.getAgentInfo": "取得成員資訊",
68
68
  "builtins.lobe-group-management.apiName.interrupt": "中斷任務",
69
- "builtins.lobe-group-management.apiName.inviteAgent": "邀請成員",
70
- "builtins.lobe-group-management.apiName.removeAgent": "移除成員",
71
- "builtins.lobe-group-management.apiName.searchAgent": "尋找相關專家",
72
69
  "builtins.lobe-group-management.apiName.speak": "指定成員發言",
73
70
  "builtins.lobe-group-management.apiName.summarize": "總結對話",
74
71
  "builtins.lobe-group-management.apiName.vote": "發起投票",
75
72
  "builtins.lobe-group-management.inspector.broadcast.title": "以下代理人發言:",
73
+ "builtins.lobe-group-management.inspector.executeAgentTasks.title": "指派任務給:",
76
74
  "builtins.lobe-group-management.inspector.speak.title": "指定代理人發言:",
77
75
  "builtins.lobe-group-management.title": "協調團隊",
78
76
  "builtins.lobe-gtd.apiName.clearTodos": "清除待辦",
@@ -175,6 +173,7 @@
175
173
  "builtins.lobe-user-memory.apiName.removeIdentityMemory": "刪除身份記憶",
176
174
  "builtins.lobe-user-memory.apiName.searchUserMemory": "搜尋記憶",
177
175
  "builtins.lobe-user-memory.apiName.updateIdentityMemory": "更新身份記憶",
176
+ "builtins.lobe-user-memory.inspector.noResults": "沒有結果",
178
177
  "builtins.lobe-user-memory.title": "記憶",
179
178
  "builtins.lobe-web-browsing.apiName.crawlMultiPages": "讀取多個頁面內容",
180
179
  "builtins.lobe-web-browsing.apiName.crawlSinglePage": "讀取頁面內容",
@@ -173,8 +173,11 @@
173
173
  "llm.waitingForMoreLinkAriaLabel": "開啟模型服務商接入需求表單",
174
174
  "marketPublish.forkConfirm.by": "由 {{author}}",
175
175
  "marketPublish.forkConfirm.confirm": "確認發佈",
176
+ "marketPublish.forkConfirm.confirmGroup": "確認發佈",
176
177
  "marketPublish.forkConfirm.description": "您即將發佈一個基於社群中現有代理所衍生的版本。您的新代理將作為獨立項目發佈至市集。",
178
+ "marketPublish.forkConfirm.descriptionGroup": "您即將根據社群中現有的群組發佈一個衍生版本。您的新群組將作為獨立項目發佈至市集。",
177
179
  "marketPublish.forkConfirm.title": "發佈衍生代理",
180
+ "marketPublish.forkConfirm.titleGroup": "發佈衍生群組",
178
181
  "marketPublish.modal.changelog.extra": "描述此版本的主要變更與改進",
179
182
  "marketPublish.modal.changelog.label": "變更日誌",
180
183
  "marketPublish.modal.changelog.maxLengthError": "變更日誌不能超過 500 個字元",
@@ -190,22 +193,28 @@
190
193
  "marketPublish.modal.identifier.required": "請輸入助手識別碼",
191
194
  "marketPublish.modal.loading.fetchingRemote": "正在載入遠端資料...",
192
195
  "marketPublish.modal.loading.submit": "正在發布助手...",
196
+ "marketPublish.modal.loading.submitGroup": "正在提交群組...",
193
197
  "marketPublish.modal.loading.upload": "正在發布新版本...",
198
+ "marketPublish.modal.loading.uploadGroup": "正在發佈新群組版本...",
194
199
  "marketPublish.modal.messages.createVersionFailed": "版本建立失敗:{{message}}",
195
200
  "marketPublish.modal.messages.fetchRemoteFailed": "取得遠端助手資料失敗",
196
201
  "marketPublish.modal.messages.missingIdentifier": "目前的助手尚未設定社群識別碼",
202
+ "marketPublish.modal.messages.noGroup": "未選擇任何群組",
197
203
  "marketPublish.modal.messages.notAuthenticated": "請先登入社群帳號",
198
204
  "marketPublish.modal.messages.publishFailed": "發布失敗:{{message}}",
199
205
  "marketPublish.modal.submitButton": "發布",
200
206
  "marketPublish.modal.title.submit": "分享到助手社群",
201
207
  "marketPublish.modal.title.upload": "發布新版本",
202
208
  "marketPublish.resultModal.message": "您創作的助手已提交審核,通過後將自動上線。",
209
+ "marketPublish.resultModal.messageGroup": "您的群組已提交審核,審核通過後將自動上線。",
203
210
  "marketPublish.resultModal.title": "提交成功",
204
211
  "marketPublish.resultModal.view": "前往社群查看",
205
212
  "marketPublish.submit.button": "分享到社群",
206
213
  "marketPublish.submit.tooltip": "分享助手到社群",
214
+ "marketPublish.submitGroup.tooltip": "分享此群組至社群",
207
215
  "marketPublish.upload.button": "發布新版本",
208
216
  "marketPublish.upload.tooltip": "發佈新版本到助手社群",
217
+ "marketPublish.uploadGroup.tooltip": "發佈新版本至群組社群",
209
218
  "memory.enabled.desc": "允許 LobeHub 從對話中提取偏好與資訊,並於日後使用。您可隨時檢視、編輯或清除記憶內容。",
210
219
  "memory.enabled.title": "啟用記憶功能",
211
220
  "memory.title": "記憶設定",
@@ -254,6 +263,7 @@
254
263
  "plugin.settings.title": "{{id}} 外掛設定",
255
264
  "plugin.settings.tooltip": "外掛設定",
256
265
  "plugin.store": "外掛商店",
266
+ "publishToCommunity": "發佈至社群",
257
267
  "settingAgent.avatar.sizeExceeded": "圖片大小超過 1MB 限制,請選擇較小的圖片",
258
268
  "settingAgent.avatar.title": "頭像",
259
269
  "settingAgent.backgroundColor.title": "背景色",
@@ -483,6 +493,7 @@
483
493
  "submitAgentModal.placeholder": "請輸入助手的標識符,需要是唯一的,比如 web-development",
484
494
  "submitAgentModal.success": "助手提交成功",
485
495
  "submitAgentModal.tooltips": "分享到助手社群",
496
+ "submitGroupModal.tooltips": "分享至群組社群",
486
497
  "sync.device.deviceName.hint": "添加名稱以便於識別",
487
498
  "sync.device.deviceName.placeholder": "請輸入裝置名稱",
488
499
  "sync.device.deviceName.title": "裝置名稱",
@@ -54,6 +54,8 @@
54
54
  "funds.packages.expiresIn": "{{days}} 天後過期",
55
55
  "funds.packages.expiresToday": "今日過期",
56
56
  "funds.packages.expiringSoon": "即將過期",
57
+ "funds.packages.gift": "禮物",
58
+ "funds.packages.giftedOn": "於 {{date}} 贈送",
57
59
  "funds.packages.noPackages": "尚無點數方案",
58
60
  "funds.packages.purchaseFirst": "購買您的第一個點數方案",
59
61
  "funds.packages.purchasedOn": "購買於 {{date}}",
@@ -15,6 +15,8 @@
15
15
  "agentGroupManagement.executeTask.thread": "Thread ID",
16
16
  "agentGroupManagement.executeTask.timeout": "執行逾時",
17
17
  "agentGroupManagement.executeTask.tokens": "Token 消耗",
18
+ "agentGroupManagement.executeTasks.intervention.instructionPlaceholder": "請輸入代理執行此任務的詳細指示……",
19
+ "agentGroupManagement.executeTasks.intervention.titlePlaceholder": "任務標題……",
18
20
  "codeInterpreter-legacy.error": "執行錯誤",
19
21
  "codeInterpreter-legacy.executing": "執行中...",
20
22
  "codeInterpreter-legacy.files": "檔案:",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/lobehub",
3
- "version": "2.0.0-next.307",
3
+ "version": "2.0.0-next.309",
4
4
  "description": "LobeHub - an open-source,comprehensive AI Agent framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.",
5
5
  "keywords": [
6
6
  "framework",
@@ -17,6 +17,8 @@ export interface AgentState {
17
17
  tools?: any[];
18
18
  systemRole?: string;
19
19
  toolManifestMap: Record<string, any>;
20
+ /** Tool source map for routing tool execution to correct handler */
21
+ toolSourceMap?: Record<string, 'builtin' | 'plugin' | 'mcp' | 'klavis' | 'lobehubSkill'>;
20
22
 
21
23
  /**
22
24
  * Model runtime configuration
@@ -0,0 +1,68 @@
1
+ 'use client';
2
+
3
+ import type { BuiltinInspectorProps } from '@lobechat/types';
4
+ import { Avatar, Flexbox } from '@lobehub/ui';
5
+ import { createStaticStyles, cx } from 'antd-style';
6
+ import { memo } from 'react';
7
+ import { useTranslation } from 'react-i18next';
8
+
9
+ import { shinyTextStyles } from '@/styles';
10
+
11
+ import type { GetAgentInfoParams } from '../../../types';
12
+
13
+ interface GetAgentInfoState {
14
+ avatar?: string;
15
+ title?: string;
16
+ }
17
+
18
+ const styles = createStaticStyles(({ css, cssVar: cv }) => ({
19
+ root: css`
20
+ overflow: hidden;
21
+ display: flex;
22
+ gap: 8px;
23
+ align-items: center;
24
+ `,
25
+ title: css`
26
+ flex-shrink: 0;
27
+ color: ${cv.colorTextSecondary};
28
+ white-space: nowrap;
29
+ `,
30
+ }));
31
+
32
+ export const GetAgentInfoInspector = memo<
33
+ BuiltinInspectorProps<GetAgentInfoParams, GetAgentInfoState>
34
+ >(({ args, partialArgs, isArgumentsStreaming, isLoading, pluginState }) => {
35
+ const { t } = useTranslation('plugin');
36
+
37
+ const agentId = args?.agentId || partialArgs?.agentId;
38
+ const title = pluginState?.title;
39
+ const avatar = pluginState?.avatar;
40
+
41
+ // Initial streaming state
42
+ if (isArgumentsStreaming && !agentId) {
43
+ return (
44
+ <div className={cx(styles.root, shinyTextStyles.shinyText)}>
45
+ <span>{t('builtins.lobe-group-agent-builder.apiName.getAgentInfo')}</span>
46
+ </div>
47
+ );
48
+ }
49
+
50
+ return (
51
+ <Flexbox
52
+ align={'center'}
53
+ className={cx(styles.root, (isArgumentsStreaming || isLoading) && shinyTextStyles.shinyText)}
54
+ gap={8}
55
+ horizontal
56
+ >
57
+ <span className={styles.title}>
58
+ {t('builtins.lobe-group-agent-builder.apiName.getAgentInfo')}:
59
+ </span>
60
+ {avatar && <Avatar avatar={avatar} shape={'square'} size={20} title={title || undefined} />}
61
+ <span>{title || agentId}</span>
62
+ </Flexbox>
63
+ );
64
+ });
65
+
66
+ GetAgentInfoInspector.displayName = 'GetAgentInfoInspector';
67
+
68
+ export default GetAgentInfoInspector;
@@ -10,6 +10,7 @@ import { type BuiltinInspector } from '@lobechat/types';
10
10
  import { GroupAgentBuilderApiName } from '../../types';
11
11
  import { BatchCreateAgentsInspector } from './BatchCreateAgents';
12
12
  import { CreateAgentInspector } from './CreateAgent';
13
+ import { GetAgentInfoInspector } from './GetAgentInfo';
13
14
  import { InviteAgentInspector } from './InviteAgent';
14
15
  import { RemoveAgentInspector } from './RemoveAgent';
15
16
  import { SearchAgentInspector } from './SearchAgent';
@@ -27,6 +28,7 @@ export const GroupAgentBuilderInspectors: Record<string, BuiltinInspector> = {
27
28
  // Group-specific inspectors
28
29
  [GroupAgentBuilderApiName.batchCreateAgents]: BatchCreateAgentsInspector as BuiltinInspector,
29
30
  [GroupAgentBuilderApiName.createAgent]: CreateAgentInspector as BuiltinInspector,
31
+ [GroupAgentBuilderApiName.getAgentInfo]: GetAgentInfoInspector as BuiltinInspector,
30
32
  [GroupAgentBuilderApiName.inviteAgent]: InviteAgentInspector as BuiltinInspector,
31
33
  [GroupAgentBuilderApiName.removeAgent]: RemoveAgentInspector as BuiltinInspector,
32
34
  [GroupAgentBuilderApiName.searchAgent]: SearchAgentInspector as BuiltinInspector,
@@ -44,6 +46,7 @@ export const GroupAgentBuilderInspectors: Record<string, BuiltinInspector> = {
44
46
  // Re-export individual inspectors
45
47
  export { BatchCreateAgentsInspector } from './BatchCreateAgents';
46
48
  export { CreateAgentInspector } from './CreateAgent';
49
+ export { GetAgentInfoInspector } from './GetAgentInfo';
47
50
  export { InviteAgentInspector } from './InviteAgent';
48
51
  export { RemoveAgentInspector } from './RemoveAgent';
49
52
  export { SearchAgentInspector } from './SearchAgent';
@@ -32,6 +32,7 @@ export const ExecuteAgentTaskInspector = memo<BuiltinInspectorProps<ExecuteTaskP
32
32
  const { t } = useTranslation('plugin');
33
33
 
34
34
  const agentId = args?.agentId || partialArgs?.agentId;
35
+ const taskTitle = args?.title || partialArgs?.title;
35
36
 
36
37
  // Get active group ID and agent from store
37
38
  const activeGroupId = useAgentGroupStore(agentGroupSelectors.activeGroupId);
@@ -42,12 +43,47 @@ export const ExecuteAgentTaskInspector = memo<BuiltinInspectorProps<ExecuteTaskP
42
43
  );
43
44
  const theme = useTheme();
44
45
 
45
- if (isArgumentsStreaming && !agent) {
46
- return (
47
- <div className={cx(styles.root, shinyTextStyles.shinyText)}>
48
- <span>{t('builtins.lobe-group-management.apiName.executeAgentTask')}</span>
49
- </div>
50
- );
46
+ if (isArgumentsStreaming) {
47
+ if (!agent && !taskTitle)
48
+ return (
49
+ <div className={cx(styles.root, shinyTextStyles.shinyText)}>
50
+ <span>{t('builtins.lobe-group-management.apiName.executeAgentTask')}</span>
51
+ </div>
52
+ );
53
+ if (agent) {
54
+ return (
55
+ <Flexbox
56
+ align={'center'}
57
+ className={cx(styles.root, isArgumentsStreaming && shinyTextStyles.shinyText)}
58
+ gap={8}
59
+ horizontal
60
+ >
61
+ <span className={styles.title}>
62
+ {t('builtins.lobe-group-management.inspector.executeAgentTask.assignTo')}
63
+ </span>
64
+ {agent && (
65
+ <>
66
+ <Avatar
67
+ avatar={agent.avatar || DEFAULT_AVATAR}
68
+ background={agent.backgroundColor || theme.colorBgContainer}
69
+ shape={'square'}
70
+ size={24}
71
+ title={agent.title || undefined}
72
+ />
73
+ <span>{agent?.title}</span>
74
+ </>
75
+ )}
76
+ {taskTitle && (
77
+ <>
78
+ <span className={styles.title}>
79
+ {t('builtins.lobe-group-management.inspector.executeAgentTask.task')}
80
+ </span>
81
+ <span className={highlightTextStyles.primary}>{taskTitle}</span>
82
+ </>
83
+ )}
84
+ </Flexbox>
85
+ );
86
+ }
51
87
  }
52
88
 
53
89
  const agentName = agent?.title || agentId;
@@ -60,7 +96,7 @@ export const ExecuteAgentTaskInspector = memo<BuiltinInspectorProps<ExecuteTaskP
60
96
  horizontal
61
97
  >
62
98
  <span className={styles.title}>
63
- {t('builtins.lobe-group-management.inspector.executeAgentTask.title')}
99
+ {t('builtins.lobe-group-management.inspector.executeAgentTask.assignTo')}
64
100
  </span>
65
101
  {agent && (
66
102
  <Avatar
@@ -71,7 +107,15 @@ export const ExecuteAgentTaskInspector = memo<BuiltinInspectorProps<ExecuteTaskP
71
107
  title={agent.title || undefined}
72
108
  />
73
109
  )}
74
- {agentName && <span className={highlightTextStyles.primary}>{agentName}</span>}
110
+ {agentName && <span>{agentName}</span>}
111
+ {taskTitle && (
112
+ <>
113
+ <span className={styles.title}>
114
+ {t('builtins.lobe-group-management.inspector.executeAgentTask.task')}
115
+ </span>
116
+ <span className={highlightTextStyles.primary}>{taskTitle}</span>
117
+ </>
118
+ )}
75
119
  </Flexbox>
76
120
  );
77
121
  },
@@ -1,15 +1,12 @@
1
1
  'use client';
2
2
 
3
3
  import { BuiltinRenderProps } from '@lobechat/types';
4
- import { Avatar, Flexbox, Text } from '@lobehub/ui';
4
+ import { Flexbox, Text } from '@lobehub/ui';
5
5
  import { createStaticStyles } from 'antd-style';
6
6
  import { Clock } from 'lucide-react';
7
7
  import { memo } from 'react';
8
8
  import { useTranslation } from 'react-i18next';
9
9
 
10
- import { useAgentGroupStore } from '@/store/agentGroup';
11
- import { agentGroupSelectors } from '@/store/agentGroup/selectors';
12
-
13
10
  import type { ExecuteTaskParams, ExecuteTaskState } from '../../../types';
14
11
 
15
12
  const styles = createStaticStyles(({ css, cssVar }) => ({
@@ -40,14 +37,6 @@ const ExecuteTaskRender = memo<BuiltinRenderProps<ExecuteTaskParams, ExecuteTask
40
37
  ({ args }) => {
41
38
  const { t } = useTranslation('tool');
42
39
 
43
- // Get agent info from store
44
- const activeGroupId = useAgentGroupStore(agentGroupSelectors.activeGroupId);
45
- const agent = useAgentGroupStore((s) =>
46
- args?.agentId && activeGroupId
47
- ? agentGroupSelectors.getAgentByIdFromGroup(activeGroupId, args.agentId)(s)
48
- : undefined,
49
- );
50
-
51
40
  const timeoutMinutes = args?.timeout ? Math.round(args.timeout / 60_000) : 30;
52
41
 
53
42
  return (
@@ -55,15 +44,7 @@ const ExecuteTaskRender = memo<BuiltinRenderProps<ExecuteTaskParams, ExecuteTask
55
44
  {/* Header: Agent info + Timeout */}
56
45
  <Flexbox align={'center'} gap={12} horizontal justify={'space-between'}>
57
46
  <Flexbox align={'center'} flex={1} gap={12} horizontal style={{ minWidth: 0 }}>
58
- <Avatar
59
- avatar={agent?.avatar || '🤖'}
60
- background={agent?.backgroundColor || undefined}
61
- size={24}
62
- style={{ borderRadius: 8, flexShrink: 0 }}
63
- />
64
- <span className={styles.agentTitle}>
65
- {agent?.title || t('agentGroupManagement.executeTask.intervention.unknownAgent')}
66
- </span>
47
+ <span className={styles.agentTitle}>{args?.title}</span>
67
48
  </Flexbox>
68
49
  <Flexbox align="center" className={styles.timeout} gap={4} horizontal>
69
50
  <Clock size={14} />
@@ -280,7 +280,7 @@ describe('GroupManagementExecutor', () => {
280
280
  const ctx = createMockContext();
281
281
 
282
282
  const result = await groupManagementExecutor.executeAgentTask(
283
- { agentId: 'agent-1', task: 'Do something' },
283
+ { agentId: 'agent-1', task: 'Do something', title: 'Test Task' },
284
284
  ctx,
285
285
  );
286
286
 
@@ -291,6 +291,7 @@ describe('GroupManagementExecutor', () => {
291
291
  agentId: 'agent-1',
292
292
  task: 'Do something',
293
293
  timeout: undefined,
294
+ title: 'Test Task',
294
295
  type: 'executeAgentTask',
295
296
  });
296
297
  });
@@ -314,7 +315,7 @@ describe('GroupManagementExecutor', () => {
314
315
  );
315
316
 
316
317
  await groupManagementExecutor.executeAgentTask(
317
- { agentId: 'agent-1', task: 'Do something', timeout: 30000 },
318
+ { agentId: 'agent-1', task: 'Do something', timeout: 30000, title: 'Test Task' },
318
319
  ctx,
319
320
  );
320
321
 
@@ -339,7 +340,7 @@ describe('GroupManagementExecutor', () => {
339
340
  const ctx = createMockContext();
340
341
 
341
342
  const result = await groupManagementExecutor.executeAgentTask(
342
- { agentId: 'agent-1', task: 'Do something' },
343
+ { agentId: 'agent-1', task: 'Do something', title: 'Test Task' },
343
344
  ctx,
344
345
  );
345
346
 
@@ -351,7 +352,7 @@ describe('GroupManagementExecutor', () => {
351
352
  const ctx = createMockContext();
352
353
 
353
354
  const result = await groupManagementExecutor.executeAgentTask(
354
- { agentId: 'agent-1', task: 'Do something', timeout: 60000 },
355
+ { agentId: 'agent-1', task: 'Do something', timeout: 60000, title: 'Test Task' },
355
356
  ctx,
356
357
  );
357
358
 
@@ -360,6 +361,7 @@ describe('GroupManagementExecutor', () => {
360
361
  agentId: 'agent-1',
361
362
  task: 'Do something',
362
363
  timeout: 60000,
364
+ title: 'Test Task',
363
365
  type: 'executeAgentTask',
364
366
  });
365
367
  });
@@ -95,6 +95,10 @@ export const GroupManagementManifest: BuiltinToolManifest = {
95
95
  description: 'The ID of the agent to execute the task.',
96
96
  type: 'string',
97
97
  },
98
+ title: {
99
+ description: 'Brief title describing what this task does (shown in UI).',
100
+ type: 'string',
101
+ },
98
102
  task: {
99
103
  description:
100
104
  'Clear description of the task to perform. Be specific about expected deliverables.',
@@ -113,7 +117,7 @@ export const GroupManagementManifest: BuiltinToolManifest = {
113
117
  type: 'boolean',
114
118
  },
115
119
  },
116
- required: ['agentId', 'task'],
120
+ required: ['agentId', 'title', 'task'],
117
121
  type: 'object',
118
122
  },
119
123
  },
@@ -80,6 +80,8 @@ export interface ExecuteTaskParams {
80
80
  skipCallSupervisor?: boolean;
81
81
  task: string;
82
82
  timeout?: number;
83
+ /** Brief title describing what this task does (shown in UI) */
84
+ title: string;
83
85
  }
84
86
 
85
87
  export interface TaskItem {
@@ -1,22 +1,65 @@
1
1
  import { type WriteLocalFileParams } from '@lobechat/electron-client-ipc';
2
2
  import { type BuiltinRenderProps } from '@lobechat/types';
3
- import { Flexbox, Icon, Skeleton } from '@lobehub/ui';
3
+ import { Flexbox, Highlighter, Icon, Markdown, Skeleton } from '@lobehub/ui';
4
+ import { createStaticStyles } from 'antd-style';
4
5
  import { ChevronRight } from 'lucide-react';
5
6
  import path from 'path-browserify-esm';
6
7
  import { memo } from 'react';
7
8
 
8
9
  import { LocalFile, LocalFolder } from '@/features/LocalFile';
9
10
 
11
+ const styles = createStaticStyles(({ css, cssVar }) => ({
12
+ container: css`
13
+ padding: 8px;
14
+ border-radius: ${cssVar.borderRadiusLG};
15
+ background: ${cssVar.colorFillQuaternary};
16
+ `,
17
+ previewBox: css`
18
+ overflow: hidden;
19
+ border-radius: 8px;
20
+ background: ${cssVar.colorBgContainer};
21
+ `,
22
+ }));
23
+
10
24
  const WriteFile = memo<BuiltinRenderProps<WriteLocalFileParams>>(({ args }) => {
11
25
  if (!args) return <Skeleton active />;
12
26
 
13
27
  const { base, dir } = path.parse(args.path);
28
+ const ext = path.extname(args.path).slice(1).toLowerCase();
29
+
30
+ const renderContent = () => {
31
+ if (!args.content) return null;
32
+
33
+ if (ext === 'md' || ext === 'mdx') {
34
+ return (
35
+ <Markdown style={{ maxHeight: 240, overflow: 'auto', padding: '0 8px' }}>
36
+ {args.content}
37
+ </Markdown>
38
+ );
39
+ }
40
+
41
+ return (
42
+ <Highlighter
43
+ language={ext || 'text'}
44
+ showLanguage={false}
45
+ style={{ maxHeight: 240, overflow: 'auto' }}
46
+ variant={'borderless'}
47
+ wrap
48
+ >
49
+ {args.content}
50
+ </Highlighter>
51
+ );
52
+ };
14
53
 
15
54
  return (
16
- <Flexbox horizontal>
17
- <LocalFolder path={dir} />
18
- <Icon icon={ChevronRight} />
19
- <LocalFile name={base} path={args.path} />
55
+ <Flexbox className={styles.container} gap={12}>
56
+ <Flexbox align={'center'} horizontal>
57
+ <LocalFolder path={dir} />
58
+ <Icon icon={ChevronRight} />
59
+ <LocalFile name={base} path={args.path} />
60
+ </Flexbox>
61
+
62
+ {args.content && <Flexbox className={styles.previewBox}>{renderContent()}</Flexbox>}
20
63
  </Flexbox>
21
64
  );
22
65
  });