Apache SeaTunnel AI CLI:用自然语言生成、校验并一键执行数据管道配置 📅 发布时间:2026/9/18 9:25:11 👁 浏览次数: Apache SeaTunnel AI CLI用自然语言生成、校验并一键执行数据管道配置【免费下载链接】seatunnelSeaTunnel is a multimodal, high-performance, distributed, massive data integration tool.项目地址: https://gitcode.com/GitHub_Trending/se/seatunnelSeaTunnel AI CLI 是内置于 Apache SeaTunnel 主仓库seatunnel-cli模块的命令行智能体工具用中文或英文描述一个数据同步任务它就会生成经过多层校验、可直接投产的 HOCON 配置文件并支持自动修复与一键执行。本文基于 AI CLI 概览文档结合配套的快速开始、设计思路、模型基准测试以及seatunnel-cli模块源码系统讲解它的核心能力、多智能体架构、LLM 提供商配置、校验修复链路、常用命令与选型建议读完即可上手生成你的第一条数据管道。什么是 SeaTunnel AI CLISeaTunnel AI CLI 的目标是把写 SeaTunnel 配置这件事从手写 HOCON 变成一句话描述。它接收中英文自然语言输入输出结构完整的 HOCON 配置并内置自动校验、错误修复与一键执行能力。官方概览中给出的典型交互如下 SeaTunnel 把 MySQL 的 users 表同步到 S3Parquet 格式 ⚙️ 正在生成 SeaTunnel 配置... ✅ 校验配置第 1 轮... 已生成 SeaTunnel 配置 配置已保存至: .data/last_job.confAI CLI 以seatunnel-cli模块的形式内置在 SeaTunnel 主仓库中随标准发行版一起打包。启动方式有两种通过发行版的bin/seatunnel-ai.sh启动SEATUNNEL_HOME自动指向发行版根目录首次运行自动安装 Python 依赖或从源码通过 pip 安装后直接使用seatunnel命令。核心能力一览根据官方文档AI CLI 的核心能力包括自然语言生成配置—— 中英文输入输出完整 HOCON 配置多 LLM 提供商—— AWS Bedrock含通过bedrock-mantle端点接入的 OpenAI 系模型、Anthropic API、OpenAI 及兼容 API、OrcaRouter AI 网关多智能体流水线—— Planner → 配置生成 → 校验 → 自动修复最多 3 轮纠错连接器知识库—— 150 连接器的完整选项规则与取值约束来自运行中引擎或内置元数据校验与修复—— 本地检查、引擎--check/dry-run/check或/run失败时由 LLM 自动诊断修复会话与记忆—— 多轮对话细化配置、会话持久化、连接信息记忆绝不存储凭证。以下各节逐项展开这些能力并给出源码级佐证与可复制的操作步骤。为什么设计成多智能体 分层校验流水线单次 LLM 调用无法可靠处理的问题SeaTunnel 配置生成是一个领域 DSL 问题。官方设计文档明确列出了几类单次生成无法可靠处理的失败模式150 连接器、每个 20–50 个选项没有任何模型对每个选项名和类型有完整、最新的知识条件选项依赖比如 text 格式专属的选项出现在 PARQUET 格式的配置里会导致运行时错误DAG 接线语义plugin_output/plugin_input标签必须在 source/transform/sink 块之间精确配对模式推断CDC 源必须是 STREAMING 模式有界源不应携带流式专属选项。因此 CLI 用权威连接器元数据为模型接地对每一份候选配置做校验并用真实报错驱动修复。多智能体流水线的分工从源码 agents.py 的模块注释可以看到完整的智能体分工PlannerAgent意图分析与澄清、ConfigAgent生成 HOCON、ValidatorAgent语法与语义校验、DryRunValidator调用seatunnel.sh --check或 REST API 做引擎级校验、Orchestrator以最多 3 轮纠错循环协调各智能体。官方文档给出的流水线如下用户输入自然语言 │ ▼ ┌─────────────────┐ ┌──────────────────────┐ │ Planner Agent │───▶│ 连接器知识库工具 │ │ 意图识别 │◀───│ │ │ 必要时追问 │ └──────────────────────┘ └────────┬────────┘ │ 结构化计划 ▼ ┌─────────────────┐ │ Config Agent │ 生成 HOCON 配置 └────────┬────────┘ ▼ ┌─────────────────┐ ┌──────────────────────┐ │ Validator Agent │───▶│ 本地校验 │ │ │ │ 引擎 --check │ └────────┬────────┘ └──────────────────────┘ │ 通过 ── 是 ─▶ 输出并自动保存 │ 否最多 3 轮 ▼ ┌─────────────────┐ │ Fix Agent │ 修正错误重新校验 └─────────────────┘ 后续 /check 或 /run 失败时 ▼ ┌─────────────────┐ │ Repair Agent │ 诊断真实引擎/运行时报错修补配置 └─────────────────┘各智能体的职责边界见 agents.py 中的系统提示词Planner负责意图分类新建管道 PLAN / 提问 CHAT / 错误诊断选择连接器只在没有合理默认值时才通过ask_user工具向用户追问。系统提示词内置了默认假设parallelism 默认 2、job.mode从上下文推断CDC/Kafka → STREAMING否则 BATCH、端口用标准默认值MySQL 3306、PG 5432、Kafka 9092 等、主机优先用记忆中的值否则 localhostConfig Agent基于注入 prompt 的连接器元数据编写 HOCON且被强制约束绝不发明选项名只用元数据中的键Validator结合确定性本地检查与 LLM 语义审查Fix/Repair Agent接收真实错误文本——生成阶段的校验结果或/check、/run之后的真实引擎堆栈——在原配置上修补而不是从头重新生成。Planner 使用的工具集在 agents.py 中TOOLS定义了 5 个供 LLM 调用的函数构成规划阶段的能力边界工具作用list_connectors按 source/sink/transform 分类列出全部可用连接器get_connector_info获取单个连接器的完整参数与示例必须指定connector_type因为同名插件作为 source/sink/transform 时选项不同route_connectors根据用户自然语言关键词路由到最相关的连接器如 mysql →Jdbc、MySQL-CDCvalidate_config对 HOCON 配置做语法与必填项校验ask_user请求缺失的关键信息连接信息、表名、数据格式等连接器知识库让模型接地而不是背题两级解析保证选项知识准确官方设计文档说明了连接器知识库的两级解析设计无需人工维护 prompt 文本运行时 API运行中 SeaTunnel 引擎的 option-rules 接口始终最新内置元数据connector_metadata.json通过反射从引擎导出并随 CLI 打包包含 source/sink/transform 的必填与可选选项、条件选项组和取值约束。源码 connectors.py 印证了这套优先级链内存缓存 → 实时 API → 磁盘缓存。实时 API 默认指向http://localhost:5801可用SEATUNNEL_API_BASE环境变量覆盖调用GET /option-rules?typesourcepluginFakeSource这类端点引擎在线时抓到的响应会写入磁盘缓存供离线复用。从源码注释看connector_metadata.json是在 CI 构建阶段由SeaTunnelMetadataExporter通过 Java 运行时反射生成的与引擎/Web 走同一套PluginDiscovery factory.optionRule()逻辑因此离线但 100% 准确。Prompt 按需动态组装Prompt 并非一次性塞入全部连接器知识而是按请求动态组装只注入 Planner 选中的连接器元数据条件选项按触发条件显式分组如仅当format text时包含——这是对抗模型编造选项、误放选项最有效的单项措施。三层生成策略在连接器元数据之上叠加三层生成策略见 skills 与 golden_examples 目录Skill 场景手册8 个剧本化技能——批同步batch_sync、CDC 实时cdc_realtime、条件路由conditional_routing、跨库cross_database、数据质量data_quality、文件 ETLfile_etl、多管道multi_pipeline、transform 链transform_chain每个 Skill 都带有触发关键词、领域知识、标准操作流程SOP和约束规则黄金样例4 个已验证的组合配置模板——fake_source_console、jdbc_console、kafka_clickhouse、mysql_cdc_starrocks作为结构的权威参考连接器元数据权威选项规则。例如 batch_sync.md 明确规定批模式使用job.mode BATCH、并行度默认 2、凭证必须使用${ENV_VAR}占位、plugin_output/plugin_input标签必须配对、不得添加批模式不需要的checkpoint.interval。而 jdbc_console.md 给出了 Jdbc 源到 Console 宿的可直接套用的 HOCON 模板。校验管道三层逐级递进真实报错驱动修复官方设计文档给出了校验管道的三层结构阶段方式能抓住什么1. 本地校验HOCON 语法、结构、必填项对照元数据、路由标签配对、未解析的${VAR}占位符字段级豁免file_name_expression中的${now}等引擎模板变量不误报、安全检查语法错误、缺失/未知选项、接线错误2. 引擎 dry-runseatunnel.sh --check/--dry-run static—— 引擎的真实解析路径插件可加载性、选项类型、未知 key、DAG 拓扑3. 真实执行/run走 REST API 或seatunnel.sh一切运行时问题连接、schema、CDC 前置条件本地校验的实现细节validate_hocon见 agents.py是本地校验的核心其检查项可从源码逐一印证结构检查缺失env块告警、缺失source/sink块报错、花括号配对检查HOCON 语法解析使用pyhocon的ConfigFactory.parse_string必填项校验通过_extract_connector_blocks_raw用花括号计数从原始文本提取每个连接器块可正确处理同名连接器重复出现、pyhocon会合并的情况再对照元数据validate_connector_options检查缺失必填项条件选项匹配检查_check_conditional_mismatches如果配置里出现了某个条件选项但其触发条件如format text并未满足会直接报错——这类错误正是运行时类型不匹配的根源路由标签配对_validate_routing_pairsplugin_output/plugin_input标签的重复输出、悬空输入报错与孤立输出告警STREAMING 检查job.mode STREAMING时要求设置env.checkpoint.interval安全与占位符检查空字符串值告警检测硬编码密码password xxx而非${...}并告警未解析的${ENV_VAR}环境变量会报错对file_name_expression中的${now}、${uuid}、${transactionId}和partition_dir_expression中的${k0}${v0}这类引擎模板变量做字段级豁免避免误报。引擎级 dry-run 的三阶段实现dry_run_config见 agents.py实现三阶段校验Phase 1 本地校验validate_hocon→Phase 2 引擎--check定位$SEATUNNEL_HOME/bin/seatunnel.sh写入临时文件后执行sh seatunnel.sh --check --config tmp30 秒超时→Phase 3 REST API 校验引擎在线时走submit-job端点做尽力而为的格式验证。引擎不在线时相应阶段自动跳过不影响前面阶段的结果汇总。设计原则官方文档总结了四条贯穿始终的设计原则接地不轻信prompt 里每一条连接器知识都来自引擎元数据不依赖模型记忆确定性校验LLM 修复结论由解析器和引擎给出LLM 只负责生成与修复从不担任裁判真实报错是最好的提示词修复 Agent 接收实际校验输出和堆栈。实测证明结构化、具体的错误信息比原始噪声的修复成功率高得多默认安全生成的配置对所有凭证使用${ENV_VAR}占位会话存储脱敏/remember拒绝敏感值。值得一提的是凭证占位不只存在于提示词约束中源码层面也有兜底cli.py中的_replace_creds_with_placeholders会用正则识别password、secret_key、access_key、api_key、token等字段并替换为${_CRED_N_}占位符在校验阶段临时隐藏真实值校验完成后再恢复。安装与 LLM 提供商配置安装方式方式一从 SeaTunnel 发行版启动推荐Shell 包装脚本bin/seatunnel-ai.sh首次运行时会自动安装 Python 依赖# 首次运行 —— 自动安装依赖并进入交互式初始化 bin/seatunnel-ai.sh --init # 初始化完成后直接启动 bin/seatunnel-ai.shSEATUNNEL_HOME会自动指向发行版根目录无需手动配置。方式二从源码安装cd seatunnel-cli bash setup.sh # 安装全部提供商依赖 开发工具 seatunnel --init # 交互式配置提供商也可按需手动安装见 seatunnel-cli/README.mdpip install -e .[bedrock] # AWS Bedrock pip install -e .[anthropic] # Anthropic API pip install -e .[openai] # OpenAI API / OrcaRouter pip install -e .[all] # 全部提供商 pip install -e .[dev] # 开发模式全部提供商 pytest、ruff前置条件Python 3.10推荐 3.11 或 3.12macOS、Linux 或 Windows WSL至少一种 LLM 提供商凭证见下文可选SeaTunnel 安装目录用于引擎级校验/check与作业执行/run。四类 LLM 提供商配置方式 AAWS Bedrock默认export AI_PROVIDERbedrock export AWS_REGIONus-east-1凭证使用 AWS profile、环境变量或 IAM 角色均可aws configure/AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY/ EC2 与 ECS 上的 IAM 角色。模型可用ANTHROPIC_MODEL覆盖如us.anthropic.claude-sonnet-4-20250514-v1:0轻量任务如槽位检查用ANTHROPIC_SMALL_FAST_MODEL指定快模型。从源码看部分新版 Claude 模型会拒绝temperature参数此时提供商自动去掉该参数重试并在会话内记住该模型。方式 A2bedrock-mantleBedrock 上的 OpenAI 系模型Bedrock 上的部分 OpenAI 模型如openai.gpt-5.6-terra、openai.gpt-5.6-sol不在基础模型目录中只支持专用bedrock-mantle端点上的 OpenAIResponses API——常规bedrockConverse API和openaiChat Completions提供商都无法调用它们# 1. 安装提供商依赖openai SDK 2.45 AWS token 生成器 pip install -e .[bedrock-mantle] # 2. 配置——只需 AWS 凭证不需要 OpenAI 账号或 API key export AI_PROVIDERbedrock-mantle export AWS_REGIONus-east-1 # us-east-1 / us-east-2 / us-west-2 export OPENAI_MODELopenai.gpt-5.6-terra # 不设置时的默认值 # export OPENAI_SMALL_FAST_MODELopenai.gpt-5.6-terra # 3. 正常生成 seatunnel 把 MySQL 的 users 表同步到 S3Parquet 格式该提供商的契约要点官方文档端点https://bedrock-mantle.{region}.api.aws/openai/v1——这类模型要求的专属openai/v1路径通用的v1Responses 路径会拒绝这些模型认证通过aws-bedrock-token-generator从 AWS 凭证自动派生短期 bearer token每 30 分钟自动轮换不在任何地方存储长期密钥数据留存所有请求携带storefalseBedrock 不会在服务端留存提示词和生成的配置服务默认行为是保留 30 天参数这类模型不接受temperature提供商不会发送该参数配置的 temperature 值不会生效错误处理截断incomplete、失败和拒答的响应会抛出显式错误而不是伪装成正常结果返回。方式 BAnthropic APIexport AI_PROVIDERanthropic export ANTHROPIC_API_KEYsk-ant-...可选模型覆盖ANTHROPIC_MODEL默认claude-sonnet-4-20250514与ANTHROPIC_SMALL_FAST_MODEL默认claude-haiku-4-5-20251001。该提供商保留 Claude thinking 块thinking、signature、redacted_thinking用于多轮历史回放。方式 COpenAI 或兼容 APIexport AI_PROVIDERopenai export OPENAI_API_KEYsk-... # export OPENAI_BASE_URLhttps://... # Azure OpenAI、DeepSeek、本地 vLLM 等可选OPENAI_MODEL、OPENAI_SMALL_FAST_MODEL、OPENAI_ECHO_REASONING_CONTENTtrue兼容需要回放 reasoning_content 的推理模型。方式 DOrcaRouter AI 网关OrcaRouter 是一个 OpenAI 兼容的 AI 网关在单个端点https://api.orcarouter.ai/v1之后暴露众多模型——Claude、GPT、Gemini、DeepSeek、Qwen 等。模型 ID 使用provider/model命名空间特殊的orcarouter/auto模型会自动为每个请求选择最佳模型# 需要 openai 包复用 .[openai] extra pip install -e .[openai] export AI_PROVIDERorcarouter export ORCAROUTER_API_KEYorc_... # export ORCAROUTER_MODELdeepseek/deepseek-v4-pro # 可选覆盖 # export ORCAROUTER_SMALL_FAST_MODELorcarouter/auto # 可选覆盖 # export ORCAROUTER_ECHO_REASONING_CONTENTtrue # 可选回传 reasoning_content seatunnel Sync MySQL users table to S3 Parquet该提供商使用 OpenAI Chat Completions 协议因此完整支持 CLI 内部的工具调用循环规划期间的连接器查询、流式输出、多轮会话以及兼容推理模型的 reasoning_content 回放。安全底线API 密钥只从环境变量读取——绝不写入任何配置文件。seatunnel --init交互式初始化时会明确展示这一安全声明config.json只存提供商名、模型 ID 和非敏感设置。生成第一条管道单发模式seatunnel Sync MySQL users table to S3 Parquet seatunnel 从 Kafka 读取订单数据写入 ClickHouse -o my_job.conf不指定-o时配置自动保存到.data/last_job.conf与 CLI 同目录。交互模式直接运行seatunnel进入交互终端 SeaTunnel 把 PostgreSQL 的 orders 表同步到 Doris 已生成 SeaTunnel 配置 配置已保存至: .data/last_job.conf SeaTunnel 加个过滤只保留 amount 100 的订单 已生成 SeaTunnel 配置已更新 SeaTunnel /check [1] 本地校验: PASS [2] 引擎 --check: PASS Dry-run 通过 —— 配置可以执行。 SeaTunnel /run 作业已提交: 1234567890 (orders-sync) 状态: FINISHED常用命令命令说明/check校验最近生成的配置失败时自动诊断修复/run通过 REST API 或seatunnel.sh执行失败时自动修复/connectors列出可用的 source、sink 和 transform/remember 内容记住非敏感信息主机、端口、库名等/sessions、/resume查看和恢复历史会话从 cli.py 的欢迎页可以看出完整命令面还包含/save path保存到自定义路径、/config查看/切换 LLM 提供商、/new开启新会话、/memory查看已记忆事实、/forget id|--all删除记忆条目、/clear清空对话历史、/help、/quit。会话与记忆的持久化目录由get_data_dir()提供会话自动生成摘要便于resume后快速定位。提问技巧官方快速开始给出三条实用建议在描述里带上连接信息主机、端口、库名、表名生成的配置可以直接运行而不是一堆占位符明确批处理还是实时一次性全量拷贝 vs 持续捕获变更——这决定 BATCH/STREAMING 模式和是否选用 CDC 连接器凭证默认占位生成的配置用${MYSQL_PASSWORD}这类环境变量引用密码/run前先 export。生成的配置长什么样以仓库自带的 v2.batch.config.template 为参考AI CLI 产出的 HOCON 结构与其一致envsourcetransformsink区别在于选项由元数据驱动填充。批同步 Skill 的标准模式为env { parallelism 并行度默认 2 job.mode BATCH } source { SourceConnector { source_options plugin_output routing_label } } sink { SinkConnector { sink_options plugin_input routing_label } }会话、记忆与安全设计多轮会话中/remember存储非敏感连接信息主机、端口、库名后续生成会优先使用记忆中的值而非 localhost 占位。源码层面cli.py的记忆分类逻辑会把包含host、port、jdbc、:3306、:5432等信息归类为connection类型包含parallelism、format、语言偏好等的归类为preference其余为project。凭证是硬性禁区/remember会拒绝包含密码、API key、token 等内容交互式初始化同样声明API keys 永不落盘。会话历史在退出时自动保存下次启动自动恢复最近会话记忆条目过多时还会触发自动压缩。模型基准测试用数据说话不靠假设方法论与判定门官方基准测试包含 100 个任务——20 个简单单源单宿、45 个中等类型映射、CDC、transform 链、多表、35 个复杂多源 DAG、扇出、条件路由覆盖 12 个 ETL 场景类别含 10 个中文任务和 18 个针对已知 LLM 错误模式的规则探针条件选项误用、BATCH/STREAMING 推断、路由标签接线。判定门与 CLI 自身的 check → dry-run → run 管道一一对应判定门判定方式能抓住什么L1 静态HOCON 解析 连接器元数据 断言语法错误、连接器用错、缺选项L3 真实执行在官方apache/seatunnel镜像里对真实 MySQL/PostgreSQL/Kafka/ClickHouse/Elasticsearch 运行作业批任务看退出码流任务看 60 秒健康存活一切看着对但跑不通的问题修复循环为判定失败后把失败层的真实报错喂给修复 Agent最多 3 轮所有判定均为确定性——没有LLM 当裁判。核心发现静态排名在真实执行下反转以下数据于 2026 年 7 月实测被测对象为 seatunnel-cli v0.1.0commit59ada4ec0模型由 AWS Bedrock 提供。模型与 CLI 都在演进数字是时间快照。模型静态门L1真实执行L1L3Claude Opus 4.889%第 385%第 1GPT-5.6 Sol90%第 281%第 2GPT-5.6 Terra93%第 174%第 3静态冠军写出的配置看着对但运行时失败最多静态→真实衰减 -20 个百分点静态第三的模型写出的配置真的能跑仅 -6pp。看着对和能跑是两种不同的模型能力——这正是基准必须真实执行配置的原因。静态门完整排名7 模型模型通过率≤5 轮修复首次通过修复救回GPT-5.6 Terra93%79%14GPT-5.6 Sol90%80%10Claude Opus 4.889%87%2Claude Sonnet 582%78%4Claude Fable 580%73%7Qwen3-Coder-Next67%53%14DeepSeek V3.258%58%0模型行为画像与选型指南生成能力与修复能力是两个独立维度一次写对型Anthropic 系Opus 4.8 首次通过率全场最高静态 87% / 真实 77%静态→真实衰减最小但修复贡献极低2迭代修复型GPT-5.6 Terra首过平平但修复能力全场最强——真实运行时失败修回 48%总分从 55% 爬到 74%初稿看着对但跑不通的风险最大修复失能型DeepSeek V3.2100 个任务中修复成功次数为零对内建自动修复循环的产品等于砍掉了一半机制。场景推荐理由交互式使用用户在等GPT-5.6 Sol / Terra快25–58 秒/任务综合准确率高无人值守 / 批量生成Claude Opus 4.8首次通过率最高产出最可能免修改直接运行预算敏感的回归测试Qwen3-Coder-Next成本最低档适合冒烟不适合生产生成自动修复流程中避免使用DeepSeek V3.2实测修复成功率为零已知弱场景所有模型13 个任务在前三名模型上全部失败。如果管道属于以下形态生产使用前请人工复核生成的配置场景失败根因Doris / StarRocks 目标端连接器选项知识缺失fenodes、load 端口、save modePostgreSQL-CDC前置条件复制槽、publication未在配置中体现条件路由一个源按谓词拆分到多个目标并行 SQL transform 下的plugin_output/plugin_input接线宽 DAG5 块、混合 transform标签配对与块组织错误这些聚类是工程改进目标而非永久限制正在通过连接器元数据注入和黄金样例覆盖逐项解决。实测把真实引擎报错喂回修复 Agent可挽回 47% 的运行时失败同一个模型修复结构化校验错误的成功率约为修复原始 Java 堆栈的 2 倍——证明修复循环下一步最有杠杆的改进是结构化错误解析。与其它 AI 工具的关系AI CLI 是内置于运行时的工具。外部配套工具维护在apache/seatunnel-tools仓库中本文档站内对应页面为SeaTunnel SkillClaude 集成IDE 级辅助MCP 服务LLM 编程式访问 SeaTunnel 资源x2seatunnel配置转换。进一步阅读快速开始安装、配置 LLM 提供商、生成第一条管道的完整步骤设计思路多智能体架构与校验管道的设计细节模型基准测试7 个大模型的实测准确率、选型建议与已知弱场景源码入口seatunnel-cli/seatunnel_cli/cli.py交互终端与命令、agents.py多智能体与校验、connectors.py连接器知识库、llm_provider.py提供商抽象、memory.py会话与记忆场景手册与样例skills、golden_examples基准测试工程位于 seatunnel-cli/benchmark可用./benchmark/run_benchmark.sh --provider openai --model model一键复现。【免费下载链接】seatunnelSeaTunnel is a multimodal, high-performance, distributed, massive data integration tool.项目地址: https://gitcode.com/GitHub_Trending/se/seatunnel创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考