{ "planner_version": "4", "fixture_only": true, "legacy_sections": { "local-agent": { "model": { "primary": "synthetic-model", "fallbacks": [] }, "max-round": 10, "prompt": [ { "role": "system", "content": "Synthetic prompt" } ], "enable-all-tools": false, "tools": [] }, "dify-service-api": { "base-url": "https://dify.invalid/v1", "api-key": "synthetic-key", "app-type": "chat", "base-prompt": "Synthetic prompt" }, "coze-api": { "api-key": "synthetic-key", "bot-id": "synthetic-bot", "api-base": "https://api.coze.cn", "auto_save_history": false, "timeout": 120 }, "dashscope-app-api": { "api-key": "synthetic-key", "app-id": "synthetic-app", "app-type": "agent", "references_quote": "Synthetic references" }, "n8n-service-api": { "webhook-url": "https://n8n.invalid/hook?token=synthetic", "auth-type": "none", "timeout": 120, "output-key": "response", "response-handling": "reply" }, "langflow-api": { "base-url": "https://langflow.invalid", "api-key": "synthetic-key", "flow-id": "synthetic-flow", "input_type": "chat", "output_type": "chat", "tweaks": "{}" }, "deerflow-api": { "api-base": "https://deerflow.invalid", "api-key": "synthetic-key", "auth-header": "", "assistant-id": "lead_agent", "model-name": "synthetic-model", "thinking-enabled": false, "plan-mode": false, "subagent-enabled": false, "max-concurrent-subagents": 3, "timeout": 300, "recursion-limit": 1000 }, "tbox-app-api": { "api-key": "synthetic-key", "app-id": "synthetic-app" }, "weknora-api": { "base-url": "https://weknora.invalid/api/v1", "api-key": "synthetic-key", "app-type": "agent", "knowledge-base-ids": [ "remote-kb" ], "web-search-enabled": false } }, "plugins": { "LocalAgent": { "manifest": { "apiVersion": "v1", "kind": "Plugin", "metadata": { "author": "langbot-team", "name": "LocalAgent", "version": "0.1.10", "repository": "https://github.com/langbot-app/langbot-plugins/tree/main/Runner/LocalAgent", "label": { "en_US": "Local Agent", "zh_Hans": "内置 Agent", "zh_Hant": "內建 Agent", "ja_JP": "組み込みエージェント", "th_TH": "เอเจนต์ในตัว", "vi_VN": "Tác nhân tích hợp", "es_ES": "Agente integrado", "ru_RU": "Встроенный агент" }, "description": { "en_US": "Built-in agent with model fallback, tools, and knowledge retrieval.", "zh_Hans": "内置 Agent,支持模型 fallback、工具调用和知识库检索。", "zh_Hant": "內建 Agent,支援模型備援、工具呼叫與知識庫檢索。", "ja_JP": "モデルのフォールバック、ツール呼び出し、ナレッジ検索に対応する組み込みエージェントです。", "th_TH": "เอเจนต์ในตัวที่รองรับโมเดลสำรอง การเรียกใช้เครื่องมือ และการค้นคืนความรู้", "vi_VN": "Tác nhân tích hợp hỗ trợ mô hình dự phòng, gọi công cụ và truy xuất tri thức.", "es_ES": "Agente integrado con modelos de respaldo, herramientas y recuperación de conocimiento.", "ru_RU": "Встроенный агент с резервными моделями, инструментами и поиском по базе знаний." }, "icon": "assets/icon.svg" }, "spec": { "config": [], "components": { "Runner": { "fromDirs": [ { "path": "components/runner/" } ] } }, "pages": [] }, "execution": { "python": { "path": "main.py", "attr": "LocalAgentPlugin" } } }, "component": { "apiVersion": "langbot/v1", "kind": "Runner", "metadata": { "name": "default", "label": { "en_US": "Local Agent", "zh_Hans": "本地 Agent" }, "description": { "en_US": "Built-in agent with model fallback, tools, and knowledge retrieval.", "zh_Hans": "内置 Agent,支持模型 fallback、工具调用和知识库检索。" } }, "spec": { "usages": [ "agent" ], "config": [ { "name": "model", "description": { "en_US": "Primary/fallback model UUIDs and per-model reasoning levels. Host validates and applies reasoning for every request; this is per-pipeline configuration.", "zh_Hans": "主模型/备用模型 UUID 与各模型推理等级。由 Host 对每次请求校验并应用,属于流水线独立配置。" }, "label": { "en_US": "Model", "zh_Hans": "模型" }, "type": "model-fallback-selector", "required": true, "default": { "primary": "", "fallbacks": [], "reasoning": {} } }, { "name": "prompt", "label": { "en_US": "Prompt", "zh_Hans": "提示词" }, "type": "prompt-editor", "required": true, "default": [ { "role": "system", "content": "You are a helpful assistant." } ] }, { "name": "knowledge-bases", "label": { "en_US": "Knowledge Bases", "zh_Hans": "知识库" }, "type": "knowledge-base-multi-selector", "required": false, "default": [] }, { "name": "box-enabled", "label": { "en_US": "Sandbox", "zh_Hans": "沙箱" }, "description": { "en_US": "Use Box for code execution and file processing.", "zh_Hans": "使用 Box 执行代码和处理文件。" }, "type": "boolean", "required": false, "default": true }, { "name": "box-session-id-template", "label": { "en_US": "Sandbox reuse", "zh_Hans": "沙箱复用范围" }, "description": { "en_US": "Choose how sandbox files and environments are shared. Custom templates substitute {variable_name}, for example {launcher_type}_{launcher_id}_{sender_id}. Equal results reuse the same sandbox; {global} shares one sandbox throughout the workspace. Available variables: {launcher_type}, {launcher_id}, {sender_id}, {conversation_id}, {bot_id}, {query_id}, {run_id}, {event_id}, {event_type}, and public request variables. Only named variables are supported, not expressions or attribute access; unavailable variables cause an error.", "zh_Hans": "选择沙箱文件和环境的共享方式。自定义模板使用 {变量名} 插值,如 {launcher_type}_{launcher_id}_{sender_id};插值结果相同就复用同一个沙箱,{global} 表示在工作区内全局共享。可用变量:{launcher_type}(会话类型)、{launcher_id}(会话 ID)、{sender_id}(用户 ID)、{conversation_id}(对话上下文 ID)、{bot_id}(机器人 ID)、{query_id}(请求 ID)、{run_id}(运行 ID)、{event_id}(事件 ID)、{event_type}(事件类型),也可引用公开请求变量。仅支持变量名,不支持运算或属性访问;变量不可用时会报错。" }, "type": "select", "required": true, "default": "{launcher_type}_{launcher_id}", "show_if": { "field": "box-enabled", "operator": "eq", "value": true }, "allow_custom": true, "options": [ { "name": "{global}", "label": { "en_US": "Global (shared by all)", "zh_Hans": "全局(所有人共享)", "zh_Hant": "全域(所有人共用)", "ja_JP": "グローバル(全員共有)", "vi_VN": "Toàn cục (chia sẻ cho tất cả)", "th_TH": "ทั่วไป (แชร์ทั้งหมด)", "es_ES": "Global (compartido por todos)", "ru_RU": "Глобальный (общий для всех)" } }, { "name": "{launcher_type}_{launcher_id}", "label": { "en_US": "Per chat (Recommended)", "zh_Hans": "每个会话(推荐)", "zh_Hant": "每個會話(推薦)", "ja_JP": "チャットごと(推奨)", "vi_VN": "Mỗi cuộc trò chuyện (Khuyến nghị)", "th_TH": "ต่อแชท (แนะนำ)", "es_ES": "Por chat (Recomendado)", "ru_RU": "По чату (Рекомендуется)" } }, { "name": "{launcher_type}_{launcher_id}_{sender_id}", "label": { "en_US": "Per user in chat", "zh_Hans": "会话中每个用户", "zh_Hant": "會話中每個用戶", "ja_JP": "チャット内のユーザーごと", "vi_VN": "Mỗi người dùng trong cuộc trò chuyện", "th_TH": "ต่อผู้ใช้ในแชท", "es_ES": "Por usuario en chat", "ru_RU": "По пользователю в чате" } }, { "name": "{launcher_type}_{launcher_id}_{conversation_id}", "label": { "en_US": "Per conversation context", "zh_Hans": "每个对话上下文", "zh_Hant": "每個對話上下文", "ja_JP": "会話コンテキストごと", "vi_VN": "Mỗi ngữ cảnh hội thoại", "th_TH": "ต่อบริบทการสนทนา", "es_ES": "Por contexto de conversación", "ru_RU": "По контексту разговора" } }, { "name": "{query_id}", "label": { "en_US": "Per message (isolated)", "zh_Hans": "每条消息(完全隔离)", "zh_Hant": "每條訊息(完全隔離)", "ja_JP": "メッセージごと(隔離)", "vi_VN": "Mỗi tin nhắn (cách ly)", "th_TH": "ต่อข้อความ (แยกส่วน)", "es_ES": "Por mensaje (aislado)", "ru_RU": "По сообщению (изолированно)" } } ] }, { "name": "advanced-settings", "label": { "en_US": "Advanced Settings", "zh_Hans": "高级设置" }, "description": { "en_US": "Show tuning controls for retrieval, tools, timeouts, and context management.", "zh_Hans": "显示检索、工具、超时和上下文管理的调优选项。" }, "type": "boolean", "required": false, "default": false }, { "name": "date-grounding", "label": { "en_US": "Current Date Grounding", "zh_Hans": "当前日期锚定" }, "description": { "en_US": "Add the current UTC date and a reminder to verify time-sensitive facts with available search tools.", "zh_Hans": "注入当前 UTC 日期,并提醒使用可用搜索工具核实有时效性的信息。" }, "type": "boolean", "required": false, "default": true, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "timeout", "label": { "en_US": "Timeout", "zh_Hans": "执行超时" }, "type": "integer", "required": false, "default": 300, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "remove-think", "label": { "en_US": "Remove Thinking Output", "zh_Hans": "移除思考内容" }, "type": "boolean", "required": false, "default": false, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "retrieval-top-k", "label": { "en_US": "Retrieval Top K", "zh_Hans": "知识库检索数量" }, "type": "integer", "required": false, "default": 5, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "rerank-model", "label": { "en_US": "Rerank Model", "zh_Hans": "重排序模型" }, "type": "rerank-model-selector", "required": false, "default": "", "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "rerank-top-k", "label": { "en_US": "Rerank Top K", "zh_Hans": "重排序保留数量" }, "type": "integer", "required": false, "default": 5, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "max-tool-iterations", "label": { "en_US": "Max Tool Iterations", "zh_Hans": "最大工具调用轮数" }, "type": "integer", "required": false, "default": 100, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "tool-execution-mode", "description": { "en_US": "Parallel is faster for independent tools. Use serial for dependent or side-effecting actions; result order does not guarantee execution order.", "zh_Hans": "并行适合独立工具;有依赖或副作用的操作请选择串行。结果排列不保证执行顺序。" }, "label": { "en_US": "Tool Execution Mode", "zh_Hans": "工具执行模式" }, "type": "select", "required": false, "default": "parallel", "options": [ { "name": "parallel", "label": { "en_US": "Parallel", "zh_Hans": "并行" } }, { "name": "serial", "label": { "en_US": "Serial", "zh_Hans": "串行" } } ], "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "max-tool-result-chars", "label": { "en_US": "Max Tool Result Characters", "zh_Hans": "最大工具结果字符数" }, "type": "integer", "required": false, "default": 20000, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "context-history-fetch-limit", "label": { "en_US": "History Fetch Limit", "zh_Hans": "历史消息拉取数量" }, "type": "integer", "required": false, "default": 50, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "context-window-tokens", "label": { "en_US": "Context Window Tokens", "zh_Hans": "上下文窗口 Token 数" }, "type": "integer", "required": false, "default": 200000, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "context-reserve-tokens", "label": { "en_US": "Reserved Output Tokens", "zh_Hans": "输出保留 Token 数" }, "type": "integer", "required": false, "default": 16384, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "context-keep-recent-tokens", "label": { "en_US": "Recent Context Tokens", "zh_Hans": "最近上下文 Token 数" }, "type": "integer", "required": false, "default": 20000, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "context-summary-tokens", "label": { "en_US": "Summary Tokens", "zh_Hans": "摘要 Token 数" }, "type": "integer", "required": false, "default": 8000, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } } ], "capabilities": { "streaming": true, "tool_calling": true, "knowledge_retrieval": true, "multimodal_input": true, "skill_authoring": true, "interrupt": true, "steering": true }, "permissions": { "models": [ "count_tokens", "invoke", "stream", "rerank" ], "tools": [ "detail", "call" ], "knowledge_bases": [ "list", "retrieve" ], "history": [ "page" ] } }, "execution": { "python": { "path": "default.py", "attr": "DefaultRunner" } } }, "package_sha256": "52780785960722cbc0f2a9335c48a852cf631a32e4d04ce1e1ff601af7c0b599", "schema_sha256": "cdb336b8655b53dec482cfe9e191d0ed1d409929423584e5848255aabe499338" }, "dify-agent": { "manifest": { "apiVersion": "v1", "kind": "Plugin", "metadata": { "author": "langbot-team", "name": "DifyAgent", "version": "0.1.10", "repository": "https://github.com/langbot-app/langbot-plugins/tree/main/Runner/dify-agent", "label": { "en_US": "Dify Agent", "zh_Hans": "Dify Agent", "zh_Hant": "Dify Agent", "ja_JP": "Dify Agent", "th_TH": "Dify Agent", "vi_VN": "Dify Agent", "es_ES": "Agente Dify", "ru_RU": "Агент Dify" }, "description": { "en_US": "Run a Dify application as a LangBot Runner.", "zh_Hans": "将 Dify 应用作为 LangBot 运行器运行。", "zh_Hant": "將 Dify 應用程式作為 LangBot 運行器執行。", "ja_JP": "Dify アプリを LangBot Runner として実行します。", "th_TH": "เรียกใช้แอป Dify เป็น LangBot Runner", "vi_VN": "Chạy ứng dụng Dify dưới dạng LangBot Runner.", "es_ES": "Ejecuta una aplicación de Dify como LangBot Runner.", "ru_RU": "Запускает приложение Dify как LangBot Runner." }, "icon": "assets/icon.svg" }, "spec": { "config": [], "components": { "Runner": { "fromDirs": [ { "path": "components/runner/" } ] } }, "pages": [] }, "execution": { "python": { "path": "main.py", "attr": "DifyAgentPlugin" } } }, "component": { "apiVersion": "langbot/v1", "kind": "Runner", "metadata": { "name": "default", "label": { "en_US": "Dify", "zh_Hans": "Dify" }, "description": { "en_US": "Run a Dify application as a LangBot Runner.", "zh_Hans": "将 Dify 应用作为 LangBot 运行器运行。" } }, "spec": { "usages": [ "agent" ], "config": [ { "name": "user-id-source", "label": { "en_US": "Provider User Identity", "zh_Hans": "供应商用户身份" }, "description": { "en_US": "Sender is the default. Legacy mode requires trusted Host identity; missing identity fails closed. Does not import old sessions.", "zh_Hans": "默认使用发送者身份。兼容模式需要可信 Host 身份,缺失时拒绝请求;不会导入旧会话。" }, "type": "select", "required": false, "default": "sender", "options": [ { "name": "sender", "label": { "en_US": "Sender", "zh_Hans": "发送者" } }, { "name": "legacy-session", "label": { "en_US": "Native identity compatibility", "zh_Hans": "原生身份兼容" } } ] }, { "name": "base-url", "label": { "en_US": "Base URL", "zh_Hans": "基础 URL" }, "type": "string", "description": { "en_US": "Dify Service API base URL. Keep the /v1 suffix for Dify Cloud and standard self-hosted deployments.", "zh_Hans": "Dify Service API 基础地址。Dify Cloud 和标准自托管部署请保留 /v1 后缀。" }, "required": true, "default": "https://api.dify.ai/v1" }, { "name": "advanced-settings", "label": { "en_US": "Advanced Settings", "zh_Hans": "高级设置" }, "description": { "en_US": "Show prompt and timeout tuning controls.", "zh_Hans": "显示提示词和超时调优选项。" }, "type": "boolean", "required": false, "default": false }, { "name": "base-prompt", "label": { "en_US": "Base PROMPT", "zh_Hans": "基础提示词" }, "type": "text", "description": { "en_US": "Fallback instruction when LangBot input is empty, for example when only a file is sent.", "zh_Hans": "LangBot 文本输入为空时使用的回退指令,例如仅发送文件时。" }, "required": true, "default": "When the file content is readable, please read the content of this file. When the file is an image, describe the content of this image.", "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "app-type", "label": { "en_US": "App Type", "zh_Hans": "应用类型" }, "type": "select", "description": { "en_US": "Must match the Dify application type that issued the Service API key.", "zh_Hans": "必须与生成 Service API 密钥的 Dify 应用类型一致。" }, "required": true, "default": "chat", "options": [ { "name": "chat", "label": { "en_US": "Chat", "zh_Hans": "聊天(包括Chatflow)" } }, { "name": "chatflow", "label": { "en_US": "Chatflow", "zh_Hans": "对话流" } }, { "name": "agent", "label": { "en_US": "Agent", "zh_Hans": "Agent" } }, { "name": "workflow", "label": { "en_US": "Workflow", "zh_Hans": "工作流" } } ] }, { "name": "api-key", "label": { "en_US": "API Key", "zh_Hans": "API 密钥" }, "type": "secret", "description": { "en_US": "Service API key from the selected Dify application, not a console login token.", "zh_Hans": "所选 Dify 应用的 Service API 密钥,不是控制台登录令牌。" }, "required": true, "default": "" }, { "name": "timeout", "label": { "en_US": "Timeout", "zh_Hans": "超时时间" }, "type": "integer", "description": { "en_US": "Maximum time in seconds for a Dify request. Use at least 60 seconds when a proxy or long workflow is involved.", "zh_Hans": "Dify 请求的最长等待秒数。使用代理或长工作流时建议至少设置为 60 秒。" }, "required": false, "default": 30, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "remove-think", "label": { "en_US": "Hide Thinking Content", "zh_Hans": "隐藏思考内容" }, "description": { "en_US": "Remove think-tagged reasoning from responses, including unfinished streamed reasoning.", "zh_Hans": "从回复中移除 think 标签内的推理内容,包括尚未结束的流式思考。" }, "type": "boolean", "required": false, "default": false, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "langbot-assets-enabled", "label": { "en_US": "Enable LangBot Assets", "zh_Hans": "启用 LangBot 资产" }, "type": "boolean", "description": { "en_US": "Advanced. Expose run-scoped LangBot assets to Dify through a temporary token gateway.", "zh_Hans": "高级选项。通过临时令牌网关向 Dify 暴露本次运行范围内的 LangBot 资产。" }, "required": false, "default": false }, { "name": "langbot-assets-gateway-host", "label": { "en_US": "LangBot Asset Gateway Host", "zh_Hans": "LangBot 资产网关监听地址" }, "type": "string", "required": false, "default": "0.0.0.0", "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } }, { "name": "langbot-assets-gateway-port", "label": { "en_US": "LangBot Asset Gateway Port", "zh_Hans": "LangBot 资产网关端口" }, "type": "integer", "required": false, "default": 8765, "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } }, { "name": "langbot-assets-gateway-request-timeout", "label": { "en_US": "LangBot Asset Gateway Request Timeout", "zh_Hans": "LangBot 资产网关请求超时" }, "type": "integer", "required": false, "default": 60, "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } }, { "name": "langbot-assets-token-ttl", "label": { "en_US": "LangBot Asset Token TTL", "zh_Hans": "LangBot 资产令牌有效期" }, "type": "integer", "required": false, "default": 3600, "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } }, { "name": "langbot-assets-input-name", "label": { "en_US": "LangBot Asset Token Input Name", "zh_Hans": "LangBot 资产令牌输入变量名" }, "type": "string", "required": false, "default": "langbot_asset_run_token", "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } } ], "capabilities": { "streaming": true, "tool_calling": true, "knowledge_retrieval": true, "multimodal_input": true, "interrupt": false, "interactions": true }, "permissions": { "tools": [ "detail", "call" ], "knowledge_bases": [ "retrieve" ], "history": [ "page" ], "storage": [ "plugin" ], "interactions": [ "request" ] } }, "execution": { "python": { "path": "default.py", "attr": "DefaultRunner" } } }, "package_sha256": "6fc89a8d127b338b6f8d2deca78001b7dbaccfe9862c88c0d2ce95bd1df1ebb2", "schema_sha256": "dccc4b7df7730c4e5e2cfc2ca2e67db5ea9195ad9720a79a329bc11fdcaeb840" }, "coze-agent": { "manifest": { "apiVersion": "v1", "kind": "Plugin", "metadata": { "author": "langbot-team", "name": "CozeAgent", "version": "0.1.10", "repository": "https://github.com/langbot-app/langbot-plugins/tree/main/Runner/coze-agent", "label": { "en_US": "Coze Agent", "zh_Hans": "扣子 Agent", "zh_Hant": "Coze Agent", "ja_JP": "Coze Agent", "th_TH": "Coze Agent", "vi_VN": "Coze Agent", "es_ES": "Agente Coze", "ru_RU": "Агент Coze" }, "description": { "en_US": "Run a Coze bot as a LangBot Runner.", "zh_Hans": "将扣子机器人作为 LangBot 运行器运行。", "zh_Hant": "將 Coze 機器人作為 LangBot 運行器執行。", "ja_JP": "Coze ボットを LangBot Runner として実行します。", "th_TH": "เรียกใช้บอต Coze เป็น LangBot Runner", "vi_VN": "Chạy bot Coze dưới dạng LangBot Runner.", "es_ES": "Ejecuta un bot de Coze como LangBot Runner.", "ru_RU": "Запускает бота Coze как LangBot Runner." }, "icon": "assets/icon.svg" }, "spec": { "config": [], "components": { "Runner": { "fromDirs": [ { "path": "components/runner/" } ] } }, "pages": [] }, "execution": { "python": { "path": "main.py", "attr": "CozeAgentPlugin" } } }, "component": { "apiVersion": "langbot/v1", "kind": "Runner", "metadata": { "name": "default", "label": { "en_US": "Coze", "zh_Hans": "扣子" }, "description": { "en_US": "Run a Coze bot as a LangBot Runner.", "zh_Hans": "将扣子机器人作为 LangBot 运行器运行。" } }, "spec": { "usages": [ "agent" ], "config": [ { "name": "user-id-source", "label": { "en_US": "Provider User Identity", "zh_Hans": "供应商用户身份" }, "description": { "en_US": "Sender is the default. Legacy mode requires trusted Host identity; missing identity fails closed. Does not import old sessions.", "zh_Hans": "默认使用发送者身份。兼容模式需要可信 Host 身份,缺失时拒绝请求;不会导入旧会话。" }, "type": "select", "required": false, "default": "sender", "options": [ { "name": "sender", "label": { "en_US": "Sender", "zh_Hans": "发送者" } }, { "name": "legacy-session", "label": { "en_US": "Native identity compatibility", "zh_Hans": "原生身份兼容" } } ] }, { "name": "remove-think", "label": { "en_US": "Hide reasoning", "zh_Hans": "隐藏思考过程" }, "description": { "en_US": "Hide reasoning fields and think blocks without removing answer or tool content.", "zh_Hans": "隐藏推理字段和思考块,保留正文和工具内容。" }, "type": "boolean", "required": false, "default": false }, { "name": "api-key", "label": { "en_US": "API Key", "zh_Hans": "API 密钥" }, "type": "secret", "required": true, "default": "" }, { "name": "bot-id", "label": { "en_US": "Bot ID", "zh_Hans": "机器人 ID" }, "type": "string", "required": true, "default": "" }, { "name": "api-base", "label": { "en_US": "API Base URL", "zh_Hans": "API 基础 URL" }, "type": "string", "required": true, "default": "https://api.coze.cn", "description": { "en_US": "Coze China, Global, or a trusted custom HTTP(S) endpoint (including a path prefix).", "zh_Hans": "扣子中国版、全球版或可信的自定义 HTTP(S) 地址(支持路径前缀)。" } }, { "name": "advanced-settings", "label": { "en_US": "Advanced Settings", "zh_Hans": "高级设置" }, "description": { "en_US": "Show history and timeout tuning controls.", "zh_Hans": "显示历史和超时调优选项。" }, "type": "boolean", "required": false, "default": false }, { "name": "auto-save-history", "label": { "en_US": "Auto Save History", "zh_Hans": "自动保存历史" }, "type": "boolean", "required": false, "default": true, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "timeout", "label": { "en_US": "Request Timeout", "zh_Hans": "请求超时" }, "type": "number", "required": false, "default": 120, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "langbot-assets-enabled", "label": { "en_US": "Enable LangBot Assets", "zh_Hans": "启用 LangBot 资产" }, "type": "boolean", "required": false, "default": false }, { "name": "langbot-assets-gateway-host", "label": { "en_US": "LangBot Asset Gateway Host", "zh_Hans": "LangBot 资产网关监听地址" }, "type": "string", "required": false, "default": "0.0.0.0", "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } }, { "name": "langbot-assets-gateway-port", "label": { "en_US": "LangBot Asset Gateway Port", "zh_Hans": "LangBot 资产网关端口" }, "type": "integer", "required": false, "default": 8765, "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } }, { "name": "langbot-assets-gateway-request-timeout", "label": { "en_US": "LangBot Asset Gateway Request Timeout", "zh_Hans": "LangBot 资产网关请求超时" }, "type": "integer", "required": false, "default": 60, "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } }, { "name": "langbot-assets-token-ttl", "label": { "en_US": "LangBot Asset Token TTL", "zh_Hans": "LangBot 资产令牌有效期" }, "type": "integer", "required": false, "default": 3600, "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } }, { "name": "langbot-assets-input-name", "label": { "en_US": "LangBot Asset Token Input Name", "zh_Hans": "LangBot 资产令牌输入变量名" }, "type": "string", "required": false, "default": "langbot_asset_run_token", "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } } ], "capabilities": { "streaming": true, "tool_calling": true, "knowledge_retrieval": true, "multimodal_input": true, "interrupt": false }, "permissions": { "tools": [ "detail", "call" ], "knowledge_bases": [ "retrieve" ], "history": [ "page" ], "storage": [ "plugin" ] } }, "execution": { "python": { "path": "default.py", "attr": "DefaultRunner" } } }, "package_sha256": "c8e48659a0358bd8291137379f6159e61f2b1dbe72766772d81c9af49f7a8317", "schema_sha256": "3f7c4d4e5c8a7ace3e804f0ca02739c48439abcc8f360bfc17394b9cf6660674" }, "dashscope-agent": { "manifest": { "apiVersion": "v1", "kind": "Plugin", "metadata": { "author": "langbot-team", "name": "DashScopeAgent", "version": "0.1.10", "repository": "https://github.com/langbot-app/langbot-plugins/tree/main/Runner/dashscope-agent", "label": { "en_US": "Dashscope Agent", "zh_Hans": "百炼 Agent", "zh_Hant": "DashScope Agent", "ja_JP": "DashScope Agent", "th_TH": "DashScope Agent", "vi_VN": "DashScope Agent", "es_ES": "Agente DashScope", "ru_RU": "Агент DashScope" }, "description": { "en_US": "Run an Aliyun DashScope application as a LangBot Runner.", "zh_Hans": "将阿里云百炼应用作为 LangBot 运行器运行。", "zh_Hant": "將阿里雲 DashScope 應用程式作為 LangBot 運行器執行。", "ja_JP": "Alibaba Cloud DashScope アプリを LangBot Runner として実行します。", "th_TH": "เรียกใช้แอป Aliyun DashScope เป็น LangBot Runner", "vi_VN": "Chạy ứng dụng Aliyun DashScope dưới dạng LangBot Runner.", "es_ES": "Ejecuta una aplicación de Aliyun DashScope como LangBot Runner.", "ru_RU": "Запускает приложение Aliyun DashScope как LangBot Runner." }, "icon": "assets/icon.png" }, "spec": { "config": [], "components": { "Runner": { "fromDirs": [ { "path": "components/runner/" } ] } }, "pages": [] }, "execution": { "python": { "path": "main.py", "attr": "DashScopeAgentPlugin" } } }, "component": { "apiVersion": "langbot/v1", "kind": "Runner", "metadata": { "name": "default", "label": { "en_US": "DashScope", "zh_Hans": "百炼" }, "description": { "en_US": "Run an Aliyun DashScope application as a LangBot Runner.", "zh_Hans": "将阿里云百炼应用作为 LangBot 运行器运行。" } }, "spec": { "usages": [ "agent" ], "config": [ { "name": "remove-think", "label": { "en_US": "Hide reasoning", "zh_Hans": "隐藏思考过程" }, "description": { "en_US": "Hide reasoning fields and think blocks without removing answer or tool content.", "zh_Hans": "隐藏推理字段和思考块,保留正文和工具内容。" }, "type": "boolean", "required": false, "default": false }, { "name": "app-type", "label": { "en_US": "App Type", "zh_Hans": "应用类型" }, "type": "select", "required": true, "default": "agent", "options": [ { "name": "agent", "label": { "en_US": "Agent", "zh_Hans": "Agent" } }, { "name": "workflow", "label": { "en_US": "Workflow", "zh_Hans": "工作流" } } ] }, { "name": "api-key", "label": { "en_US": "API Key", "zh_Hans": "API 密钥" }, "type": "secret", "required": true, "default": "" }, { "name": "app-id", "label": { "en_US": "App ID", "zh_Hans": "应用 ID" }, "type": "string", "required": true, "default": "" }, { "name": "advanced-settings", "label": { "en_US": "Advanced Settings", "zh_Hans": "高级设置" }, "description": { "en_US": "Show reference formatting and timeout tuning controls.", "zh_Hans": "显示引用格式和超时调优选项。" }, "type": "boolean", "required": false, "default": false }, { "name": "references_quote", "label": { "en_US": "References Quote", "zh_Hans": "引用文本" }, "type": "string", "required": false, "default": "参考资料来自:", "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "timeout", "label": { "en_US": "Timeout", "zh_Hans": "超时时间" }, "type": "number", "required": false, "default": 120, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "langbot-assets-enabled", "label": { "en_US": "Enable LangBot Assets", "zh_Hans": "启用 LangBot 资产" }, "type": "boolean", "required": false, "default": false }, { "name": "langbot-assets-gateway-host", "label": { "en_US": "LangBot Asset Gateway Host", "zh_Hans": "LangBot 资产网关监听地址" }, "type": "string", "required": false, "default": "0.0.0.0", "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } }, { "name": "langbot-assets-gateway-port", "label": { "en_US": "LangBot Asset Gateway Port", "zh_Hans": "LangBot 资产网关端口" }, "type": "integer", "required": false, "default": 8765, "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } }, { "name": "langbot-assets-gateway-request-timeout", "label": { "en_US": "LangBot Asset Gateway Request Timeout", "zh_Hans": "LangBot 资产网关请求超时" }, "type": "integer", "required": false, "default": 60, "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } }, { "name": "langbot-assets-token-ttl", "label": { "en_US": "LangBot Asset Token TTL", "zh_Hans": "LangBot 资产令牌有效期" }, "type": "integer", "required": false, "default": 3600, "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } }, { "name": "langbot-assets-input-name", "label": { "en_US": "LangBot Asset Token Input Name", "zh_Hans": "LangBot 资产令牌输入变量名" }, "type": "string", "required": false, "default": "langbot_asset_run_token", "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } } ], "capabilities": { "streaming": true, "tool_calling": true, "knowledge_retrieval": true, "multimodal_input": false, "interrupt": false }, "permissions": { "tools": [ "detail", "call" ], "knowledge_bases": [ "retrieve" ], "history": [ "page" ], "storage": [ "plugin" ] } }, "execution": { "python": { "path": "default.py", "attr": "DefaultRunner" } } }, "package_sha256": "cd4e28e53eb986b906d6aa92d26b49d8ad4a9514fcc764f359bbdb84ad1a3f00", "schema_sha256": "aadfce3fe0157b124235437f251c24fbfea0e498ece4be8f9de6028b97573937" }, "n8n-agent": { "manifest": { "apiVersion": "v1", "kind": "Plugin", "metadata": { "author": "langbot-team", "name": "N8nAgent", "version": "0.1.10", "repository": "https://github.com/langbot-app/langbot-plugins/tree/main/Runner/n8n-agent", "label": { "en_US": "N8n Agent", "zh_Hans": "n8n 工作流 Agent", "zh_Hant": "n8n 工作流程 Agent", "ja_JP": "n8n ワークフローエージェント", "th_TH": "เอเจนต์เวิร์กโฟลว์ n8n", "vi_VN": "Tác nhân quy trình n8n", "es_ES": "Agente de flujo n8n", "ru_RU": "Агент рабочих процессов n8n" }, "description": { "en_US": "Run an n8n workflow webhook as a LangBot Runner.", "zh_Hans": "将 n8n 工作流 webhook 作为 LangBot 运行器运行。", "zh_Hant": "將 n8n 工作流程 Webhook 作為 LangBot 運行器執行。", "ja_JP": "n8n ワークフローの Webhook を LangBot Runner として実行します。", "th_TH": "เรียกใช้เว็บฮุกเวิร์กโฟลว์ n8n เป็น LangBot Runner", "vi_VN": "Chạy webhook quy trình n8n dưới dạng LangBot Runner.", "es_ES": "Ejecuta un webhook de flujo de n8n como LangBot Runner.", "ru_RU": "Запускает webhook рабочего процесса n8n как LangBot Runner." }, "icon": "assets/icon.svg" }, "spec": { "config": [], "components": { "Runner": { "fromDirs": [ { "path": "components/runner/" } ] } }, "pages": [] }, "execution": { "python": { "path": "main.py", "attr": "N8nAgentPlugin" } } }, "component": { "apiVersion": "langbot/v1", "kind": "Runner", "metadata": { "name": "default", "label": { "en_US": "n8n", "zh_Hans": "n8n" }, "description": { "en_US": "Run an n8n workflow webhook as a LangBot Runner.", "zh_Hans": "将 n8n 工作流 webhook 作为 LangBot 运行器运行。" } }, "spec": { "usages": [ "agent" ], "config": [ { "name": "user-id-source", "label": { "en_US": "Provider User Identity", "zh_Hans": "供应商用户身份" }, "description": { "en_US": "Sender is the default. Legacy mode requires trusted Host identity; missing identity fails closed. Does not import old sessions.", "zh_Hans": "默认使用发送者身份。兼容模式需要可信 Host 身份,缺失时拒绝请求;不会导入旧会话。" }, "type": "select", "required": false, "default": "sender", "options": [ { "name": "sender", "label": { "en_US": "Sender", "zh_Hans": "发送者" } }, { "name": "legacy-session", "label": { "en_US": "Native identity compatibility", "zh_Hans": "原生身份兼容" } } ] }, { "name": "webhook-url", "label": { "en_US": "Webhook URL", "zh_Hans": "Webhook URL" }, "type": "string", "required": true, "default": "" }, { "name": "auth-type", "label": { "en_US": "Authentication Type", "zh_Hans": "认证类型" }, "type": "select", "required": true, "default": "none", "options": [ { "name": "none", "label": { "en_US": "None", "zh_Hans": "无认证" } }, { "name": "basic", "label": { "en_US": "Basic Auth", "zh_Hans": "基本认证" } }, { "name": "jwt", "label": { "en_US": "JWT", "zh_Hans": "JWT认证" } }, { "name": "header", "label": { "en_US": "Header Auth", "zh_Hans": "请求头认证" } } ] }, { "name": "basic-username", "label": { "en_US": "Username", "zh_Hans": "用户名" }, "type": "string", "required": false, "default": "", "show_if": { "field": "auth-type", "operator": "eq", "value": "basic" } }, { "name": "basic-password", "label": { "en_US": "Password", "zh_Hans": "密码" }, "type": "secret", "required": false, "default": "", "show_if": { "field": "auth-type", "operator": "eq", "value": "basic" } }, { "name": "basic-encoding", "label": { "en_US": "Basic Auth Encoding", "zh_Hans": "Basic 凭据编码", "ja_JP": "Basic 認証の文字コード" }, "description": { "en_US": "UTF-8 preserves this plugin's default. Choose Latin-1 to preserve the native runner's non-ASCII Basic credentials.", "zh_Hans": "UTF-8 保持本插件的默认行为。迁移原生运行器的非 ASCII Basic 凭据时,请选择 Latin-1。", "ja_JP": "UTF-8 は本プラグインの既定動作を維持します。旧ネイティブ Runner の非 ASCII Basic 資格情報を引き継ぐ場合は Latin-1 を選択してください。" }, "type": "select", "required": false, "default": "utf-8", "options": [ { "name": "utf-8", "label": { "en_US": "UTF-8", "zh_Hans": "UTF-8", "ja_JP": "UTF-8" } }, { "name": "latin1", "label": { "en_US": "Latin-1", "zh_Hans": "Latin-1", "ja_JP": "Latin-1" } } ], "show_if": { "field": "auth-type", "operator": "eq", "value": "basic" } }, { "name": "jwt-secret", "label": { "en_US": "Secret", "zh_Hans": "密钥" }, "type": "secret", "required": false, "default": "", "show_if": { "field": "auth-type", "operator": "eq", "value": "jwt" } }, { "name": "jwt-algorithm", "label": { "en_US": "Algorithm", "zh_Hans": "算法" }, "type": "string", "required": false, "default": "HS256", "show_if": { "field": "auth-type", "operator": "eq", "value": "jwt" } }, { "name": "header-name", "label": { "en_US": "Header Name", "zh_Hans": "请求头名称" }, "type": "string", "required": false, "default": "", "show_if": { "field": "auth-type", "operator": "eq", "value": "header" } }, { "name": "header-value", "label": { "en_US": "Header Value", "zh_Hans": "请求头值" }, "type": "secret", "required": false, "default": "", "show_if": { "field": "auth-type", "operator": "eq", "value": "header" } }, { "name": "response-handling", "label": { "en_US": "Response Handling", "zh_Hans": "响应处理", "ja_JP": "レスポンスの処理" }, "description": { "en_US": "Reply forwards HTTP 200 output. Ignore accepts any HTTP 2xx without reading or forwarding the body; configure the webhook to Respond Immediately. Run-scoped asset access ends as soon as the request returns.", "zh_Hans": "回复模式转发 HTTP 200 的输出。忽略模式接受任意 HTTP 2xx,不读取或转发正文;请将 Webhook 配置为立即响应。请求返回后,本次运行的资产访问权限即失效。", "ja_JP": "返信モードは HTTP 200 の出力を転送します。無視モードは HTTP 2xx を受け入れ、本文を読み取り・転送しません。Webhook を即時応答に設定してください。リクエストが戻ると実行単位のアセットアクセスは終了します。" }, "type": "select", "required": false, "default": "reply", "options": [ { "name": "reply", "label": { "en_US": "Forward as chat reply", "zh_Hans": "转发为聊天回复", "ja_JP": "チャットの返信として転送" } }, { "name": "ignore", "label": { "en_US": "Ignore response body", "zh_Hans": "忽略响应正文", "ja_JP": "レスポンス本文を無視" } } ] }, { "name": "advanced-settings", "label": { "en_US": "Advanced Settings", "zh_Hans": "高级设置" }, "description": { "en_US": "Show timeout and response mapping controls.", "zh_Hans": "显示超时和响应映射调优选项。" }, "type": "boolean", "required": false, "default": false }, { "name": "timeout", "label": { "en_US": "Timeout", "zh_Hans": "超时时间" }, "type": "integer", "required": false, "default": 120, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "output-key", "label": { "en_US": "Output Key", "zh_Hans": "输出键名" }, "type": "string", "required": false, "default": "response", "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "langbot-assets-enabled", "label": { "en_US": "Enable LangBot Assets", "zh_Hans": "启用 LangBot 资产" }, "type": "boolean", "required": false, "default": false }, { "name": "langbot-assets-gateway-host", "label": { "en_US": "LangBot Asset Gateway Host", "zh_Hans": "LangBot 资产网关监听地址" }, "type": "string", "required": false, "default": "0.0.0.0", "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } }, { "name": "langbot-assets-gateway-port", "label": { "en_US": "LangBot Asset Gateway Port", "zh_Hans": "LangBot 资产网关端口" }, "type": "integer", "required": false, "default": 8765, "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } }, { "name": "langbot-assets-gateway-request-timeout", "label": { "en_US": "LangBot Asset Gateway Request Timeout", "zh_Hans": "LangBot 资产网关请求超时" }, "type": "integer", "required": false, "default": 60, "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } }, { "name": "langbot-assets-token-ttl", "label": { "en_US": "LangBot Asset Token TTL", "zh_Hans": "LangBot 资产令牌有效期" }, "type": "integer", "required": false, "default": 3600, "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } }, { "name": "langbot-assets-input-name", "label": { "en_US": "LangBot Asset Token Input Name", "zh_Hans": "LangBot 资产令牌输入变量名" }, "type": "string", "required": false, "default": "langbot_asset_run_token", "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } } ], "capabilities": { "streaming": true, "tool_calling": true, "knowledge_retrieval": true, "multimodal_input": false, "interrupt": false }, "permissions": { "tools": [ "detail", "call" ], "knowledge_bases": [ "retrieve" ], "history": [ "page" ], "storage": [ "plugin" ] } }, "execution": { "python": { "path": "default.py", "attr": "DefaultRunner" } } }, "package_sha256": "507af9773690ff90c8ce2cdf8c3660ca01050e195eeb954cb631ea0116fe680c", "schema_sha256": "9e492577b0e8d197fd792cd1456771e5ff1731ebf897a128c70f4850b4dfece0" }, "langflow-agent": { "manifest": { "apiVersion": "v1", "kind": "Plugin", "metadata": { "author": "langbot-team", "name": "LangflowAgent", "version": "0.1.10", "repository": "https://github.com/langbot-app/langbot-plugins/tree/main/Runner/langflow-agent", "label": { "en_US": "Langflow Agent", "zh_Hans": "Langflow Agent", "zh_Hant": "Langflow Agent", "ja_JP": "Langflow Agent", "th_TH": "Langflow Agent", "vi_VN": "Langflow Agent", "es_ES": "Agente Langflow", "ru_RU": "Агент Langflow" }, "description": { "en_US": "Run a Langflow flow as a LangBot Runner.", "zh_Hans": "将 Langflow 流程作为 LangBot 运行器运行。", "zh_Hant": "將 Langflow 流程作為 LangBot 運行器執行。", "ja_JP": "Langflow フローを LangBot Runner として実行します。", "th_TH": "เรียกใช้โฟลว์ Langflow เป็น LangBot Runner", "vi_VN": "Chạy luồng Langflow dưới dạng LangBot Runner.", "es_ES": "Ejecuta un flujo de Langflow como LangBot Runner.", "ru_RU": "Запускает поток Langflow как LangBot Runner." }, "icon": "assets/icon.svg" }, "spec": { "config": [], "components": { "Runner": { "fromDirs": [ { "path": "components/runner/" } ] } }, "pages": [] }, "execution": { "python": { "path": "main.py", "attr": "LangflowAgentPlugin" } } }, "component": { "apiVersion": "langbot/v1", "kind": "Runner", "metadata": { "name": "default", "label": { "en_US": "Langflow", "zh_Hans": "Langflow" }, "description": { "en_US": "Run a Langflow flow as a LangBot Runner.", "zh_Hans": "将 Langflow 流程作为 LangBot 运行器运行。" } }, "spec": { "usages": [ "agent" ], "config": [ { "name": "base-url", "label": { "en_US": "Base URL", "zh_Hans": "基础 URL" }, "type": "string", "required": true, "default": "http://localhost:7860" }, { "name": "api-key", "label": { "en_US": "API Key", "zh_Hans": "API 密钥" }, "type": "secret", "required": true, "default": "" }, { "name": "flow-id", "label": { "en_US": "Flow ID", "zh_Hans": "流程 ID" }, "type": "string", "required": true, "default": "" }, { "name": "advanced-settings", "label": { "en_US": "Advanced Settings", "zh_Hans": "高级设置" }, "description": { "en_US": "Show input, output, and flow tweak controls.", "zh_Hans": "显示输入、输出和流程 tweak 调优选项。" }, "type": "boolean", "required": false, "default": false }, { "name": "input-type", "label": { "en_US": "Input Type", "zh_Hans": "输入类型" }, "type": "string", "required": false, "default": "chat", "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "output-type", "label": { "en_US": "Output Type", "zh_Hans": "输出类型" }, "type": "string", "required": false, "default": "chat", "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "tweaks", "label": { "en_US": "Tweaks", "zh_Hans": "调整参数" }, "type": "json", "required": false, "default": "{}", "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "langbot-assets-enabled", "label": { "en_US": "Enable LangBot Assets", "zh_Hans": "启用 LangBot 资产" }, "type": "boolean", "required": false, "default": false }, { "name": "langbot-assets-gateway-host", "label": { "en_US": "LangBot Asset Gateway Host", "zh_Hans": "LangBot 资产网关监听地址" }, "type": "string", "required": false, "default": "0.0.0.0", "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } }, { "name": "langbot-assets-gateway-port", "label": { "en_US": "LangBot Asset Gateway Port", "zh_Hans": "LangBot 资产网关端口" }, "type": "integer", "required": false, "default": 8765, "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } }, { "name": "langbot-assets-gateway-request-timeout", "label": { "en_US": "LangBot Asset Gateway Request Timeout", "zh_Hans": "LangBot 资产网关请求超时" }, "type": "integer", "required": false, "default": 60, "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } }, { "name": "langbot-assets-token-ttl", "label": { "en_US": "LangBot Asset Token TTL", "zh_Hans": "LangBot 资产令牌有效期" }, "type": "integer", "required": false, "default": 3600, "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } }, { "name": "langbot-assets-input-name", "label": { "en_US": "LangBot Asset Token Input Name", "zh_Hans": "LangBot 资产令牌输入组件名" }, "type": "string", "required": false, "default": "langbot_asset_run_token", "show_if": { "field": "langbot-assets-enabled", "operator": "eq", "value": true } } ], "capabilities": { "streaming": true, "tool_calling": true, "knowledge_retrieval": true, "multimodal_input": false, "interrupt": false }, "permissions": { "tools": [ "detail", "call" ], "knowledge_bases": [ "retrieve" ], "history": [ "page" ], "storage": [ "plugin" ] } }, "execution": { "python": { "path": "default.py", "attr": "DefaultRunner" } } }, "package_sha256": "93fee3064505d0a69d8b16d8aceb4a171ffdffed63a36278eef635267681f5a1", "schema_sha256": "c7d940674bae9acab993801c6957da778bbdb3fa8734bfad9cda96dbb57f5fee" }, "deerflow-agent": { "manifest": { "apiVersion": "v1", "kind": "Plugin", "metadata": { "author": "langbot-team", "name": "DeerFlowAgent", "version": "0.1.10", "repository": "https://github.com/langbot-app/langbot-plugins/tree/main/Runner/deerflow-agent", "label": { "en_US": "DeerFlow Agent", "zh_Hans": "DeerFlow Agent", "zh_Hant": "DeerFlow Agent", "ja_JP": "DeerFlow Agent", "th_TH": "DeerFlow Agent", "vi_VN": "DeerFlow Agent", "es_ES": "Agente DeerFlow", "ru_RU": "Агент DeerFlow" }, "description": { "en_US": "Run a DeerFlow LangGraph agent as a LangBot Runner.", "zh_Hans": "将 DeerFlow LangGraph 智能体作为 LangBot 运行器运行。", "zh_Hant": "將 DeerFlow LangGraph 代理作為 LangBot 運行器執行。", "ja_JP": "DeerFlow LangGraph エージェントを LangBot Runner として実行します。", "th_TH": "เรียกใช้เอเจนต์ DeerFlow LangGraph เป็น LangBot Runner", "vi_VN": "Chạy tác nhân DeerFlow LangGraph dưới dạng LangBot Runner.", "es_ES": "Ejecuta un agente DeerFlow LangGraph como LangBot Runner.", "ru_RU": "Запускает агент DeerFlow LangGraph как LangBot Runner." }, "icon": "assets/icon.svg" }, "spec": { "config": [], "components": { "Runner": { "fromDirs": [ { "path": "components/runner/" } ] } }, "pages": [] }, "execution": { "python": { "path": "main.py", "attr": "DeerFlowAgentPlugin" } } }, "component": { "apiVersion": "langbot/v1", "kind": "Runner", "metadata": { "name": "default", "label": { "en_US": "DeerFlow", "zh_Hans": "DeerFlow" }, "description": { "en_US": "Run a DeerFlow LangGraph agent as a LangBot Runner.", "zh_Hans": "将 DeerFlow LangGraph 智能体作为 LangBot 运行器运行。" } }, "spec": { "usages": [ "agent" ], "config": [ { "name": "api-base", "label": { "en_US": "API Base URL", "zh_Hans": "API 基础 URL" }, "description": { "en_US": "The base URL of the DeerFlow server, such as http://127.0.0.1:2026.", "zh_Hans": "DeerFlow 服务器的基础 URL,例如 http://127.0.0.1:2026。" }, "type": "string", "required": true, "default": "http://127.0.0.1:2026" }, { "name": "api-key", "label": { "en_US": "API Key", "zh_Hans": "API 密钥" }, "description": { "en_US": "Optional API key for DeerFlow. Leave empty if the server does not require authentication.", "zh_Hans": "DeerFlow API 密钥。如果服务端不需要鉴权可留空。" }, "type": "secret", "required": false, "default": "" }, { "name": "auth-header", "label": { "en_US": "Authorization Header Value", "zh_Hans": "Authorization 请求头值" }, "description": { "en_US": "Optional complete Authorization header value. When set, it takes precedence over api-key.", "zh_Hans": "可选的完整 Authorization 请求头值。设置后优先于 api-key。" }, "type": "secret", "required": false, "default": "" }, { "name": "assistant-id", "label": { "en_US": "Assistant ID", "zh_Hans": "助手 ID" }, "description": { "en_US": "The DeerFlow assistant or graph id.", "zh_Hans": "DeerFlow 助手或图 ID。" }, "type": "string", "required": true, "default": "lead_agent" }, { "name": "advanced-settings", "label": { "en_US": "Advanced Settings", "zh_Hans": "高级设置" }, "description": { "en_US": "Show model, timeout, and recursion tuning controls.", "zh_Hans": "显示模型、超时和递归调优选项。" }, "type": "boolean", "required": false, "default": false }, { "name": "model-name", "label": { "en_US": "Model Name", "zh_Hans": "模型名称" }, "description": { "en_US": "Optional model override forwarded to DeerFlow configurable.", "zh_Hans": "可选的模型名称覆盖,会作为 configurable 转发给 DeerFlow。" }, "type": "string", "required": false, "default": "", "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "thinking-enabled", "label": { "en_US": "Enable Thinking", "zh_Hans": "启用思考" }, "description": { "en_US": "Whether to enable DeerFlow thinking mode.", "zh_Hans": "是否启用 DeerFlow 思考模式。" }, "type": "boolean", "required": false, "default": false }, { "name": "plan-mode", "label": { "en_US": "Plan Mode", "zh_Hans": "规划模式" }, "description": { "en_US": "Whether to enable DeerFlow plan mode.", "zh_Hans": "是否启用 DeerFlow 规划模式。" }, "type": "boolean", "required": false, "default": false }, { "name": "subagent-enabled", "label": { "en_US": "Enable Subagents", "zh_Hans": "启用子代理" }, "description": { "en_US": "Whether to enable parallel subagent execution.", "zh_Hans": "是否启用并行子代理执行。" }, "type": "boolean", "required": false, "default": false }, { "name": "max-concurrent-subagents", "label": { "en_US": "Max Concurrent Subagents", "zh_Hans": "最大并发子代理数" }, "description": { "en_US": "Maximum number of concurrent subagents. Only effective when subagents are enabled.", "zh_Hans": "最大并发子代理数。仅在启用子代理时生效。" }, "type": "integer", "required": false, "default": 3, "show_if": { "field": "subagent-enabled", "operator": "eq", "value": true } }, { "name": "timeout", "label": { "en_US": "Timeout", "zh_Hans": "超时时间" }, "description": { "en_US": "Request timeout in seconds. DeerFlow runs may take a long time.", "zh_Hans": "请求超时时间(秒)。DeerFlow 运行可能耗时较长。" }, "type": "integer", "required": false, "default": 300, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "recursion-limit", "label": { "en_US": "Recursion Limit", "zh_Hans": "递归上限" }, "description": { "en_US": "LangGraph recursion limit for a single run.", "zh_Hans": "单次运行的 LangGraph 递归上限。" }, "type": "integer", "required": false, "default": 1000, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } } ], "capabilities": { "streaming": true, "tool_calling": false, "knowledge_retrieval": false, "multimodal_input": true, "interrupt": false }, "permissions": { "storage": [ "plugin" ] } }, "execution": { "python": { "path": "default.py", "attr": "DefaultRunner" } } }, "package_sha256": "10c93fec92e2d34c791baa541b71debf060e80aaa5fb64c386dc25fbc6b510a5", "schema_sha256": "8a865320f37e367095a1f332bcc490cad8c0af273bc82baf768015242457c8f6" }, "tbox-agent": { "manifest": { "apiVersion": "v1", "kind": "Plugin", "metadata": { "author": "langbot-team", "name": "TboxAgent", "version": "0.1.8", "repository": "https://github.com/langbot-app/langbot-plugins/tree/main/Runner/tbox-agent", "label": { "en_US": "Tbox Agent", "zh_Hans": "百宝箱 Agent", "zh_Hant": "Tbox Agent", "ja_JP": "Tbox Agent", "th_TH": "Tbox Agent", "vi_VN": "Tbox Agent", "es_ES": "Agente Tbox", "ru_RU": "Агент Tbox" }, "description": { "en_US": "Run an Ant Tbox application as a LangBot Runner.", "zh_Hans": "将蚂蚁百宝箱应用作为 LangBot 运行器运行。", "zh_Hant": "將螞蟻 Tbox 應用程式作為 LangBot 運行器執行。", "ja_JP": "Ant Tbox アプリを LangBot Runner として実行します。", "th_TH": "เรียกใช้แอป Ant Tbox เป็น LangBot Runner", "vi_VN": "Chạy ứng dụng Ant Tbox dưới dạng LangBot Runner.", "es_ES": "Ejecuta una aplicación Ant Tbox como LangBot Runner.", "ru_RU": "Запускает приложение Ant Tbox как LangBot Runner." }, "icon": "assets/icon.png" }, "spec": { "config": [], "components": { "Runner": { "fromDirs": [ { "path": "components/runner/" } ] } }, "pages": [] }, "execution": { "python": { "path": "main.py", "attr": "TboxAgentPlugin" } } }, "component": { "apiVersion": "langbot/v1", "kind": "Runner", "metadata": { "name": "default", "label": { "en_US": "Tbox", "zh_Hans": "百宝箱" }, "description": { "en_US": "Run an Ant Tbox application as a LangBot Runner.", "zh_Hans": "将蚂蚁百宝箱应用作为 LangBot 运行器运行。" } }, "spec": { "usages": [ "agent" ], "config": [ { "name": "user-id-source", "label": { "en_US": "Provider User Identity", "zh_Hans": "供应商用户身份" }, "description": { "en_US": "Sender is the default. Legacy mode requires trusted Host identity; missing identity fails closed. Does not import old sessions.", "zh_Hans": "默认使用发送者身份。兼容模式需要可信 Host 身份,缺失时拒绝请求;不会导入旧会话。" }, "type": "select", "required": false, "default": "sender", "options": [ { "name": "sender", "label": { "en_US": "Sender", "zh_Hans": "发送者" } }, { "name": "legacy-bot", "label": { "en_US": "Native identity compatibility", "zh_Hans": "原生身份兼容" } } ] }, { "name": "remove-think", "label": { "en_US": "Hide reasoning", "zh_Hans": "隐藏思考过程" }, "description": { "en_US": "Hide reasoning fields and think blocks without removing answer or tool content.", "zh_Hans": "隐藏推理字段和思考块,保留正文和工具内容。" }, "type": "boolean", "required": false, "default": false }, { "name": "api-key", "label": { "en_US": "API Key", "zh_Hans": "API 密钥" }, "type": "secret", "required": true, "default": "" }, { "name": "app-id", "label": { "en_US": "App ID", "zh_Hans": "应用 ID" }, "type": "string", "required": true, "default": "" }, { "name": "timeout", "label": { "en_US": "Timeout", "zh_Hans": "超时时间" }, "type": "number", "required": false, "default": 120 } ], "capabilities": { "streaming": true, "tool_calling": false, "knowledge_retrieval": false, "multimodal_input": true, "interrupt": false }, "permissions": { "storage": [ "plugin" ] } }, "execution": { "python": { "path": "default.py", "attr": "DefaultRunner" } } }, "package_sha256": "ed9c7a3f7c904a1fc6a95e8e7de0253f85282bf159250e355480fdcc91b4f629", "schema_sha256": "ac34c6a84859728328aa8d554aadbd1bef9b92c35ce4524812a541bac58c5088" }, "weknora-agent": { "manifest": { "apiVersion": "v1", "kind": "Plugin", "metadata": { "author": "langbot-team", "name": "WeKnoraAgent", "version": "0.1.10", "repository": "https://github.com/langbot-app/langbot-plugins/tree/main/Runner/weknora-agent", "label": { "en_US": "WeKnora Agent", "zh_Hans": "WeKnora Agent", "zh_Hant": "WeKnora Agent", "ja_JP": "WeKnora Agent", "th_TH": "WeKnora Agent", "vi_VN": "WeKnora Agent", "es_ES": "Agente WeKnora", "ru_RU": "Агент WeKnora" }, "description": { "en_US": "Run a WeKnora agent or knowledge-base chat app as a LangBot Runner.", "zh_Hans": "将 WeKnora 智能体或知识库问答应用作为 LangBot 运行器运行。", "zh_Hant": "將 WeKnora 代理或知識庫聊天應用程式作為 LangBot 運行器執行。", "ja_JP": "WeKnora エージェントまたはナレッジベースチャットを LangBot Runner として実行します。", "th_TH": "เรียกใช้เอเจนต์ WeKnora หรือแอปแชตฐานความรู้เป็น LangBot Runner", "vi_VN": "Chạy tác nhân WeKnora hoặc ứng dụng trò chuyện kho tri thức dưới dạng LangBot Runner.", "es_ES": "Ejecuta un agente WeKnora o una aplicación de chat con base de conocimiento como LangBot Runner.", "ru_RU": "Запускает агент WeKnora или чат с базой знаний как LangBot Runner." }, "icon": "assets/icon.svg" }, "spec": { "config": [], "components": { "Runner": { "fromDirs": [ { "path": "components/runner/" } ] } }, "pages": [] }, "execution": { "python": { "path": "main.py", "attr": "WeKnoraAgentPlugin" } } }, "component": { "apiVersion": "langbot/v1", "kind": "Runner", "metadata": { "name": "default", "label": { "en_US": "WeKnora", "zh_Hans": "WeKnora" }, "description": { "en_US": "Run a WeKnora agent or knowledge-base chat app as a LangBot Runner.", "zh_Hans": "将 WeKnora 智能体或知识库问答应用作为 LangBot 运行器运行。" } }, "spec": { "usages": [ "agent" ], "config": [ { "name": "base-url", "label": { "en_US": "Base URL", "zh_Hans": "基础 URL" }, "description": { "en_US": "The WeKnora API base URL, including /api/v1.", "zh_Hans": "WeKnora API 基础 URL,包含 /api/v1。" }, "type": "string", "required": true, "default": "http://localhost:8080/api/v1" }, { "name": "api-key", "label": { "en_US": "API Key", "zh_Hans": "API 密钥" }, "description": { "en_US": "API key generated from WeKnora Settings -> API Keys.", "zh_Hans": "从 WeKnora 设置 -> API Keys 生成的 API 密钥。" }, "type": "secret", "required": true, "default": "" }, { "name": "app-type", "label": { "en_US": "App Type", "zh_Hans": "应用类型" }, "type": "select", "required": true, "default": "agent", "options": [ { "name": "agent", "label": { "en_US": "Agent (Smart Reasoning)", "zh_Hans": "Agent(智能推理)" } }, { "name": "chat", "label": { "en_US": "Chat (Knowledge Base RAG)", "zh_Hans": "聊天(知识库 RAG)" } } ] }, { "name": "agent-id", "label": { "en_US": "Agent ID", "zh_Hans": "智能体 ID" }, "description": { "en_US": "When omitted, chat uses builtin-quick-answer and agent uses builtin-smart-reasoning. An explicit empty value lets the server choose. Saved IDs apply in both modes.", "zh_Hans": "未设置时,聊天使用 builtin-quick-answer,智能体使用 builtin-smart-reasoning。显式留空则由服务端选择。已保存的 ID 在两种模式下均生效。" }, "type": "string", "required": false }, { "name": "knowledge-base-ids", "label": { "en_US": "Knowledge Base IDs", "zh_Hans": "知识库 ID 列表" }, "description": { "en_US": "Remote WeKnora knowledge base IDs used in both modes, not LangBot knowledge base UUIDs. Values and order are preserved.", "zh_Hans": "两种模式均可使用的远端 WeKnora 知识库 ID,不是 LangBot 知识库 UUID。保留原值和顺序。" }, "type": "array[string]", "required": false, "default": [] }, { "name": "web-search-enabled", "label": { "en_US": "Enable Web Search", "zh_Hans": "启用网络搜索" }, "description": { "en_US": "Whether to enable web search in agent mode.", "zh_Hans": "是否在 Agent 模式下启用网络搜索。" }, "type": "boolean", "required": false, "default": false, "show_if": { "field": "app-type", "operator": "eq", "value": "agent" } }, { "name": "advanced-settings", "label": { "en_US": "Advanced Settings", "zh_Hans": "高级设置" }, "description": { "en_US": "Show timeout and fallback prompt controls.", "zh_Hans": "显示超时和回退提示词调优选项。" }, "type": "boolean", "required": false, "default": false }, { "name": "timeout", "label": { "en_US": "Timeout", "zh_Hans": "超时时间" }, "description": { "en_US": "Request timeout in seconds.", "zh_Hans": "请求超时时间(秒)。" }, "type": "integer", "required": false, "default": 120, "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } }, { "name": "base-prompt", "label": { "en_US": "Base Prompt", "zh_Hans": "基础提示词" }, "description": { "en_US": "Default prompt when the user message is empty.", "zh_Hans": "用户消息为空时使用的默认提示词。" }, "type": "string", "required": false, "default": "请回答用户的问题。", "show_if": { "field": "advanced-settings", "operator": "eq", "value": true } } ], "capabilities": { "streaming": true, "tool_calling": false, "knowledge_retrieval": false, "multimodal_input": false, "interrupt": false }, "permissions": { "storage": [ "plugin" ] } }, "execution": { "python": { "path": "default.py", "attr": "DefaultRunner" } } }, "package_sha256": "63841513ad9a0272f1e9863ab70a280989651a26db421b3f0df634972978135b", "schema_sha256": "78d6d36d38f3991cc1a0bfc057d09a18a43c55e6af45b6ed61908d66bf475aa2" } }, "cases": [ { "legacy_runner": "local-agent", "source": { "trigger": { "group-respond-rules": { "at": true, "prefix": [ "ai" ], "regexp": [], "random": 0.0 }, "access-control": { "mode": "blacklist", "blacklist": [], "whitelist": [] }, "ignore-rules": { "prefix": [], "regexp": [] }, "message-aggregation": { "enabled": false, "delay": 1.5 }, "misc": { "combine-quote-message": true } }, "safety": { "content-filter": { "scope": "all", "check-sensitive-words": true }, "rate-limit": { "window-length": 60, "limitation": 60, "strategy": "drop" } }, "ai": { "runner": { "runner": "local-agent", "expire-time": 0 }, "local-agent": { "model": { "primary": "synthetic-model", "fallbacks": [] }, "max-round": 10, "prompt": [ { "role": "system", "content": "Synthetic prompt" } ], "enable-all-tools": false, "tools": [] }, "dify-service-api": { "base-url": "https://dify.invalid/v1", "api-key": "synthetic-key", "app-type": "chat", "base-prompt": "Synthetic prompt" }, "coze-api": { "api-key": "synthetic-key", "bot-id": "synthetic-bot", "api-base": "https://api.coze.cn", "auto_save_history": false, "timeout": 120 }, "dashscope-app-api": { "api-key": "synthetic-key", "app-id": "synthetic-app", "app-type": "agent", "references_quote": "Synthetic references" }, "n8n-service-api": { "webhook-url": "https://n8n.invalid/hook?token=synthetic", "auth-type": "none", "timeout": 120, "output-key": "response", "response-handling": "reply" }, "langflow-api": { "base-url": "https://langflow.invalid", "api-key": "synthetic-key", "flow-id": "synthetic-flow", "input_type": "chat", "output_type": "chat", "tweaks": "{}" }, "deerflow-api": { "api-base": "https://deerflow.invalid", "api-key": "synthetic-key", "auth-header": "", "assistant-id": "lead_agent", "model-name": "synthetic-model", "thinking-enabled": false, "plan-mode": false, "subagent-enabled": false, "max-concurrent-subagents": 3, "timeout": 300, "recursion-limit": 1000 }, "tbox-app-api": { "api-key": "synthetic-key", "app-id": "synthetic-app" }, "weknora-api": { "base-url": "https://weknora.invalid/api/v1", "api-key": "synthetic-key", "app-type": "agent", "knowledge-base-ids": [ "remote-kb" ], "web-search-enabled": false } }, "output": { "long-text-processing": { "threshold": 1000, "strategy": "none", "font-path": "" }, "force-delay": { "min": 0, "max": 0 }, "misc": { "exception-handling": "show-hint", "failure-hint": "Request failed.", "at-sender": true, "quote-origin": true, "track-function-calls": false, "remove-think": false } } }, "plan": { "state": "ready", "legacy_runner": "local-agent", "target_runner_id": "plugin:langbot-team/LocalAgent/default", "target_plugin": { "author": "langbot-team", "name": "LocalAgent", "version": "0.1.10" }, "config": { "trigger": { "group-respond-rules": { "at": true, "prefix": [ "ai" ], "regexp": [], "random": 0.0 }, "access-control": { "mode": "blacklist", "blacklist": [], "whitelist": [] }, "ignore-rules": { "prefix": [], "regexp": [] }, "message-aggregation": { "enabled": false, "delay": 1.5 }, "misc": { "combine-quote-message": true } }, "safety": { "content-filter": { "scope": "all", "check-sensitive-words": true }, "rate-limit": { "window-length": 60, "limitation": 60, "strategy": "drop" } }, "ai": { "runner": { "expire-time": 0, "id": "plugin:langbot-team/LocalAgent/default" }, "runner_config": { "plugin:langbot-team/LocalAgent/default": { "advanced-settings": false, "date-grounding": true, "timeout": 300, "retrieval-top-k": 5, "rerank-model": "", "rerank-top-k": 5, "max-tool-iterations": 100, "tool-execution-mode": "serial", "max-tool-result-chars": 20000, "context-history-fetch-limit": 50, "context-window-tokens": 200000, "context-reserve-tokens": 16384, "context-keep-recent-tokens": 20000, "context-summary-tokens": 8000, "enable-all-tools": false, "tools": [], "knowledge-bases": [], "model": { "fallbacks": [], "reasoning": {}, "primary": "synthetic-model" }, "prompt": [ { "role": "system", "content": "Synthetic prompt" } ], "mcp-resources": [], "mcp-resource-agent-read-enabled": true, "remove-think": false } } }, "output": { "long-text-processing": { "threshold": 1000, "strategy": "none", "font-path": "" }, "force-delay": { "min": 0, "max": 0 }, "misc": { "exception-handling": "show-hint", "failure-hint": "Request failed.", "at-sender": true, "quote-origin": true, "track-function-calls": false, "remove-think": false } } }, "changed_paths": [ "ai.runner.runner", "ai.runner.id", "ai.runner_config", "ai.local-agent", "ai.dify-service-api", "ai.coze-api", "ai.dashscope-app-api", "ai.n8n-service-api", "ai.langflow-api", "ai.deerflow-api", "ai.tbox-app-api", "ai.weknora-api" ], "blockers": [], "warnings": [ { "code": "local.context_defaults", "field": "ai.local-agent.max-round" }, { "code": "local.serial_tools_preserved", "field": "ai.local-agent.tools" }, { "code": "local.retrieval_defaults", "field": "ai.local-agent.knowledge-bases" }, { "code": "local.box_state_reset", "field": "ai.local-agent.box-session-id-template" }, { "code": "external.state_validation_required", "field": "ai.runner" }, { "code": "migration.history_reset", "field": "ai.runner" }, { "code": "migration.new_defaults", "field": "ai.local-agent" }, { "code": "migration.legacy_sections_archived", "field": "ai" }, { "code": "migration.output_policy_copied", "field": "output.misc.remove-think" } ] } }, { "legacy_runner": "dify-service-api", "source": { "trigger": { "group-respond-rules": { "at": true, "prefix": [ "ai" ], "regexp": [], "random": 0.0 }, "access-control": { "mode": "blacklist", "blacklist": [], "whitelist": [] }, "ignore-rules": { "prefix": [], "regexp": [] }, "message-aggregation": { "enabled": false, "delay": 1.5 }, "misc": { "combine-quote-message": true } }, "safety": { "content-filter": { "scope": "all", "check-sensitive-words": true }, "rate-limit": { "window-length": 60, "limitation": 60, "strategy": "drop" } }, "ai": { "runner": { "runner": "dify-service-api", "expire-time": 0 }, "local-agent": { "model": { "primary": "synthetic-model", "fallbacks": [] }, "max-round": 10, "prompt": [ { "role": "system", "content": "Synthetic prompt" } ], "enable-all-tools": false, "tools": [] }, "dify-service-api": { "base-url": "https://dify.invalid/v1", "api-key": "synthetic-key", "app-type": "chat", "base-prompt": "Synthetic prompt" }, "coze-api": { "api-key": "synthetic-key", "bot-id": "synthetic-bot", "api-base": "https://api.coze.cn", "auto_save_history": false, "timeout": 120 }, "dashscope-app-api": { "api-key": "synthetic-key", "app-id": "synthetic-app", "app-type": "agent", "references_quote": "Synthetic references" }, "n8n-service-api": { "webhook-url": "https://n8n.invalid/hook?token=synthetic", "auth-type": "none", "timeout": 120, "output-key": "response", "response-handling": "reply" }, "langflow-api": { "base-url": "https://langflow.invalid", "api-key": "synthetic-key", "flow-id": "synthetic-flow", "input_type": "chat", "output_type": "chat", "tweaks": "{}" }, "deerflow-api": { "api-base": "https://deerflow.invalid", "api-key": "synthetic-key", "auth-header": "", "assistant-id": "lead_agent", "model-name": "synthetic-model", "thinking-enabled": false, "plan-mode": false, "subagent-enabled": false, "max-concurrent-subagents": 3, "timeout": 300, "recursion-limit": 1000 }, "tbox-app-api": { "api-key": "synthetic-key", "app-id": "synthetic-app" }, "weknora-api": { "base-url": "https://weknora.invalid/api/v1", "api-key": "synthetic-key", "app-type": "agent", "knowledge-base-ids": [ "remote-kb" ], "web-search-enabled": false } }, "output": { "long-text-processing": { "threshold": 1000, "strategy": "none", "font-path": "" }, "force-delay": { "min": 0, "max": 0 }, "misc": { "exception-handling": "show-hint", "failure-hint": "Request failed.", "at-sender": true, "quote-origin": true, "track-function-calls": false, "remove-think": false } } }, "plan": { "state": "ready", "legacy_runner": "dify-service-api", "target_runner_id": "plugin:langbot-team/DifyAgent/default", "target_plugin": { "author": "langbot-team", "name": "DifyAgent", "version": "0.1.10" }, "config": { "trigger": { "group-respond-rules": { "at": true, "prefix": [ "ai" ], "regexp": [], "random": 0.0 }, "access-control": { "mode": "blacklist", "blacklist": [], "whitelist": [] }, "ignore-rules": { "prefix": [], "regexp": [] }, "message-aggregation": { "enabled": false, "delay": 1.5 }, "misc": { "combine-quote-message": true } }, "safety": { "content-filter": { "scope": "all", "check-sensitive-words": true }, "rate-limit": { "window-length": 60, "limitation": 60, "strategy": "drop" } }, "ai": { "runner": { "expire-time": 0, "id": "plugin:langbot-team/DifyAgent/default" }, "runner_config": { "plugin:langbot-team/DifyAgent/default": { "timeout": 30, "advanced-settings": false, "base-url": "https://dify.invalid/v1", "api-key": "synthetic-key", "app-type": "chat", "base-prompt": "Synthetic prompt", "user-id-source": "legacy-session", "enable-all-tools": false, "tools": [], "knowledge-bases": [], "mcp-resources": [], "mcp-resource-agent-read-enabled": false, "langbot-assets-enabled": false, "remove-think": false } } }, "output": { "long-text-processing": { "threshold": 1000, "strategy": "none", "font-path": "" }, "force-delay": { "min": 0, "max": 0 }, "misc": { "exception-handling": "show-hint", "failure-hint": "Request failed.", "at-sender": true, "quote-origin": true, "track-function-calls": false, "remove-think": false } } }, "changed_paths": [ "ai.runner.runner", "ai.runner.id", "ai.runner_config", "ai.local-agent", "ai.dify-service-api", "ai.coze-api", "ai.dashscope-app-api", "ai.n8n-service-api", "ai.langflow-api", "ai.deerflow-api", "ai.tbox-app-api", "ai.weknora-api" ], "blockers": [], "warnings": [ { "code": "dify.timeout_default", "field": "ai.dify-service-api.timeout" }, { "code": "external.state_validation_required", "field": "ai.runner" }, { "code": "migration.history_reset", "field": "ai.runner" }, { "code": "migration.new_defaults", "field": "ai.dify-service-api" }, { "code": "migration.legacy_sections_archived", "field": "ai" }, { "code": "migration.filtered_variables", "field": "ai.dify-service-api" }, { "code": "migration.identity_preserved", "field": "ai.dify-service-api" }, { "code": "migration.output_policy_copied", "field": "output.misc.remove-think" } ] } }, { "legacy_runner": "coze-api", "source": { "trigger": { "group-respond-rules": { "at": true, "prefix": [ "ai" ], "regexp": [], "random": 0.0 }, "access-control": { "mode": "blacklist", "blacklist": [], "whitelist": [] }, "ignore-rules": { "prefix": [], "regexp": [] }, "message-aggregation": { "enabled": false, "delay": 1.5 }, "misc": { "combine-quote-message": true } }, "safety": { "content-filter": { "scope": "all", "check-sensitive-words": true }, "rate-limit": { "window-length": 60, "limitation": 60, "strategy": "drop" } }, "ai": { "runner": { "runner": "coze-api", "expire-time": 0 }, "local-agent": { "model": { "primary": "synthetic-model", "fallbacks": [] }, "max-round": 10, "prompt": [ { "role": "system", "content": "Synthetic prompt" } ], "enable-all-tools": false, "tools": [] }, "dify-service-api": { "base-url": "https://dify.invalid/v1", "api-key": "synthetic-key", "app-type": "chat", "base-prompt": "Synthetic prompt" }, "coze-api": { "api-key": "synthetic-key", "bot-id": "synthetic-bot", "api-base": "https://api.coze.cn", "auto_save_history": false, "timeout": 120 }, "dashscope-app-api": { "api-key": "synthetic-key", "app-id": "synthetic-app", "app-type": "agent", "references_quote": "Synthetic references" }, "n8n-service-api": { "webhook-url": "https://n8n.invalid/hook?token=synthetic", "auth-type": "none", "timeout": 120, "output-key": "response", "response-handling": "reply" }, "langflow-api": { "base-url": "https://langflow.invalid", "api-key": "synthetic-key", "flow-id": "synthetic-flow", "input_type": "chat", "output_type": "chat", "tweaks": "{}" }, "deerflow-api": { "api-base": "https://deerflow.invalid", "api-key": "synthetic-key", "auth-header": "", "assistant-id": "lead_agent", "model-name": "synthetic-model", "thinking-enabled": false, "plan-mode": false, "subagent-enabled": false, "max-concurrent-subagents": 3, "timeout": 300, "recursion-limit": 1000 }, "tbox-app-api": { "api-key": "synthetic-key", "app-id": "synthetic-app" }, "weknora-api": { "base-url": "https://weknora.invalid/api/v1", "api-key": "synthetic-key", "app-type": "agent", "knowledge-base-ids": [ "remote-kb" ], "web-search-enabled": false } }, "output": { "long-text-processing": { "threshold": 1000, "strategy": "none", "font-path": "" }, "force-delay": { "min": 0, "max": 0 }, "misc": { "exception-handling": "show-hint", "failure-hint": "Request failed.", "at-sender": true, "quote-origin": true, "track-function-calls": false, "remove-think": false } } }, "plan": { "state": "ready", "legacy_runner": "coze-api", "target_runner_id": "plugin:langbot-team/CozeAgent/default", "target_plugin": { "author": "langbot-team", "name": "CozeAgent", "version": "0.1.10" }, "config": { "trigger": { "group-respond-rules": { "at": true, "prefix": [ "ai" ], "regexp": [], "random": 0.0 }, "access-control": { "mode": "blacklist", "blacklist": [], "whitelist": [] }, "ignore-rules": { "prefix": [], "regexp": [] }, "message-aggregation": { "enabled": false, "delay": 1.5 }, "misc": { "combine-quote-message": true } }, "safety": { "content-filter": { "scope": "all", "check-sensitive-words": true }, "rate-limit": { "window-length": 60, "limitation": 60, "strategy": "drop" } }, "ai": { "runner": { "expire-time": 0, "id": "plugin:langbot-team/CozeAgent/default" }, "runner_config": { "plugin:langbot-team/CozeAgent/default": { "auto-save-history": false, "advanced-settings": false, "api-key": "synthetic-key", "bot-id": "synthetic-bot", "api-base": "https://api.coze.cn", "timeout": 120, "user-id-source": "legacy-session", "enable-all-tools": false, "tools": [], "knowledge-bases": [], "mcp-resources": [], "mcp-resource-agent-read-enabled": false, "langbot-assets-enabled": false, "remove-think": false } } }, "output": { "long-text-processing": { "threshold": 1000, "strategy": "none", "font-path": "" }, "force-delay": { "min": 0, "max": 0 }, "misc": { "exception-handling": "show-hint", "failure-hint": "Request failed.", "at-sender": true, "quote-origin": true, "track-function-calls": false, "remove-think": false } } }, "changed_paths": [ "ai.runner.runner", "ai.runner.id", "ai.runner_config", "ai.local-agent", "ai.dify-service-api", "ai.coze-api", "ai.dashscope-app-api", "ai.n8n-service-api", "ai.langflow-api", "ai.deerflow-api", "ai.tbox-app-api", "ai.weknora-api" ], "blockers": [], "warnings": [ { "code": "migration.alias_repaired", "field": "ai.coze-api.auto_save_history" }, { "code": "coze.persistent_history", "field": "ai.coze-api" }, { "code": "external.state_validation_required", "field": "ai.runner" }, { "code": "migration.history_reset", "field": "ai.runner" }, { "code": "migration.new_defaults", "field": "ai.coze-api" }, { "code": "migration.legacy_sections_archived", "field": "ai" }, { "code": "migration.identity_preserved", "field": "ai.coze-api" }, { "code": "migration.output_policy_copied", "field": "output.misc.remove-think" } ] } }, { "legacy_runner": "dashscope-app-api", "source": { "trigger": { "group-respond-rules": { "at": true, "prefix": [ "ai" ], "regexp": [], "random": 0.0 }, "access-control": { "mode": "blacklist", "blacklist": [], "whitelist": [] }, "ignore-rules": { "prefix": [], "regexp": [] }, "message-aggregation": { "enabled": false, "delay": 1.5 }, "misc": { "combine-quote-message": true } }, "safety": { "content-filter": { "scope": "all", "check-sensitive-words": true }, "rate-limit": { "window-length": 60, "limitation": 60, "strategy": "drop" } }, "ai": { "runner": { "runner": "dashscope-app-api", "expire-time": 0 }, "local-agent": { "model": { "primary": "synthetic-model", "fallbacks": [] }, "max-round": 10, "prompt": [ { "role": "system", "content": "Synthetic prompt" } ], "enable-all-tools": false, "tools": [] }, "dify-service-api": { "base-url": "https://dify.invalid/v1", "api-key": "synthetic-key", "app-type": "chat", "base-prompt": "Synthetic prompt" }, "coze-api": { "api-key": "synthetic-key", "bot-id": "synthetic-bot", "api-base": "https://api.coze.cn", "auto_save_history": false, "timeout": 120 }, "dashscope-app-api": { "api-key": "synthetic-key", "app-id": "synthetic-app", "app-type": "agent", "references_quote": "Synthetic references" }, "n8n-service-api": { "webhook-url": "https://n8n.invalid/hook?token=synthetic", "auth-type": "none", "timeout": 120, "output-key": "response", "response-handling": "reply" }, "langflow-api": { "base-url": "https://langflow.invalid", "api-key": "synthetic-key", "flow-id": "synthetic-flow", "input_type": "chat", "output_type": "chat", "tweaks": "{}" }, "deerflow-api": { "api-base": "https://deerflow.invalid", "api-key": "synthetic-key", "auth-header": "", "assistant-id": "lead_agent", "model-name": "synthetic-model", "thinking-enabled": false, "plan-mode": false, "subagent-enabled": false, "max-concurrent-subagents": 3, "timeout": 300, "recursion-limit": 1000 }, "tbox-app-api": { "api-key": "synthetic-key", "app-id": "synthetic-app" }, "weknora-api": { "base-url": "https://weknora.invalid/api/v1", "api-key": "synthetic-key", "app-type": "agent", "knowledge-base-ids": [ "remote-kb" ], "web-search-enabled": false } }, "output": { "long-text-processing": { "threshold": 1000, "strategy": "none", "font-path": "" }, "force-delay": { "min": 0, "max": 0 }, "misc": { "exception-handling": "show-hint", "failure-hint": "Request failed.", "at-sender": true, "quote-origin": true, "track-function-calls": false, "remove-think": false } } }, "plan": { "state": "ready", "legacy_runner": "dashscope-app-api", "target_runner_id": "plugin:langbot-team/DashScopeAgent/default", "target_plugin": { "author": "langbot-team", "name": "DashScopeAgent", "version": "0.1.10" }, "config": { "trigger": { "group-respond-rules": { "at": true, "prefix": [ "ai" ], "regexp": [], "random": 0.0 }, "access-control": { "mode": "blacklist", "blacklist": [], "whitelist": [] }, "ignore-rules": { "prefix": [], "regexp": [] }, "message-aggregation": { "enabled": false, "delay": 1.5 }, "misc": { "combine-quote-message": true } }, "safety": { "content-filter": { "scope": "all", "check-sensitive-words": true }, "rate-limit": { "window-length": 60, "limitation": 60, "strategy": "drop" } }, "ai": { "runner": { "expire-time": 0, "id": "plugin:langbot-team/DashScopeAgent/default" }, "runner_config": { "plugin:langbot-team/DashScopeAgent/default": { "references_quote": "Synthetic references", "timeout": 120, "advanced-settings": false, "api-key": "synthetic-key", "app-id": "synthetic-app", "app-type": "agent", "enable-all-tools": false, "tools": [], "knowledge-bases": [], "mcp-resources": [], "mcp-resource-agent-read-enabled": false, "langbot-assets-enabled": false, "remove-think": false } } }, "output": { "long-text-processing": { "threshold": 1000, "strategy": "none", "font-path": "" }, "force-delay": { "min": 0, "max": 0 }, "misc": { "exception-handling": "show-hint", "failure-hint": "Request failed.", "at-sender": true, "quote-origin": true, "track-function-calls": false, "remove-think": false } } }, "changed_paths": [ "ai.runner.runner", "ai.runner.id", "ai.runner_config", "ai.local-agent", "ai.dify-service-api", "ai.coze-api", "ai.dashscope-app-api", "ai.n8n-service-api", "ai.langflow-api", "ai.deerflow-api", "ai.tbox-app-api", "ai.weknora-api" ], "blockers": [], "warnings": [ { "code": "external.state_validation_required", "field": "ai.runner" }, { "code": "migration.history_reset", "field": "ai.runner" }, { "code": "migration.new_defaults", "field": "ai.dashscope-app-api" }, { "code": "migration.legacy_sections_archived", "field": "ai" }, { "code": "migration.filtered_variables", "field": "ai.dashscope-app-api" }, { "code": "migration.output_policy_copied", "field": "output.misc.remove-think" } ] } }, { "legacy_runner": "n8n-service-api", "source": { "trigger": { "group-respond-rules": { "at": true, "prefix": [ "ai" ], "regexp": [], "random": 0.0 }, "access-control": { "mode": "blacklist", "blacklist": [], "whitelist": [] }, "ignore-rules": { "prefix": [], "regexp": [] }, "message-aggregation": { "enabled": false, "delay": 1.5 }, "misc": { "combine-quote-message": true } }, "safety": { "content-filter": { "scope": "all", "check-sensitive-words": true }, "rate-limit": { "window-length": 60, "limitation": 60, "strategy": "drop" } }, "ai": { "runner": { "runner": "n8n-service-api", "expire-time": 0 }, "local-agent": { "model": { "primary": "synthetic-model", "fallbacks": [] }, "max-round": 10, "prompt": [ { "role": "system", "content": "Synthetic prompt" } ], "enable-all-tools": false, "tools": [] }, "dify-service-api": { "base-url": "https://dify.invalid/v1", "api-key": "synthetic-key", "app-type": "chat", "base-prompt": "Synthetic prompt" }, "coze-api": { "api-key": "synthetic-key", "bot-id": "synthetic-bot", "api-base": "https://api.coze.cn", "auto_save_history": false, "timeout": 120 }, "dashscope-app-api": { "api-key": "synthetic-key", "app-id": "synthetic-app", "app-type": "agent", "references_quote": "Synthetic references" }, "n8n-service-api": { "webhook-url": "https://n8n.invalid/hook?token=synthetic", "auth-type": "none", "timeout": 120, "output-key": "response", "response-handling": "reply" }, "langflow-api": { "base-url": "https://langflow.invalid", "api-key": "synthetic-key", "flow-id": "synthetic-flow", "input_type": "chat", "output_type": "chat", "tweaks": "{}" }, "deerflow-api": { "api-base": "https://deerflow.invalid", "api-key": "synthetic-key", "auth-header": "", "assistant-id": "lead_agent", "model-name": "synthetic-model", "thinking-enabled": false, "plan-mode": false, "subagent-enabled": false, "max-concurrent-subagents": 3, "timeout": 300, "recursion-limit": 1000 }, "tbox-app-api": { "api-key": "synthetic-key", "app-id": "synthetic-app" }, "weknora-api": { "base-url": "https://weknora.invalid/api/v1", "api-key": "synthetic-key", "app-type": "agent", "knowledge-base-ids": [ "remote-kb" ], "web-search-enabled": false } }, "output": { "long-text-processing": { "threshold": 1000, "strategy": "none", "font-path": "" }, "force-delay": { "min": 0, "max": 0 }, "misc": { "exception-handling": "show-hint", "failure-hint": "Request failed.", "at-sender": true, "quote-origin": true, "track-function-calls": false, "remove-think": false } } }, "plan": { "state": "ready", "legacy_runner": "n8n-service-api", "target_runner_id": "plugin:langbot-team/N8nAgent/default", "target_plugin": { "author": "langbot-team", "name": "N8nAgent", "version": "0.1.10" }, "config": { "trigger": { "group-respond-rules": { "at": true, "prefix": [ "ai" ], "regexp": [], "random": 0.0 }, "access-control": { "mode": "blacklist", "blacklist": [], "whitelist": [] }, "ignore-rules": { "prefix": [], "regexp": [] }, "message-aggregation": { "enabled": false, "delay": 1.5 }, "misc": { "combine-quote-message": true } }, "safety": { "content-filter": { "scope": "all", "check-sensitive-words": true }, "rate-limit": { "window-length": 60, "limitation": 60, "strategy": "drop" } }, "ai": { "runner": { "expire-time": 0, "id": "plugin:langbot-team/N8nAgent/default" }, "runner_config": { "plugin:langbot-team/N8nAgent/default": { "auth-type": "none", "basic-username": "", "basic-password": "", "jwt-secret": "", "jwt-algorithm": "HS256", "header-name": "", "header-value": "", "timeout": 120, "output-key": "response", "response-handling": "reply", "basic-encoding": "latin1", "advanced-settings": false, "webhook-url": "https://n8n.invalid/hook?token=synthetic", "user-id-source": "legacy-session", "enable-all-tools": false, "tools": [], "knowledge-bases": [], "mcp-resources": [], "mcp-resource-agent-read-enabled": false, "langbot-assets-enabled": false } } }, "output": { "long-text-processing": { "threshold": 1000, "strategy": "none", "font-path": "" }, "force-delay": { "min": 0, "max": 0 }, "misc": { "exception-handling": "show-hint", "failure-hint": "Request failed.", "at-sender": true, "quote-origin": true, "track-function-calls": false, "remove-think": false } } }, "changed_paths": [ "ai.runner.runner", "ai.runner.id", "ai.runner_config", "ai.local-agent", "ai.dify-service-api", "ai.coze-api", "ai.dashscope-app-api", "ai.n8n-service-api", "ai.langflow-api", "ai.deerflow-api", "ai.tbox-app-api", "ai.weknora-api" ], "blockers": [], "warnings": [ { "code": "n8n.session_ids_reset", "field": "ai.n8n-service-api" }, { "code": "external.state_validation_required", "field": "ai.runner" }, { "code": "migration.history_reset", "field": "ai.runner" }, { "code": "migration.new_defaults", "field": "ai.n8n-service-api" }, { "code": "migration.legacy_sections_archived", "field": "ai" }, { "code": "migration.filtered_variables", "field": "ai.n8n-service-api" }, { "code": "migration.identity_preserved", "field": "ai.n8n-service-api" } ] } }, { "legacy_runner": "langflow-api", "source": { "trigger": { "group-respond-rules": { "at": true, "prefix": [ "ai" ], "regexp": [], "random": 0.0 }, "access-control": { "mode": "blacklist", "blacklist": [], "whitelist": [] }, "ignore-rules": { "prefix": [], "regexp": [] }, "message-aggregation": { "enabled": false, "delay": 1.5 }, "misc": { "combine-quote-message": true } }, "safety": { "content-filter": { "scope": "all", "check-sensitive-words": true }, "rate-limit": { "window-length": 60, "limitation": 60, "strategy": "drop" } }, "ai": { "runner": { "runner": "langflow-api", "expire-time": 0 }, "local-agent": { "model": { "primary": "synthetic-model", "fallbacks": [] }, "max-round": 10, "prompt": [ { "role": "system", "content": "Synthetic prompt" } ], "enable-all-tools": false, "tools": [] }, "dify-service-api": { "base-url": "https://dify.invalid/v1", "api-key": "synthetic-key", "app-type": "chat", "base-prompt": "Synthetic prompt" }, "coze-api": { "api-key": "synthetic-key", "bot-id": "synthetic-bot", "api-base": "https://api.coze.cn", "auto_save_history": false, "timeout": 120 }, "dashscope-app-api": { "api-key": "synthetic-key", "app-id": "synthetic-app", "app-type": "agent", "references_quote": "Synthetic references" }, "n8n-service-api": { "webhook-url": "https://n8n.invalid/hook?token=synthetic", "auth-type": "none", "timeout": 120, "output-key": "response", "response-handling": "reply" }, "langflow-api": { "base-url": "https://langflow.invalid", "api-key": "synthetic-key", "flow-id": "synthetic-flow", "input_type": "chat", "output_type": "chat", "tweaks": "{}" }, "deerflow-api": { "api-base": "https://deerflow.invalid", "api-key": "synthetic-key", "auth-header": "", "assistant-id": "lead_agent", "model-name": "synthetic-model", "thinking-enabled": false, "plan-mode": false, "subagent-enabled": false, "max-concurrent-subagents": 3, "timeout": 300, "recursion-limit": 1000 }, "tbox-app-api": { "api-key": "synthetic-key", "app-id": "synthetic-app" }, "weknora-api": { "base-url": "https://weknora.invalid/api/v1", "api-key": "synthetic-key", "app-type": "agent", "knowledge-base-ids": [ "remote-kb" ], "web-search-enabled": false } }, "output": { "long-text-processing": { "threshold": 1000, "strategy": "none", "font-path": "" }, "force-delay": { "min": 0, "max": 0 }, "misc": { "exception-handling": "show-hint", "failure-hint": "Request failed.", "at-sender": true, "quote-origin": true, "track-function-calls": false, "remove-think": false } } }, "plan": { "state": "ready", "legacy_runner": "langflow-api", "target_runner_id": "plugin:langbot-team/LangflowAgent/default", "target_plugin": { "author": "langbot-team", "name": "LangflowAgent", "version": "0.1.10" }, "config": { "trigger": { "group-respond-rules": { "at": true, "prefix": [ "ai" ], "regexp": [], "random": 0.0 }, "access-control": { "mode": "blacklist", "blacklist": [], "whitelist": [] }, "ignore-rules": { "prefix": [], "regexp": [] }, "message-aggregation": { "enabled": false, "delay": 1.5 }, "misc": { "combine-quote-message": true } }, "safety": { "content-filter": { "scope": "all", "check-sensitive-words": true }, "rate-limit": { "window-length": 60, "limitation": 60, "strategy": "drop" } }, "ai": { "runner": { "expire-time": 0, "id": "plugin:langbot-team/LangflowAgent/default" }, "runner_config": { "plugin:langbot-team/LangflowAgent/default": { "input-type": "chat", "output-type": "chat", "tweaks": {}, "advanced-settings": false, "base-url": "https://langflow.invalid", "api-key": "synthetic-key", "flow-id": "synthetic-flow", "enable-all-tools": false, "tools": [], "knowledge-bases": [], "mcp-resources": [], "mcp-resource-agent-read-enabled": false, "langbot-assets-enabled": false } } }, "output": { "long-text-processing": { "threshold": 1000, "strategy": "none", "font-path": "" }, "force-delay": { "min": 0, "max": 0 }, "misc": { "exception-handling": "show-hint", "failure-hint": "Request failed.", "at-sender": true, "quote-origin": true, "track-function-calls": false, "remove-think": false } } }, "changed_paths": [ "ai.runner.runner", "ai.runner.id", "ai.runner_config", "ai.local-agent", "ai.dify-service-api", "ai.coze-api", "ai.dashscope-app-api", "ai.n8n-service-api", "ai.langflow-api", "ai.deerflow-api", "ai.tbox-app-api", "ai.weknora-api" ], "blockers": [], "warnings": [ { "code": "migration.alias_repaired", "field": "ai.langflow-api.input_type" }, { "code": "migration.alias_repaired", "field": "ai.langflow-api.output_type" }, { "code": "langflow.persistent_history", "field": "ai.langflow-api" }, { "code": "external.state_validation_required", "field": "ai.runner" }, { "code": "migration.history_reset", "field": "ai.runner" }, { "code": "migration.new_defaults", "field": "ai.langflow-api" }, { "code": "migration.legacy_sections_archived", "field": "ai" } ] } }, { "legacy_runner": "deerflow-api", "source": { "trigger": { "group-respond-rules": { "at": true, "prefix": [ "ai" ], "regexp": [], "random": 0.0 }, "access-control": { "mode": "blacklist", "blacklist": [], "whitelist": [] }, "ignore-rules": { "prefix": [], "regexp": [] }, "message-aggregation": { "enabled": false, "delay": 1.5 }, "misc": { "combine-quote-message": true } }, "safety": { "content-filter": { "scope": "all", "check-sensitive-words": true }, "rate-limit": { "window-length": 60, "limitation": 60, "strategy": "drop" } }, "ai": { "runner": { "runner": "deerflow-api", "expire-time": 0 }, "local-agent": { "model": { "primary": "synthetic-model", "fallbacks": [] }, "max-round": 10, "prompt": [ { "role": "system", "content": "Synthetic prompt" } ], "enable-all-tools": false, "tools": [] }, "dify-service-api": { "base-url": "https://dify.invalid/v1", "api-key": "synthetic-key", "app-type": "chat", "base-prompt": "Synthetic prompt" }, "coze-api": { "api-key": "synthetic-key", "bot-id": "synthetic-bot", "api-base": "https://api.coze.cn", "auto_save_history": false, "timeout": 120 }, "dashscope-app-api": { "api-key": "synthetic-key", "app-id": "synthetic-app", "app-type": "agent", "references_quote": "Synthetic references" }, "n8n-service-api": { "webhook-url": "https://n8n.invalid/hook?token=synthetic", "auth-type": "none", "timeout": 120, "output-key": "response", "response-handling": "reply" }, "langflow-api": { "base-url": "https://langflow.invalid", "api-key": "synthetic-key", "flow-id": "synthetic-flow", "input_type": "chat", "output_type": "chat", "tweaks": "{}" }, "deerflow-api": { "api-base": "https://deerflow.invalid", "api-key": "synthetic-key", "auth-header": "", "assistant-id": "lead_agent", "model-name": "synthetic-model", "thinking-enabled": false, "plan-mode": false, "subagent-enabled": false, "max-concurrent-subagents": 3, "timeout": 300, "recursion-limit": 1000 }, "tbox-app-api": { "api-key": "synthetic-key", "app-id": "synthetic-app" }, "weknora-api": { "base-url": "https://weknora.invalid/api/v1", "api-key": "synthetic-key", "app-type": "agent", "knowledge-base-ids": [ "remote-kb" ], "web-search-enabled": false } }, "output": { "long-text-processing": { "threshold": 1000, "strategy": "none", "font-path": "" }, "force-delay": { "min": 0, "max": 0 }, "misc": { "exception-handling": "show-hint", "failure-hint": "Request failed.", "at-sender": true, "quote-origin": true, "track-function-calls": false, "remove-think": false } } }, "plan": { "state": "ready", "legacy_runner": "deerflow-api", "target_runner_id": "plugin:langbot-team/DeerFlowAgent/default", "target_plugin": { "author": "langbot-team", "name": "DeerFlowAgent", "version": "0.1.10" }, "config": { "trigger": { "group-respond-rules": { "at": true, "prefix": [ "ai" ], "regexp": [], "random": 0.0 }, "access-control": { "mode": "blacklist", "blacklist": [], "whitelist": [] }, "ignore-rules": { "prefix": [], "regexp": [] }, "message-aggregation": { "enabled": false, "delay": 1.5 }, "misc": { "combine-quote-message": true } }, "safety": { "content-filter": { "scope": "all", "check-sensitive-words": true }, "rate-limit": { "window-length": 60, "limitation": 60, "strategy": "drop" } }, "ai": { "runner": { "expire-time": 0, "id": "plugin:langbot-team/DeerFlowAgent/default" }, "runner_config": { "plugin:langbot-team/DeerFlowAgent/default": { "api-key": "synthetic-key", "auth-header": "", "assistant-id": "lead_agent", "model-name": "synthetic-model", "thinking-enabled": false, "plan-mode": false, "subagent-enabled": false, "max-concurrent-subagents": 3, "timeout": 300, "recursion-limit": 1000, "api-base": "https://deerflow.invalid", "enable-all-tools": false, "tools": [], "knowledge-bases": [], "mcp-resources": [], "mcp-resource-agent-read-enabled": false } } }, "output": { "long-text-processing": { "threshold": 1000, "strategy": "none", "font-path": "" }, "force-delay": { "min": 0, "max": 0 }, "misc": { "exception-handling": "show-hint", "failure-hint": "Request failed.", "at-sender": true, "quote-origin": true, "track-function-calls": false, "remove-think": false } } }, "changed_paths": [ "ai.runner.runner", "ai.runner.id", "ai.runner_config", "ai.local-agent", "ai.dify-service-api", "ai.coze-api", "ai.dashscope-app-api", "ai.n8n-service-api", "ai.langflow-api", "ai.deerflow-api", "ai.tbox-app-api", "ai.weknora-api" ], "blockers": [], "warnings": [ { "code": "external.state_validation_required", "field": "ai.runner" }, { "code": "migration.history_reset", "field": "ai.runner" }, { "code": "migration.new_defaults", "field": "ai.deerflow-api" }, { "code": "migration.legacy_sections_archived", "field": "ai" } ] } }, { "legacy_runner": "tbox-app-api", "source": { "trigger": { "group-respond-rules": { "at": true, "prefix": [ "ai" ], "regexp": [], "random": 0.0 }, "access-control": { "mode": "blacklist", "blacklist": [], "whitelist": [] }, "ignore-rules": { "prefix": [], "regexp": [] }, "message-aggregation": { "enabled": false, "delay": 1.5 }, "misc": { "combine-quote-message": true } }, "safety": { "content-filter": { "scope": "all", "check-sensitive-words": true }, "rate-limit": { "window-length": 60, "limitation": 60, "strategy": "drop" } }, "ai": { "runner": { "runner": "tbox-app-api", "expire-time": 0 }, "local-agent": { "model": { "primary": "synthetic-model", "fallbacks": [] }, "max-round": 10, "prompt": [ { "role": "system", "content": "Synthetic prompt" } ], "enable-all-tools": false, "tools": [] }, "dify-service-api": { "base-url": "https://dify.invalid/v1", "api-key": "synthetic-key", "app-type": "chat", "base-prompt": "Synthetic prompt" }, "coze-api": { "api-key": "synthetic-key", "bot-id": "synthetic-bot", "api-base": "https://api.coze.cn", "auto_save_history": false, "timeout": 120 }, "dashscope-app-api": { "api-key": "synthetic-key", "app-id": "synthetic-app", "app-type": "agent", "references_quote": "Synthetic references" }, "n8n-service-api": { "webhook-url": "https://n8n.invalid/hook?token=synthetic", "auth-type": "none", "timeout": 120, "output-key": "response", "response-handling": "reply" }, "langflow-api": { "base-url": "https://langflow.invalid", "api-key": "synthetic-key", "flow-id": "synthetic-flow", "input_type": "chat", "output_type": "chat", "tweaks": "{}" }, "deerflow-api": { "api-base": "https://deerflow.invalid", "api-key": "synthetic-key", "auth-header": "", "assistant-id": "lead_agent", "model-name": "synthetic-model", "thinking-enabled": false, "plan-mode": false, "subagent-enabled": false, "max-concurrent-subagents": 3, "timeout": 300, "recursion-limit": 1000 }, "tbox-app-api": { "api-key": "synthetic-key", "app-id": "synthetic-app" }, "weknora-api": { "base-url": "https://weknora.invalid/api/v1", "api-key": "synthetic-key", "app-type": "agent", "knowledge-base-ids": [ "remote-kb" ], "web-search-enabled": false } }, "output": { "long-text-processing": { "threshold": 1000, "strategy": "none", "font-path": "" }, "force-delay": { "min": 0, "max": 0 }, "misc": { "exception-handling": "show-hint", "failure-hint": "Request failed.", "at-sender": true, "quote-origin": true, "track-function-calls": false, "remove-think": false } } }, "plan": { "state": "ready", "legacy_runner": "tbox-app-api", "target_runner_id": "plugin:langbot-team/TboxAgent/default", "target_plugin": { "author": "langbot-team", "name": "TboxAgent", "version": "0.1.8" }, "config": { "trigger": { "group-respond-rules": { "at": true, "prefix": [ "ai" ], "regexp": [], "random": 0.0 }, "access-control": { "mode": "blacklist", "blacklist": [], "whitelist": [] }, "ignore-rules": { "prefix": [], "regexp": [] }, "message-aggregation": { "enabled": false, "delay": 1.5 }, "misc": { "combine-quote-message": true } }, "safety": { "content-filter": { "scope": "all", "check-sensitive-words": true }, "rate-limit": { "window-length": 60, "limitation": 60, "strategy": "drop" } }, "ai": { "runner": { "expire-time": 0, "id": "plugin:langbot-team/TboxAgent/default" }, "runner_config": { "plugin:langbot-team/TboxAgent/default": { "timeout": 120, "api-key": "synthetic-key", "app-id": "synthetic-app", "user-id-source": "legacy-bot", "enable-all-tools": false, "tools": [], "knowledge-bases": [], "mcp-resources": [], "mcp-resource-agent-read-enabled": false, "remove-think": false } } }, "output": { "long-text-processing": { "threshold": 1000, "strategy": "none", "font-path": "" }, "force-delay": { "min": 0, "max": 0 }, "misc": { "exception-handling": "show-hint", "failure-hint": "Request failed.", "at-sender": true, "quote-origin": true, "track-function-calls": false, "remove-think": false } } }, "changed_paths": [ "ai.runner.runner", "ai.runner.id", "ai.runner_config", "ai.local-agent", "ai.dify-service-api", "ai.coze-api", "ai.dashscope-app-api", "ai.n8n-service-api", "ai.langflow-api", "ai.deerflow-api", "ai.tbox-app-api", "ai.weknora-api" ], "blockers": [], "warnings": [ { "code": "external.state_validation_required", "field": "ai.runner" }, { "code": "migration.history_reset", "field": "ai.runner" }, { "code": "migration.new_defaults", "field": "ai.tbox-app-api" }, { "code": "migration.legacy_sections_archived", "field": "ai" }, { "code": "migration.identity_preserved", "field": "ai.tbox-app-api" }, { "code": "migration.output_policy_copied", "field": "output.misc.remove-think" } ] } }, { "legacy_runner": "weknora-api", "source": { "trigger": { "group-respond-rules": { "at": true, "prefix": [ "ai" ], "regexp": [], "random": 0.0 }, "access-control": { "mode": "blacklist", "blacklist": [], "whitelist": [] }, "ignore-rules": { "prefix": [], "regexp": [] }, "message-aggregation": { "enabled": false, "delay": 1.5 }, "misc": { "combine-quote-message": true } }, "safety": { "content-filter": { "scope": "all", "check-sensitive-words": true }, "rate-limit": { "window-length": 60, "limitation": 60, "strategy": "drop" } }, "ai": { "runner": { "runner": "weknora-api", "expire-time": 0 }, "local-agent": { "model": { "primary": "synthetic-model", "fallbacks": [] }, "max-round": 10, "prompt": [ { "role": "system", "content": "Synthetic prompt" } ], "enable-all-tools": false, "tools": [] }, "dify-service-api": { "base-url": "https://dify.invalid/v1", "api-key": "synthetic-key", "app-type": "chat", "base-prompt": "Synthetic prompt" }, "coze-api": { "api-key": "synthetic-key", "bot-id": "synthetic-bot", "api-base": "https://api.coze.cn", "auto_save_history": false, "timeout": 120 }, "dashscope-app-api": { "api-key": "synthetic-key", "app-id": "synthetic-app", "app-type": "agent", "references_quote": "Synthetic references" }, "n8n-service-api": { "webhook-url": "https://n8n.invalid/hook?token=synthetic", "auth-type": "none", "timeout": 120, "output-key": "response", "response-handling": "reply" }, "langflow-api": { "base-url": "https://langflow.invalid", "api-key": "synthetic-key", "flow-id": "synthetic-flow", "input_type": "chat", "output_type": "chat", "tweaks": "{}" }, "deerflow-api": { "api-base": "https://deerflow.invalid", "api-key": "synthetic-key", "auth-header": "", "assistant-id": "lead_agent", "model-name": "synthetic-model", "thinking-enabled": false, "plan-mode": false, "subagent-enabled": false, "max-concurrent-subagents": 3, "timeout": 300, "recursion-limit": 1000 }, "tbox-app-api": { "api-key": "synthetic-key", "app-id": "synthetic-app" }, "weknora-api": { "base-url": "https://weknora.invalid/api/v1", "api-key": "synthetic-key", "app-type": "agent", "knowledge-base-ids": [ "remote-kb" ], "web-search-enabled": false } }, "output": { "long-text-processing": { "threshold": 1000, "strategy": "none", "font-path": "" }, "force-delay": { "min": 0, "max": 0 }, "misc": { "exception-handling": "show-hint", "failure-hint": "Request failed.", "at-sender": true, "quote-origin": true, "track-function-calls": false, "remove-think": false } } }, "plan": { "state": "ready", "legacy_runner": "weknora-api", "target_runner_id": "plugin:langbot-team/WeKnoraAgent/default", "target_plugin": { "author": "langbot-team", "name": "WeKnoraAgent", "version": "0.1.10" }, "config": { "trigger": { "group-respond-rules": { "at": true, "prefix": [ "ai" ], "regexp": [], "random": 0.0 }, "access-control": { "mode": "blacklist", "blacklist": [], "whitelist": [] }, "ignore-rules": { "prefix": [], "regexp": [] }, "message-aggregation": { "enabled": false, "delay": 1.5 }, "misc": { "combine-quote-message": true } }, "safety": { "content-filter": { "scope": "all", "check-sensitive-words": true }, "rate-limit": { "window-length": 60, "limitation": 60, "strategy": "drop" } }, "ai": { "runner": { "expire-time": 0, "id": "plugin:langbot-team/WeKnoraAgent/default" }, "runner_config": { "plugin:langbot-team/WeKnoraAgent/default": { "knowledge-base-ids": [ "remote-kb" ], "web-search-enabled": false, "timeout": 120, "base-prompt": "请回答用户的问题。", "advanced-settings": false, "base-url": "https://weknora.invalid/api/v1", "api-key": "synthetic-key", "app-type": "agent", "enable-all-tools": false, "tools": [], "knowledge-bases": [], "mcp-resources": [], "mcp-resource-agent-read-enabled": false, "agent-id": "builtin-smart-reasoning" } } }, "output": { "long-text-processing": { "threshold": 1000, "strategy": "none", "font-path": "" }, "force-delay": { "min": 0, "max": 0 }, "misc": { "exception-handling": "show-hint", "failure-hint": "Request failed.", "at-sender": true, "quote-origin": true, "track-function-calls": false, "remove-think": false } } }, "changed_paths": [ "ai.runner.runner", "ai.runner.id", "ai.runner_config", "ai.local-agent", "ai.dify-service-api", "ai.coze-api", "ai.dashscope-app-api", "ai.n8n-service-api", "ai.langflow-api", "ai.deerflow-api", "ai.tbox-app-api", "ai.weknora-api" ], "blockers": [], "warnings": [ { "code": "external.state_validation_required", "field": "ai.runner" }, { "code": "migration.history_reset", "field": "ai.runner" }, { "code": "migration.new_defaults", "field": "ai.weknora-api" }, { "code": "migration.legacy_sections_archived", "field": "ai" }, { "code": "weknora.session_title_changed", "field": "ai.weknora-api" } ] } } ], "ai_schema": { "name": "ai", "label": { "en_US": "AI Feature", "zh_Hans": "AI 能力" }, "stages": [ { "name": "runner", "label": { "en_US": "Runner", "zh_Hans": "运行方式" }, "description": { "en_US": "Strategy to call AI to process messages", "zh_Hans": "调用 AI 处理消息的方式" }, "config": [ { "name": "id", "label": { "en_US": "Runner", "zh_Hans": "运行器" }, "type": "select", "required": true }, { "name": "expire-time", "label": { "en_US": "Conversation expire time (seconds)", "zh_Hans": "单个对话过期时间(秒)" }, "description": { "en_US": "Maximum idle time of a single conversation, measured from the last message/preprocess update time. When a new message arrives and the current conversation has been idle for longer than this value, the existing external conversation id is discarded and a new one is started automatically — the user does not need to trigger a reset manually. Set to 0 to disable expiry (conversations live until the user or another mechanism resets them).", "zh_Hans": "单个对话的最长空闲时间,从最后一条消息/preprocess 更新时间开始计算。 当新消息到达且当前对话空闲时间已超过该值时,旧的外部对话 ID 会被自动丢弃并开启新对话, 用户无需手动重置。设置为 0 表示不限制过期时间(对话会一直保留,直到用户或其他机制主动重置)。" }, "type": "integer", "required": true, "default": 0 } ] } ] }, "output_schema": { "name": "output", "label": { "en_US": "Output Processing", "zh_Hans": "输出处理" }, "stages": [ { "name": "long-text-processing", "label": { "en_US": "Long Text Processing", "zh_Hans": "长文本处理" }, "config": [ { "name": "threshold", "label": { "en_US": "Threshold", "zh_Hans": "阈值" }, "description": { "en_US": "The threshold of the long text", "zh_Hans": "超过此长度的文本将被处理" }, "type": "integer", "required": true, "default": 1000 }, { "name": "strategy", "label": { "en_US": "Strategy", "zh_Hans": "策略" }, "description": { "en_US": "The strategy of the long text", "zh_Hans": "长文本的处理策略" }, "type": "select", "required": true, "default": "none", "options": [ { "name": "forward", "label": { "en_US": "Forward Message Component", "zh_Hans": "转换为转发消息组件(部分平台不支持)" } }, { "name": "image", "label": { "en_US": "Convert to Image", "zh_Hans": "转换为图片" } }, { "name": "none", "label": { "en_US": "None", "zh_Hans": "不处理" } } ] }, { "name": "font-path", "label": { "en_US": "Font Path", "zh_Hans": "字体路径" }, "description": { "en_US": "The path of the font to be used when converting to image", "zh_Hans": "选用转换为图片时,所使用的字体路径" }, "type": "string", "required": false, "default": "" } ] }, { "name": "force-delay", "label": { "en_US": "Force Delay", "zh_Hans": "强制延迟" }, "description": { "en_US": "Force the output to be delayed for a while", "zh_Hans": "强制延迟一段时间后再回复给用户" }, "config": [ { "name": "min", "label": { "en_US": "Min Seconds", "zh_Hans": "最小秒数" }, "type": "integer", "required": true, "default": 0 }, { "name": "max", "label": { "en_US": "Max Seconds", "zh_Hans": "最大秒数" }, "type": "integer", "required": true, "default": 0 } ] }, { "name": "misc", "label": { "en_US": "Misc", "zh_Hans": "杂项" }, "config": [ { "name": "exception-handling", "label": { "en_US": "Exception Handling Strategy", "zh_Hans": "异常处理策略" }, "description": { "en_US": "Controls how error messages are displayed to the user when an AI request fails", "zh_Hans": "控制 AI 请求失败时向用户展示错误信息的方式" }, "type": "select", "required": true, "default": "show-hint", "options": [ { "name": "show-error", "label": { "en_US": "Show Full Error", "zh_Hans": "显示完整报错信息" } }, { "name": "show-hint", "label": { "en_US": "Show Failure Hint", "zh_Hans": "仅文字提示" } }, { "name": "hide", "label": { "en_US": "Hide All", "zh_Hans": "不显示任何异常信息" } } ] }, { "name": "failure-hint", "label": { "en_US": "Failure Hint Text", "zh_Hans": "失败提示文本" }, "description": { "en_US": "The text to display when a request fails. Only effective when Exception Handling Strategy is set to \"Show Failure Hint\"", "zh_Hans": "请求失败时显示的提示文本,仅在异常处理策略设置为\"仅文字提示\"时生效" }, "type": "string", "required": false, "default": "Request failed." }, { "name": "at-sender", "label": { "en_US": "At Sender", "zh_Hans": "在群聊回复中@发送者" }, "type": "boolean", "required": true, "default": true }, { "name": "quote-origin", "label": { "en_US": "Quote Origin Message", "zh_Hans": "引用原消息" }, "type": "boolean", "required": true, "default": false }, { "name": "track-function-calls", "label": { "en_US": "Track Function Calls", "zh_Hans": "跟踪函数调用" }, "description": { "en_US": "If enabled, the function calls will be tracked and output to the user", "zh_Hans": "启用后,Agent 每次调用工具时都会输出一个提示给用户" }, "type": "boolean", "required": true, "default": false }, { "name": "remove-think", "label": { "en_US": "Remove CoT", "zh_Hans": "删除思维链" }, "description": { "en_US": "If enabled, LangBot will remove the LLM thought content in response. Note: When using streaming response, removing CoT may cause the first token to wait for a long time.", "zh_Hans": "如果启用,将自动删除大模型回复中的模型思考内容。注意:当您使用流式响应时,删除思维链可能会导致首个 Token 的等待时间过长" }, "type": "boolean", "required": true, "default": false } ] } ] } }