feat(wizard): rework agent onboarding flow (#2471)

* feat(wizard): rework agent onboarding flow

* fix(web): support LAN development access

* fix(wizard): parse ranked model selection entries

* feat(wizard): add inbound bot verification

* feat(wizard): add floating page bot verification

* fix(wizard): repair HTTP bot inbound test setup

* feat(wizard): streamline custom model onboarding

* feat(wizard): label page bot test preview

* style(space): apply ruff formatting

* fix(wizard): polish AI engine onboarding

* fix(wizard): clarify local account message test

* feat(wizard): animate AI engine transitions

* fix(wizard): align AI engine setup headers

---------

Co-authored-by: langbot-dev <langbot@users.noreply.github.com>
Co-authored-by: RockChinQ <rockchinq@gmail.com>
This commit is contained in:
Dongchuan Fu
2026-08-28 01:30:30 +08:00
committed by GitHub
parent 855ae2bdba
commit be3734ffda
33 changed files with 2319 additions and 271 deletions
+67 -1
View File
@@ -1827,14 +1827,80 @@ const enUS = {
resaveBot: 'Re-save Configuration',
botSaved:
'Bot configuration saved and enabled. Check the logs to verify the connection.',
waitingForMessage:
'The bot is enabled. Send it a message from your IM platform to continue.',
messageReceived:
'The bot received an IM message. You can continue to the next step.',
messageReceivedLocalAccountWarning:
'The bot-side connection is configured correctly and received an IM message. Because you are not signed in with a LangBot Account, model calls may fail; continue to the next step to add your own model.',
pageBotTestPrompt:
'Page Bot is enabled. Click the chat bubble in the lower-right corner and send a message to verify the full conversation flow.',
pageBotTestNotice:
'For testing only. Embed the code on a real external webpage.',
webhookTestPrompt:
'The callback URL is ready. Configure it on the external platform, then send the bot a real message.',
httpTestPrompt:
'HTTP Bot is enabled. Send a real inbound message here to verify the connection.',
httpTestDefaultMessage: 'Hello, this is a connection test message.',
sendHttpTest: 'Send Test Message',
httpTestAccepted:
'The test message was accepted. It will appear in the log shortly.',
httpTestMissingSecret:
'Enter an inbound signing secret and save the configuration first.',
httpTestFailed: 'Failed to send the test message: {{error}}',
logsTitle: 'Bot Logs',
logsDescription:
'Monitor bot activity to verify the platform connection is working.',
},
aiEngine: {
title: 'Select an AI Engine',
title: 'Configure AI Engine',
description:
"Choose the AI engine that will power your bot's intelligence.",
optionalDescription:
'This step is optional. Choose how you want to continue with the current agent.',
externalTitle: 'Connect an External Agent',
externalDescription:
'Connect Dify, n8n, Coze, or another platform and replace the bot pipeline.',
ownModelTitle: 'Use My Own Model',
ownModelDescription:
'Add a provider, then scan or manually enter a model to finish setup.',
ownModelSetupTitle: 'Add Your Own Model',
ownModelSetupDescription:
'Add a model provider. Chat models are scanned automatically, or you can enter a model ID manually.',
addProviderTitle: 'Add Provider',
addProviderDescription:
'Enter the provider details and API key used to connect and scan models.',
selectModelTitle: 'Choose a Model',
selectScannedModelTitle: 'Choose a Model',
selectScannedModelDescription:
'The selected model will be the primary model of a new pipeline, and the bot will switch to it.',
scanModelMode: 'Scan Models',
manualModelMode: 'Add Manually',
scanningModels: 'Scanning available models…',
noScannedModels:
'No available chat models were found. Check the provider configuration.',
scanModelsFailed:
'Model scanning failed. Check the URL and API key, then try again.',
manualFallbackFailed:
'Automatic scanning failed. Enter a model ID supported by the provider.',
manualFallbackEmpty:
'No models were found. Enter a model ID supported by the provider.',
manualModelId: 'Model ID',
manualModelIdPlaceholder: 'For example: gpt-4o',
manualModelIdDescription:
'Enter the model parameter used in model requests.',
manualModelOptions: 'Optional Model Capabilities',
editProvider: 'Edit provider',
rescanModels: 'Scan models again',
moreFeaturesTitle: 'Add More Agent Features',
moreFeaturesDescription:
'Open the workbench to add tools, knowledge bases, and other capabilities to the Agent that was just generated automatically.',
runnerDescription:
'Select a runner for the external agent and configure its connection.',
backToChoices: 'Back to options',
createExternal: 'Create and Bind',
finishWithModel: 'Use Selected Model & Finish',
openWorkbench: 'Open Workbench',
},
config: {
botInfo: 'Bot Information',
+66 -1
View File
@@ -1744,14 +1744,79 @@ const jaJP = {
resaveBot: '設定を再保存',
botSaved:
'ボット設定が保存され、有効になりました。ログを確認して接続を検証してください。',
waitingForMessage:
'ボットが有効になりました。続行するには IM からメッセージを送信してください。',
messageReceived:
'ボットが IM メッセージを受信しました。次のステップに進めます。',
messageReceivedLocalAccountWarning:
'ボット側の接続設定は正常で、IM メッセージを受信できています。LangBot Account でログインしていないためモデル呼び出しが失敗する場合がありますが、次のステップで独自のモデルを追加できます。',
pageBotTestPrompt:
'ページボットが有効になりました。右下のチャットバブルをクリックしてメッセージを送信し、会話フロー全体を確認してください。',
pageBotTestNotice:
'テスト専用です。実際の外部 Web ページにコードを埋め込んでください。',
webhookTestPrompt:
'コールバック URL の準備ができました。外部プラットフォームに設定し、ボットへ実際のメッセージを送信してください。',
httpTestPrompt:
'HTTP Bot が有効になりました。実際の受信メッセージを送信して接続を確認できます。',
httpTestDefaultMessage: 'こんにちは。これは接続テストメッセージです。',
sendHttpTest: 'テストメッセージを送信',
httpTestAccepted:
'テストメッセージを受け付けました。まもなくログに表示されます。',
httpTestMissingSecret:
'受信署名シークレットを入力し、先に設定を保存してください。',
httpTestFailed: 'テストメッセージの送信に失敗しました:{{error}}',
logsTitle: 'ボットログ',
logsDescription:
'ボットの活動を監視して、プラットフォーム接続が正常に動作していることを確認します。',
},
aiEngine: {
title: 'AIエンジンを選択',
title: 'AIエンジンを設定',
description:
'ボットのインテリジェンスを駆動するAIエンジンを選択してください。',
optionalDescription:
'このステップは任意です。現在の Agent をどのように設定するか選択してください。',
externalTitle: '外部プラットフォームの Agent を接続',
externalDescription:
'Dify、n8n、Coze などを接続し、ボットのパイプラインを置き換えます。',
ownModelTitle: '自分のモデルを使用',
ownModelDescription:
'プロバイダーを追加し、モデルをスキャンまたは手動入力して設定を完了します。',
ownModelSetupTitle: '自分のモデルを追加',
ownModelSetupDescription:
'モデルプロバイダーを追加すると自動スキャンされます。モデル ID の手動入力も可能です。',
addProviderTitle: 'プロバイダーを追加',
addProviderDescription:
'接続とモデルスキャンに使用するプロバイダー情報と API キーを入力します。',
selectModelTitle: 'モデルを選択',
selectScannedModelTitle: 'モデルを選択',
selectScannedModelDescription:
'選択したモデルを新しいパイプラインのメインモデルに設定し、ボットをそのパイプラインへ切り替えます。',
scanModelMode: 'モデルをスキャン',
manualModelMode: '手動で追加',
scanningModels: '利用可能なモデルをスキャン中…',
noScannedModels:
'利用可能なチャットモデルが見つかりません。プロバイダー設定を確認してください。',
scanModelsFailed:
'モデルのスキャンに失敗しました。URL と API キーを確認して再試行してください。',
manualFallbackFailed:
'自動スキャンに失敗しました。プロバイダーが対応するモデル ID を直接入力できます。',
manualFallbackEmpty:
'モデルが見つかりませんでした。プロバイダーが対応するモデル ID を直接入力できます。',
manualModelId: 'モデル ID',
manualModelIdPlaceholder: '例:gpt-4o',
manualModelIdDescription:
'モデルリクエストで実際に使用する model パラメーターを入力します。',
manualModelOptions: '任意のモデル機能',
editProvider: 'プロバイダーを編集',
rescanModels: 'モデルを再スキャン',
moreFeaturesTitle: 'Agent に機能を追加',
moreFeaturesDescription:
'ワークベンチを開き、自動生成されたばかりの Agent にツール、ナレッジベースなどの機能を追加します。',
runnerDescription: '外部 Agent の Runner を選択し、接続を設定します。',
backToChoices: '選択肢に戻る',
createExternal: '作成して関連付ける',
finishWithModel: '選択したモデルを使用して完了',
openWorkbench: 'ワークベンチを開く',
},
config: {
botInfo: 'ボット情報',
+54 -1
View File
@@ -1749,12 +1749,65 @@ const zhHans = {
saveBot: '保存并启用',
resaveBot: '重新保存配置',
botSaved: '机器人配置已保存并启用,请查看日志确认连接正常。',
waitingForMessage: '机器人已启用。请在 IM 中向机器人发送一条消息以继续。',
messageReceived: '机器人已成功收到 IM 消息,可以进入下一步。',
messageReceivedLocalAccountWarning:
'机器人侧已配置正常并成功收到 IM 消息。当前未通过 LangBot Account 登录,模型调用可能报错;可以进入下一步添加自己的模型。',
pageBotTestPrompt:
'页面机器人已启用。点击右下角聊天气泡并发送一条消息,验证完整对话链路。',
pageBotTestNotice: '仅供测试使用,请嵌入代码到真实外部网页。',
webhookTestPrompt:
'回调地址已就绪。将它配置到外部平台,然后向机器人发送一条真实消息。',
httpTestPrompt: 'HTTP Bot 已启用。可直接发送一条真实入站消息验证连接。',
httpTestDefaultMessage: '你好,这是一条连接测试消息。',
sendHttpTest: '发送测试消息',
httpTestAccepted: '测试消息已被机器人接收,请稍候查看日志。',
httpTestMissingSecret: '请先填写入站签名密钥并重新保存。',
httpTestFailed: '测试消息发送失败:{{error}}',
logsTitle: '机器人日志',
logsDescription: '监控机器人活动,确认平台连接是否正常工作。',
},
aiEngine: {
title: '选择 AI 引擎',
title: '配置 AI 引擎',
description: '选择驱动机器人智能的 AI 引擎。',
optionalDescription: '这一步可选。选择接下来要如何完善当前 Agent。',
externalTitle: '接入外部平台 Agent',
externalDescription:
'接入 Dify、n8n、Coze 等平台,并替换当前机器人的流水线。',
ownModelTitle: '改成使用自己的模型',
ownModelDescription:
'添加模型供应商,自动扫描或手动填写模型以快速完成引导。',
ownModelSetupTitle: '添加你自己的模型',
ownModelSetupDescription:
'先添加模型供应商,保存后会自动扫描,也可以手动填写模型 ID。',
addProviderTitle: '添加供应商',
addProviderDescription: '填写供应商和 API Key,用于连接并扫描模型。',
selectModelTitle: '选择模型',
selectScannedModelTitle: '选择一个模型',
selectScannedModelDescription:
'选中的模型将作为新流水线的主模型,机器人会切换到这条流水线。',
scanModelMode: '扫描模型',
manualModelMode: '手动添加',
scanningModels: '正在扫描可用模型…',
noScannedModels: '没有扫描到可用的对话模型,请检查供应商配置。',
scanModelsFailed: '模型扫描失败,请检查地址和 API Key 后重试。',
manualFallbackFailed: '自动扫描失败,你可以直接填写中转站支持的模型 ID。',
manualFallbackEmpty:
'没有扫描到可用模型,你可以直接填写中转站支持的模型 ID。',
manualModelId: '模型 ID',
manualModelIdPlaceholder: '例如:gpt-4o',
manualModelIdDescription: '填写模型请求中实际使用的 model 参数。',
manualModelOptions: '可选模型能力',
editProvider: '修改供应商',
rescanModels: '重新扫描模型',
moreFeaturesTitle: '给现在的 Agent 配置更多功能',
moreFeaturesDescription:
'进入工作台,为刚刚自动生成的 Agent 添加工具、知识库等能力',
runnerDescription: '选择外部 Agent 的 Runner 并完成连接配置。',
backToChoices: '返回选项',
createExternal: '创建并绑定',
finishWithModel: '使用所选模型并完成',
openWorkbench: '进入工作台',
},
config: {
botInfo: '机器人信息',
+3 -1
View File
@@ -1584,11 +1584,13 @@ const zhHant = {
saveBot: '儲存並啟用',
resaveBot: '重新儲存配置',
botSaved: '機器人配置已儲存並啟用,請查看日誌確認連接正常。',
messageReceivedLocalAccountWarning:
'機器人側已配置正常並成功收到 IM 訊息。目前未透過 LangBot Account 登入,模型呼叫可能報錯;可以進入下一步新增自己的模型。',
logsTitle: '機器人日誌',
logsDescription: '監控機器人活動,確認平台連接是否正常運作。',
},
aiEngine: {
title: '選擇 AI 引擎',
title: '配置 AI 引擎',
description: '選擇驅動機器人智慧的 AI 引擎。',
},
config: {