mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-08-23 10:37:13 +00:00
8e558ad3a1
* fix(box): trust Box-reported skill paths when filesystem is not shared
In separated deployments (Docker Compose, k8s sidecar, --standalone-box,
remote runtime.endpoint) the Box runtime owns its own filesystem, so the
skill package_root it reports via list_skills is not resolvable on the
LangBot side. LangBot's reload_skills and build_skill_extra_mounts
validated those paths with os.path.isdir() against its own filesystem,
which silently dropped every skill in such deployments — breaking the
sandbox skill feature for the nsjail/SaaS backend.
Add BoxService.shares_filesystem_with_box, derived from the connector
transport (stdio = shared, WebSocket = separated), with an explicit
override seam for tests/embedders. Gate both isdir() guards on it: keep
local validation in shared-fs stdio mode, trust Box-reported paths
otherwise. The Box runtime only reports skills found on its own
filesystem, so those paths are valid there by construction.
Adds topology-derivation tests (real connector, no mocks) and
skill-retention tests for both shared and separated filesystems.
* build(docker): ship a self-contained nsjail sandbox backend in the image
Compile nsjail 3.6 from source in a dedicated multi-stage build and carry
only the binary plus its runtime libs (libprotobuf32, libnl-route-3-200)
into the final image. This lets the Box runtime isolate sandboxed code via
nsjail user/mount/pid/net namespaces without a host Docker socket — the
prerequisite for running Box on LangBot Cloud (k8s), where mounting
docker.sock would grant node root and is not acceptable for multi-tenant.
The build toolchain (build-essential/bison/flex/protobuf-dev/libnl-dev)
stays in the nsjail-build stage and is not present in the shipped image.
Verified: image builds (583MB), nsjail --help exits 0, libraries resolve,
and the real NsjailBackend executes an isolated command end-to-end on a
v6.1/cgroup2 host matching LangBot Cloud prod (rlimit fallback path, since
container /sys/fs/cgroup is read-only; PID-namespace isolation confirmed).
* feat(box): SaaS guard to force a single global sandbox scope
Add system.limitation.force_box_session_id_template: when non-empty it
overrides every pipeline's box-session-id-template at resolve time, pinning
all queries to one shared sandbox (e.g. {global}). This is the authoritative,
unbypassable guard — it runs on every exec call, so editing the pipeline
config via API cannot escape it. The web UI locks the Sandbox Scope selector
via a combined box_scope_editable flag (box available AND not forced).
* build(deps): pin langbot-plugin==0.4.2b1 (nsjail cgroup container-safety beta)
* fix(web): show forced sandbox scope + make disabled tooltip tap-friendly
When a SaaS deployment pins every pipeline to a fixed sandbox scope via
system.limitation.force_box_session_id_template, the Sandbox Scope selector was
correctly locked but still displayed the pipeline's stored value (e.g. the
per-chat default), misrepresenting the scope that the runtime actually enforces
on every exec. Coerce the displayed/saved value to the forced template so the
locked selector truthfully shows the active scope (e.g. Global).
Also fix the disabled_tooltip being invisible on touch devices: hover-only Radix
tooltips never open without a pointer, so the explanation of why the field is
locked could not be read on mobile. Wrap the info icon so a tap toggles the
tooltip while desktop hover still works.
* feat(web): hide sidebar new-version prompt for edition=cloud
Cloud instances are upgraded centrally by the operator, so surfacing a GitHub
'new version available' badge to tenants is misleading and actionable only by
the operator. Skip the release check entirely when edition=cloud.
* style(web): prettier formatting for DisabledTooltipIcon ternary
* chore(deps): bump langbot-plugin to 0.4.2b2
Picks up the SDK fix that creates a read-write host_path before the
nsjail bind-mount, fixing the SaaS MCP shared-workspace sandbox failure
(exec exit 255 with empty output when host_path didn't exist).
* chore(deps): bump langbot-plugin to 0.4.2b3
Picks up the nsjail /dev-node fix so stdio MCP servers (uvx-launched) can
start under force_global_sandbox instead of failing with 'Connection closed
/ please check URL'.
* fix(web): show real MCP runtime status on installed extensions list
The installed-extensions list badge keyed solely off the enable flag, so a
server that was still CONNECTING (or in ERROR) was shown as 'Connected'.
Reflect the actual runtime_info.status (connecting/connected/error/disabled)
with matching colors, and poll quietly every 3s while any MCP server is
connecting so the badge transitions without a manual refresh.
* chore(deps): bump langbot-plugin to 0.4.2b4
Picks up the 30s start_managed_process timeout so cold uvx MCP bootstraps
don't get torn down mid-install.
* style(web): satisfy prettier — parenthesize nullish-coalescing in ternary
* fix(mcp): isolate transient test sessions from the shared Box session
A config-page 'test' (server_name='_', no persisted UUID) ran in the same
shared 'mcp-shared' Box session as live MCP servers. A failing test (e.g.
empty args) churned that shared session and tore down healthy, already-
connected servers — leaving them stuck after exhausting their retries.
Mark UUID-less sessions as transient, give them their own isolated Box
session ('mcp-test-<uuid>'), and fully delete that session on cleanup so
tests can never disturb live servers and don't leak sessions.
* fix(mcp): tear down transient test session after test completes
A successful config-page test left its isolated 'mcp-test-<uuid>' Box
session running (the lifecycle task blocks until shutdown). Wrap the
transient test coroutine so it always shuts the session down afterward,
preventing isolated test sessions from leaking.
877 lines
30 KiB
YAML
877 lines
30 KiB
YAML
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: runner
|
||
label:
|
||
en_US: Runner
|
||
zh_Hans: 运行器
|
||
type: select
|
||
required: true
|
||
default: local-agent
|
||
options:
|
||
- name: local-agent
|
||
label:
|
||
en_US: Local Agent
|
||
zh_Hans: 内置 Agent
|
||
- name: dify-service-api
|
||
label:
|
||
en_US: Dify Service API
|
||
zh_Hans: Dify 服务 API
|
||
- name: n8n-service-api
|
||
label:
|
||
en_US: n8n Workflow API
|
||
zh_Hans: n8n 工作流 API
|
||
- name: coze-api
|
||
label:
|
||
en_US: Coze API
|
||
zh_Hans: 扣子 API
|
||
- name: tbox-app-api
|
||
label:
|
||
en_US: Tbox App API
|
||
zh_Hans: 蚂蚁百宝箱平台 API
|
||
- name: dashscope-app-api
|
||
label:
|
||
en_US: Aliyun Dashscope App API
|
||
zh_Hans: 阿里云百炼平台 API
|
||
- name: langflow-api
|
||
label:
|
||
en_US: Langflow API
|
||
zh_Hans: Langflow API
|
||
- name: weknora-api
|
||
label:
|
||
en_US: WeKnora API
|
||
zh_Hans: WeKnora API
|
||
- name: deerflow-api
|
||
label:
|
||
en_US: DeerFlow API
|
||
zh_Hans: DeerFlow API
|
||
- 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
|
||
- name: local-agent
|
||
label:
|
||
en_US: Local Agent
|
||
zh_Hans: 内置 Agent
|
||
description:
|
||
en_US: Configure the embedded agent of the pipeline
|
||
zh_Hans: 配置内置 Agent
|
||
config:
|
||
- name: model
|
||
label:
|
||
en_US: Model
|
||
zh_Hans: 模型
|
||
type: model-fallback-selector
|
||
required: true
|
||
default:
|
||
primary: ''
|
||
fallbacks: []
|
||
- name: max-round
|
||
label:
|
||
en_US: Max Round
|
||
zh_Hans: 最大回合数
|
||
description:
|
||
en_US: The maximum number of previous messages that the agent can remember
|
||
zh_Hans: 最大前文消息回合数
|
||
type: integer
|
||
required: true
|
||
default: 10
|
||
show_if:
|
||
field: __system.is_wizard
|
||
operator: neq
|
||
value: true
|
||
- name: prompt
|
||
label:
|
||
en_US: Prompt
|
||
zh_Hans: 提示词
|
||
description:
|
||
en_US: The prompt of the agent
|
||
zh_Hans: 除非您了解消息结构,否则请只使用 system 单提示词
|
||
type: prompt-editor
|
||
required: true
|
||
default:
|
||
- role: system
|
||
content: "You are a helpful assistant."
|
||
- name: knowledge-bases
|
||
label:
|
||
en_US: Knowledge Bases
|
||
zh_Hans: 知识库
|
||
description:
|
||
en_US: Configure the knowledge bases to use for the agent, if not selected, the agent will directly use the LLM to reply
|
||
zh_Hans: 配置用于提升回复质量的知识库,若不选择,则直接使用大模型回复
|
||
type: knowledge-base-multi-selector
|
||
required: false
|
||
default: []
|
||
show_if:
|
||
field: __system.is_wizard
|
||
operator: neq
|
||
value: true
|
||
- name: box-session-id-template
|
||
label:
|
||
en_US: Sandbox Scope
|
||
zh_Hans: 沙箱作用域
|
||
zh_Hant: 沙箱作用域
|
||
ja_JP: サンドボックススコープ
|
||
vi_VN: Phạm vi Sandbox
|
||
th_TH: ขอบเขต Sandbox
|
||
es_ES: Alcance del Sandbox
|
||
ru_RU: Область песочницы
|
||
description:
|
||
en_US: Determines how sandbox environments are shared across messages.
|
||
zh_Hans: 决定沙箱环境在不同消息间的共享方式。
|
||
zh_Hant: 決定沙箱環境在不同訊息間的共享方式。
|
||
ja_JP: メッセージ間でサンドボックス環境を共有する方法を決定します。
|
||
vi_VN: Xác định cách chia sẻ môi trường sandbox giữa các tin nhắn.
|
||
th_TH: กำหนดวิธีแชร์สภาพแวดล้อม Sandbox ระหว่างข้อความ
|
||
es_ES: Determina cómo se comparten los entornos sandbox entre mensajes.
|
||
ru_RU: Определяет, как песочницы используются совместно между сообщениями.
|
||
disable_if:
|
||
field: __system.box_scope_editable
|
||
operator: eq
|
||
value: false
|
||
disabled_tooltip:
|
||
en_US: >-
|
||
Sandbox scope can't be changed: either the Box sandbox is disabled
|
||
or unavailable (enable it in config.yaml with box.enabled = true and
|
||
ensure the runtime is reachable), or this deployment pins all
|
||
pipelines to a fixed scope.
|
||
zh_Hans: "无法修改沙箱作用域:Box 沙箱已禁用或不可用(请在配置中启用 box.enabled = true 并确认运行时连接正常),或本部署已将所有流水线固定为统一作用域。"
|
||
zh_Hant: "無法修改沙箱作用域:Box 沙箱已停用或無法使用(請在設定中啟用 box.enabled = true 並確認執行時連線正常),或本部署已將所有流水線固定為統一作用域。"
|
||
ja_JP: "サンドボックススコープを変更できません:Box サンドボックスが無効/利用不可(設定で box.enabled = true にしてランタイム接続を確認)、またはこのデプロイがすべてのパイプラインを固定スコープに制限しています。"
|
||
vi_VN: "Không thể thay đổi phạm vi sandbox:Box sandbox bị tắt hoặc không khả dụng (bật box.enabled = true và đảm bảo runtime hoạt động), hoặc bản triển khai này cố định mọi pipeline về một phạm vi."
|
||
th_TH: "ไม่สามารถเปลี่ยนขอบเขต Sandbox:Box sandbox ถูกปิดหรือไม่พร้อมใช้งาน (เปิด box.enabled = true และตรวจสอบรันไทม์) หรือการ deploy นี้ล็อกทุก pipeline ไว้ที่ขอบเขตเดียว"
|
||
es_ES: "No se puede cambiar el alcance del sandbox: el sandbox de Box está desactivado o no disponible (actívelo con box.enabled = true y verifique el runtime), o este despliegue fija todas las pipelines a un alcance único."
|
||
ru_RU: "Невозможно изменить область песочницы: песочница Box отключена или недоступна (включите box.enabled = true и проверьте среду выполнения), либо это развёртывание фиксирует единую область для всех конвейеров."
|
||
type: select
|
||
required: false
|
||
default: "{launcher_type}_{launcher_id}"
|
||
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: По сообщению (изолированно)
|
||
show_if:
|
||
field: __system.is_wizard
|
||
operator: neq
|
||
value: true
|
||
- name: rerank-model
|
||
label:
|
||
en_US: Rerank Model
|
||
zh_Hans: 重排序模型
|
||
description:
|
||
en_US: Optional rerank model to improve retrieval quality by re-scoring retrieved chunks
|
||
zh_Hans: 可选的重排序模型,通过重新评分检索结果来提升检索质量
|
||
type: rerank-model-selector
|
||
required: false
|
||
default: ''
|
||
show_if:
|
||
field: knowledge-bases
|
||
operator: neq
|
||
value: []
|
||
- name: rerank-top-k
|
||
label:
|
||
en_US: Rerank Top K
|
||
zh_Hans: 重排序保留数量
|
||
description:
|
||
en_US: Number of top results to keep after reranking
|
||
zh_Hans: 重排序后保留的最相关结果数量
|
||
type: integer
|
||
required: false
|
||
default: 5
|
||
show_if:
|
||
field: rerank-model
|
||
operator: neq
|
||
value: ''
|
||
- name: dify-service-api
|
||
label:
|
||
en_US: Dify Service API
|
||
zh_Hans: Dify 服务 API
|
||
description:
|
||
en_US: Configure the Dify service API of the pipeline
|
||
zh_Hans: 配置 Dify 服务 API
|
||
config:
|
||
- name: base-url
|
||
label:
|
||
en_US: Base URL
|
||
zh_Hans: 基础 URL
|
||
type: string
|
||
required: true
|
||
options:
|
||
- name: 'https://api.dify.ai/v1'
|
||
label:
|
||
en_US: Dify Cloud
|
||
zh_Hans: Dify 云服务
|
||
default: 'https://api.dify.ai/v1'
|
||
- name: base-prompt
|
||
label:
|
||
en_US: Base PROMPT
|
||
zh_Hans: 基础提示词
|
||
description:
|
||
en_US: When Dify receives a message with empty input (only images), it will pass this default prompt into it.
|
||
zh_Hans: 当 Dify 接收到输入文字为空(仅图片)的消息时,传入该默认提示词
|
||
type: string
|
||
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."
|
||
- name: app-type
|
||
label:
|
||
en_US: App Type
|
||
zh_Hans: 应用类型
|
||
type: select
|
||
required: true
|
||
default: chat
|
||
options:
|
||
- name: chat
|
||
label:
|
||
en_US: Chat
|
||
zh_Hans: 聊天(包括Chatflow)
|
||
- 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: string
|
||
required: true
|
||
default: 'your-api-key'
|
||
- name: n8n-service-api
|
||
label:
|
||
en_US: n8n Workflow API
|
||
zh_Hans: n8n 工作流 API
|
||
description:
|
||
en_US: Configure the n8n workflow API of the pipeline
|
||
zh_Hans: 配置 n8n 工作流 API
|
||
config:
|
||
- name: webhook-url
|
||
label:
|
||
en_US: Webhook URL
|
||
zh_Hans: Webhook URL
|
||
description:
|
||
en_US: The webhook URL of the n8n workflow
|
||
zh_Hans: n8n 工作流的 webhook URL
|
||
type: string
|
||
required: true
|
||
default: 'http://your-n8n-webhook-url'
|
||
- name: auth-type
|
||
label:
|
||
en_US: Authentication Type
|
||
zh_Hans: 认证类型
|
||
description:
|
||
en_US: The authentication type for the webhook call
|
||
zh_Hans: webhook 调用的认证类型
|
||
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: 用户名
|
||
description:
|
||
en_US: The username for Basic Auth
|
||
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: 密码
|
||
description:
|
||
en_US: The password for Basic Auth
|
||
zh_Hans: 基本认证的密码
|
||
type: string
|
||
required: false
|
||
default: ''
|
||
show_if:
|
||
field: auth-type
|
||
operator: eq
|
||
value: 'basic'
|
||
- name: jwt-secret
|
||
label:
|
||
en_US: Secret
|
||
zh_Hans: 密钥
|
||
description:
|
||
en_US: The secret for JWT authentication
|
||
zh_Hans: JWT认证的密钥
|
||
type: string
|
||
required: false
|
||
default: ''
|
||
show_if:
|
||
field: auth-type
|
||
operator: eq
|
||
value: 'jwt'
|
||
- name: jwt-algorithm
|
||
label:
|
||
en_US: Algorithm
|
||
zh_Hans: 算法
|
||
description:
|
||
en_US: The algorithm for JWT authentication
|
||
zh_Hans: JWT认证的算法
|
||
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: 请求头名称
|
||
description:
|
||
en_US: The header name for Header Auth
|
||
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: 请求头值
|
||
description:
|
||
en_US: The header value for Header Auth
|
||
zh_Hans: 请求头认证的值
|
||
type: string
|
||
required: false
|
||
default: ''
|
||
show_if:
|
||
field: auth-type
|
||
operator: eq
|
||
value: 'header'
|
||
- name: timeout
|
||
label:
|
||
en_US: Timeout
|
||
zh_Hans: 超时时间
|
||
description:
|
||
en_US: The timeout in seconds for the webhook call
|
||
zh_Hans: webhook 调用的超时时间(秒)
|
||
type: integer
|
||
required: false
|
||
default: 120
|
||
- name: output-key
|
||
label:
|
||
en_US: Output Key
|
||
zh_Hans: 输出键名
|
||
description:
|
||
en_US: The key name of the output in the webhook response
|
||
zh_Hans: webhook 响应中输出内容的键名
|
||
type: string
|
||
required: false
|
||
default: 'response'
|
||
- name: coze-api
|
||
label:
|
||
en_US: coze API
|
||
zh_Hans: 扣子 API
|
||
description:
|
||
en_US: Configure the Coze API of the pipeline
|
||
zh_Hans: 配置Coze API
|
||
config:
|
||
- name: api-key
|
||
label:
|
||
en_US: API Key
|
||
zh_Hans: API 密钥
|
||
description:
|
||
en_US: The API key for the Coze server
|
||
zh_Hans: Coze服务器的 API 密钥
|
||
type: string
|
||
required: true
|
||
default: ''
|
||
- name: bot-id
|
||
label:
|
||
en_US: Bot ID
|
||
zh_Hans: 机器人 ID
|
||
description:
|
||
en_US: The ID of the bot to run
|
||
zh_Hans: 要运行的机器人 ID
|
||
type: string
|
||
required: true
|
||
default: ''
|
||
- name: api-base
|
||
label:
|
||
en_US: API Base URL
|
||
zh_Hans: API 基础 URL
|
||
description:
|
||
en_US: The base URL for the Coze API, please use https://api.coze.com for global Coze edition(coze.com).
|
||
zh_Hans: Coze API 的基础 URL,请使用 https://api.coze.com 用于全球 Coze 版(coze.com)
|
||
type: string
|
||
options:
|
||
- name: 'https://api.coze.cn'
|
||
label:
|
||
en_US: Coze China
|
||
zh_Hans: Coze 中国版
|
||
- name: 'https://api.coze.com'
|
||
label:
|
||
en_US: Coze Global
|
||
zh_Hans: Coze 全球版
|
||
default: "https://api.coze.cn"
|
||
- name: auto-save-history
|
||
label:
|
||
en_US: Auto Save History
|
||
zh_Hans: 自动保存历史
|
||
description:
|
||
en_US: Whether to automatically save conversation history
|
||
zh_Hans: 是否自动保存对话历史
|
||
type: boolean
|
||
default: true
|
||
- name: timeout
|
||
label:
|
||
en_US: Request Timeout
|
||
zh_Hans: 请求超时
|
||
description:
|
||
en_US: Timeout in seconds for API requests
|
||
zh_Hans: API 请求超时时间(秒)
|
||
type: number
|
||
default: 120
|
||
- name: tbox-app-api
|
||
label:
|
||
en_US: Tbox App API
|
||
zh_Hans: 蚂蚁百宝箱平台 API
|
||
description:
|
||
en_US: Configure the Tbox App API of the pipeline
|
||
zh_Hans: 配置蚂蚁百宝箱平台 API
|
||
config:
|
||
- name: api-key
|
||
label:
|
||
en_US: API Key
|
||
zh_Hans: API 密钥
|
||
type: string
|
||
required: true
|
||
default: ''
|
||
- name: app-id
|
||
label:
|
||
en_US: App ID
|
||
zh_Hans: 应用 ID
|
||
type: string
|
||
required: true
|
||
default: ''
|
||
- name: dashscope-app-api
|
||
label:
|
||
en_US: Aliyun Dashscope App API
|
||
zh_Hans: 阿里云百炼平台 API
|
||
description:
|
||
en_US: Configure the Aliyun Dashscope App API of the pipeline
|
||
zh_Hans: 配置阿里云百炼平台 API
|
||
config:
|
||
- 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: string
|
||
required: true
|
||
default: 'your-api-key'
|
||
- name: app-id
|
||
label:
|
||
en_US: App ID
|
||
zh_Hans: 应用 ID
|
||
type: string
|
||
required: true
|
||
default: 'your-app-id'
|
||
- name: references_quote
|
||
label:
|
||
en_US: References Quote
|
||
zh_Hans: 引用文本
|
||
description:
|
||
en_US: The text prompt when the references are included
|
||
zh_Hans: 包含引用资料时的文本提示
|
||
type: string
|
||
required: false
|
||
default: '参考资料来自:'
|
||
- name: langflow-api
|
||
label:
|
||
en_US: Langflow API
|
||
zh_Hans: Langflow API
|
||
description:
|
||
en_US: Configure the Langflow API of the pipeline, call the Langflow flow through the `Simplified Run Flow` interface
|
||
zh_Hans: 配置 Langflow API,通过 `Simplified Run Flow` 接口调用 Langflow 的流程
|
||
config:
|
||
- name: base-url
|
||
label:
|
||
en_US: Base URL
|
||
zh_Hans: 基础 URL
|
||
description:
|
||
en_US: The base URL of the Langflow server
|
||
zh_Hans: Langflow 服务器的基础 URL
|
||
type: string
|
||
required: true
|
||
default: 'http://localhost:7860'
|
||
- name: api-key
|
||
label:
|
||
en_US: API Key
|
||
zh_Hans: API 密钥
|
||
description:
|
||
en_US: The API key for the Langflow server
|
||
zh_Hans: Langflow 服务器的 API 密钥
|
||
type: string
|
||
required: true
|
||
default: 'your-api-key'
|
||
- name: flow-id
|
||
label:
|
||
en_US: Flow ID
|
||
zh_Hans: 流程 ID
|
||
description:
|
||
en_US: The ID of the flow to run
|
||
zh_Hans: 要运行的流程 ID
|
||
type: string
|
||
required: true
|
||
default: 'your-flow-id'
|
||
- name: input-type
|
||
label:
|
||
en_US: Input Type
|
||
zh_Hans: 输入类型
|
||
description:
|
||
en_US: The input type for the flow
|
||
zh_Hans: 流程的输入类型
|
||
type: string
|
||
required: false
|
||
default: 'chat'
|
||
- name: output-type
|
||
label:
|
||
en_US: Output Type
|
||
zh_Hans: 输出类型
|
||
description:
|
||
en_US: The output type for the flow
|
||
zh_Hans: 流程的输出类型
|
||
type: string
|
||
required: false
|
||
default: 'chat'
|
||
- name: tweaks
|
||
label:
|
||
en_US: Tweaks
|
||
zh_Hans: 调整参数
|
||
description:
|
||
en_US: Optional tweaks to apply to the flow
|
||
zh_Hans: 可选的流程调整参数
|
||
type: json
|
||
required: false
|
||
default: '{}'
|
||
- name: weknora-api
|
||
label:
|
||
en_US: WeKnora API
|
||
zh_Hans: WeKnora API
|
||
description:
|
||
en_US: Configure the WeKnora API of the pipeline
|
||
zh_Hans: 配置 WeKnora API
|
||
config:
|
||
- name: base-url
|
||
label:
|
||
en_US: Base URL
|
||
zh_Hans: 基础 URL
|
||
description:
|
||
en_US: The base URL of the WeKnora server (with /api/v1)
|
||
zh_Hans: WeKnora 服务器的基础 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: The API key for WeKnora, generated from WeKnora frontend Settings → API Keys
|
||
zh_Hans: WeKnora 的 API 密钥,从 WeKnora 前端 设置 → API Keys 生成
|
||
type: string
|
||
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: The Agent ID to use. Built-in agents include builtin-quick-answer, builtin-smart-reasoning, builtin-data-analyst
|
||
zh_Hans: 要使用的智能体 ID。内置智能体:builtin-quick-answer、builtin-smart-reasoning、builtin-data-analyst
|
||
type: string
|
||
required: true
|
||
default: 'builtin-smart-reasoning'
|
||
- name: knowledge-base-ids
|
||
label:
|
||
en_US: Knowledge Base IDs
|
||
zh_Hans: 知识库 ID 列表
|
||
description:
|
||
en_US: List of WeKnora knowledge base IDs to use (one per line)
|
||
zh_Hans: 要使用的 WeKnora 知识库 ID 列表(每行一个)
|
||
type: array
|
||
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
|
||
- name: timeout
|
||
label:
|
||
en_US: Timeout
|
||
zh_Hans: 超时时间
|
||
description:
|
||
en_US: Request timeout in seconds
|
||
zh_Hans: 请求超时时间(秒)
|
||
type: integer
|
||
required: false
|
||
default: 120
|
||
- name: base-prompt
|
||
label:
|
||
en_US: Base Prompt
|
||
zh_Hans: 基础提示词
|
||
description:
|
||
en_US: Default prompt when user message is empty (e.g. only images)
|
||
zh_Hans: 当用户消息为空(例如仅图片)时使用的默认提示词
|
||
type: string
|
||
required: false
|
||
default: '请回答用户的问题。'
|
||
- name: deerflow-api
|
||
label:
|
||
en_US: DeerFlow API
|
||
zh_Hans: DeerFlow API
|
||
description:
|
||
en_US: Configure the DeerFlow LangGraph API of the pipeline
|
||
zh_Hans: 配置 DeerFlow LangGraph API
|
||
config:
|
||
- name: api-base
|
||
label:
|
||
en_US: API Base URL
|
||
zh_Hans: API 基础 URL
|
||
description:
|
||
en_US: The base URL of the DeerFlow server (e.g. 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 not required)
|
||
zh_Hans: DeerFlow 的 API 密钥(如果不需要可留空)
|
||
type: string
|
||
required: false
|
||
default: ''
|
||
- name: auth-header
|
||
label:
|
||
en_US: Auth Header Name
|
||
zh_Hans: 鉴权请求头名称
|
||
description:
|
||
en_US: Custom auth header name. Leave empty to use "x-api-key"
|
||
zh_Hans: 自定义鉴权请求头名称,留空则使用 "x-api-key"
|
||
type: string
|
||
required: false
|
||
default: ''
|
||
- name: assistant-id
|
||
label:
|
||
en_US: Assistant ID
|
||
zh_Hans: 助手 ID
|
||
description:
|
||
en_US: The DeerFlow assistant/graph id (default lead_agent)
|
||
zh_Hans: DeerFlow 助手/图 ID(默认 lead_agent)
|
||
type: string
|
||
required: true
|
||
default: 'lead_agent'
|
||
- 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: ''
|
||
- 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
|
||
- 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
|
||
- 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
|