跳转到内容
RailWise KB已发布

视频教程:CLI 智能体配置与工作流编排

本教程配套文档演示 RAILWISE-CLI 四大智能体(测量、平差、监测、质检)的配置方法,以及多步骤工作流的编排技巧,帮助用户构建自动化监测数据处理流程。

复核 2026-07-09入门公开可引用RailWise 技术团队
learning-path

视频教程:CLI 智能体配置与工作流编排

Section titled “视频教程:CLI 智能体配置与工作流编排”

视频时长:约 18 分钟
难度:中级
前置要求:已完成 CLI 安装与首条命令执行(见 视频教程:CLI 安装与首条命令


本视频深入讲解 RAILWISE-CLI 的核心架构——多智能体系统。通过本教程,您将学会:

  1. 理解四大智能体的职责分工与协作方式
  2. 配置智能体参数以适配不同精度要求
  3. 编排多步骤工作流实现复杂数据处理自动化
  4. 使用条件判断和变量传递实现智能工作流
章节 时间点 内容
智能体概述 00:00 - 02:00 四大智能体介绍、架构原理
测量智能体配置 02:00 - 05:00 仪器品牌、精度等级、观测参数
平差智能体配置 05:00 - 07:30 平差方法、定权方案、精度评定
监测智能体配置 07:30 - 10:00 预警阈值、频率设置、通知渠道
质检智能体配置 10:00 - 12:00 检查规则、标准引用、异常处理
工作流编排 12:00 - 16:00 多步骤编排、条件分支、变量传递
实战案例 16:00 - 17:30 完整监测数据处理工作流演示
课后练习 17:30 - 18:00 练习任务布置

在开始本教程前,请确保:

  1. 已完成 CLI 安装与首条命令 教程
  2. 理解 YAML 基本语法(缩进、键值对、列表)
  3. 了解工程测量中的基本概念(测站、测回、平差、闭合差等)

步骤 1:智能体架构概述(00:00 - 02:00)

Section titled “步骤 1:智能体架构概述(00:00 - 02:00)”

视频画面:架构图展示,四大智能体关系图

RAILWISE-CLI 采用多智能体(Multi-Agent)架构,将复杂的监测数据处理流程分解为四个专业智能体:

┌─────────────────────────────────────────────────────────┐
│ RAILWISE-CLI 智能体架构 │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 测量智能体 │───→│ 平差智能体 │───→│ 监测智能体 │ │
│ │ Surveyor │ │ Adjuster │ │ Monitor │ │
│ │ │ │ │ │ │ │
│ │ • 数据导入 │ │ • 平差计算 │ │ • 变形分析 │ │
│ │ • 坐标转换 │ │ • 精度评定 │ │ • 预警判断 │ │
│ │ • 观测值提取 │ │ • 粗差探测 │ │ • 趋势预测 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │ │ │ │
│ └──────────────────┼──────────────────┘ │
│ ▼ │
│ ┌─────────────┐ │
│ │ 质检智能体 │ │
│ │ Inspector │ │
│ │ │ │
│ │ • 限差检查 │ │
│ │ • 规范符合性 │ │
│ │ • 数据完整性 │ │
│ └─────────────┘ │
│ │
└─────────────────────────────────────────────────────────┘

智能体协作流程

  1. 测量智能体导入原始数据,提取观测值
  2. 质检智能体检查数据质量,标记异常
  3. 平差智能体进行平差计算,输出成果坐标
  4. 监测智能体分析变形趋势,判断预警状态
  5. 质检智能体最终审核成果质量

[截图占位符:智能体架构关系图]


步骤 2:配置测量智能体(02:00 - 05:00)

Section titled “步骤 2:配置测量智能体(02:00 - 05:00)”

视频画面:配置文件编辑界面,展示各参数含义

编辑 .railwise/agents/surveyor.yaml

agent:
name: "surveyor"
version: "1.2.0"
description: "测量数据导入与处理智能体"
# 仪器配置
instruments:
supported_brands:
- "leica" # 徕卡
- "topcon" # 拓普康
- "sokkia" # 索佳
- "south" # 南方测绘
- "trimble" # 天宝
default_settings:
leica:
format: "gsi" # 原始数据格式
encoding: "utf-8" # 文件编码
angle_unit: "degree" # 角度单位
distance_unit: "meter" # 距离单位
temperature_unit: "celsius" # 温度单位
pressure_unit: "hpa" # 气压单位
# 观测参数
observation:
default_rounds: 3 # 默认测回数
max_rounds: 9 # 最大测回数
min_rounds: 1 # 最小测回数
face_change_limit: 30 # 半测回互差限差(秒)
round_diff_limit: 20 # 各测回互差限差(秒)
# 坐标系统
coordinate_systems:
default: "CGCS2000"
available:
- name: "CGCS2000"
epsg: 4490
projection: "高斯-克吕格投影"
central_meridian: 121.0 # 宁波地区中央子午线
- name: "宁波独立坐标系"
epsg: 0
custom: true
params:
central_meridian: 121.467
false_easting: 500000
false_northing: 0

关键配置项说明

配置项 说明 典型值
supported_brands 支持的仪器品牌 根据现场仪器选择
default_rounds 默认测回数 3-4(二等水准)
face_change_limit 半测回互差限差 20-40秒(视精度等级)
coordinate_systems 坐标系统定义 与项目一致

[截图占位符:测量智能体配置文件编辑界面]


步骤 3:配置平差智能体(05:00 - 07:30)

Section titled “步骤 3:配置平差智能体(05:00 - 07:30)”

视频画面:平差参数配置演示,不同平差方法对比

编辑 .railwise/agents/adjuster.yaml

agent:
name: "adjuster"
version: "1.2.0"
description: "平差计算与精度评定智能体"
# 平差方法
adjustment_methods:
default: "间接平差"
available:
- name: "间接平差"
code: "indirect"
description: "以观测值改正数为未知数,适用于大多数测量平差"
applicable: ["水准网", "导线网", "GNSS网", "综合网"]
- name: "条件平差"
code: "conditional"
description: "以条件方程为约束,适用于条件明确的网形"
applicable: ["闭合水准路线", "闭合导线", "附合导线"]
- name: "附有条件的间接平差"
code: "indirect_with_conditions"
description: "结合间接平差与条件平差,适用于复杂网形"
applicable: ["大型控制网", "变形监测网"]
# 定权方案
weight_schemes:
default: "按距离定权"
available:
- name: "按距离定权"
code: "by_distance"
formula: "P = 1/S" # S 为测段距离(km)
applicable: ["水准测量"]
- name: "按测回数定权"
code: "by_rounds"
formula: "P = n" # n 为测回数
applicable: ["角度测量"]
- name: "按精度定权"
code: "by_precision"
formula: "P = σ₀²/σ²" # σ₀ 为单位权中误差,σ 为观测值中误差
applicable: ["综合网平差"]
# 精度评定
precision:
unit_weight_error: 1.0 # 单位权中误差(mm)
confidence_level: 0.95 # 置信水平
relative_error_limit: 1/50000 # 相对误差限

平差方法选择指南

网形类型 推荐方法 理由
单一水准路线 条件平差 条件明确,计算简单
水准网 间接平差 未知数多,网形复杂
导线网 间接平差 适用于多边形导线
综合监测网 附有条件的间接平差 兼顾多种观测类型

[截图占位符:平差方法选择决策流程图]


步骤 4:配置监测智能体(07:30 - 10:00)

Section titled “步骤 4:配置监测智能体(07:30 - 10:00)”

视频画面:预警阈值设置界面,通知渠道配置

编辑 .railwise/agents/monitor.yaml

agent:
name: "monitor"
version: "1.2.0"
description: "变形监测分析与预警智能体"
# 预警阈值
alert_thresholds:
method: "规范法" # 规范法 / 统计法 / 综合法
# 规范法阈值(根据 GB 50497-2019 / GB 50911-2013)
by_standard:
settlement:
attention: 10.0 # 关注值(mm)
warning: 15.0 # 预警值(mm)
danger: 20.0 # 报警值(mm)
horizontal_displacement:
attention: 10.0
warning: 15.0
danger: 20.0
convergence:
attention: 10.0
warning: 15.0
danger: 20.0
tilt:
attention: 1/2000 # 倾斜率
warning: 1/1000
danger: 1/500
# 变化速率阈值
rate_thresholds:
settlement_rate:
attention: 2.0 # mm/天
warning: 3.0
danger: 5.0
horizontal_rate:
attention: 2.0
warning: 3.0
danger: 5.0
# 监测频率
monitoring_frequency:
normal: "1次/天"
attention: "2次/天"
warning: "4次/天"
danger: "实时"
# 通知配置
notifications:
channels:
- type: "sms"
enabled: true
recipients: ["138****5678", "139****1234"]
- type: "email"
enabled: true
recipients: ["engineer@railwise.cn", "manager@railwise.cn"]
- type: "wechat"
enabled: true
webhook: "https://qyapi.weixin.qq.com/cgi-bin/webhook/..."
- type: "dingtalk"
enabled: false
webhook: ""
# 趋势分析
trend_analysis:
enabled: true
methods:
- "线性回归"
- "移动平均"
- "指数平滑"
forecast_horizon: 72 # 预测未来 72 小时

预警等级说明

等级 颜色 判定标准 响应措施
正常 绿色 累计变形 < 关注值 按常规频率监测
关注 蓝色 关注值 ≤ 累计变形 < 预警值 加密监测频率
预警 黄色 预警值 ≤ 累计变形 < 报警值 加密监测,通知相关单位
报警 红色 累计变形 ≥ 报警值 实时监测,启动应急预案

[截图占位符:预警阈值配置界面与通知渠道设置]


步骤 5:配置质检智能体(10:00 - 12:00)

Section titled “步骤 5:配置质检智能体(10:00 - 12:00)”

视频画面:质检规则配置,检查清单展示

编辑 .railwise/agents/inspector.yaml

agent:
name: "inspector"
version: "1.2.0"
description: "数据质量检查与规范符合性审核智能体"
# 检查规则
inspection_rules:
# 限差检查
tolerance_check:
enabled: true
standards:
- "GB 50026-2020"
- "GB 50497-2019"
- "JGJ 8-2016"
checks:
- name: "闭合差检查"
description: "检查水准路线闭合差是否超限"
formula: "f_h ≤ ±40√L mm(二等水准)"
action_on_fail: "标记异常,提示复测"
- name: "半测回互差检查"
description: "检查同一测回内半测回互差"
formula: "Δ ≤ 30秒"
action_on_fail: "标记异常,提示重测"
- name: "各测回互差检查"
description: "检查各测回间互差"
formula: "Δ ≤ 20秒"
action_on_fail: "标记异常,提示增加测回数"
# 粗差探测
outlier_detection:
enabled: true
methods:
- name: "3σ准则"
description: "观测值残差大于3倍中误差视为粗差"
threshold: 3.0
- name: "Grubbs检验"
description: "Grubbs统计量检验"
significance_level: 0.05
- name: "Dixon检验"
description: "Dixon Q检验"
significance_level: 0.05
# 逻辑一致性检查
logical_consistency:
enabled: true
checks:
- name: "时间顺序检查"
description: "观测时间是否按顺序排列"
- name: "坐标合理性检查"
description: "坐标值是否在合理范围内"
- name: "变形趋势一致性"
description: "相邻测点变形趋势是否一致"
# 规范符合性检查
standard_compliance:
enabled: true
checks:
- name: "精度等级符合性"
description: "实测精度是否达到设计等级"
- name: "观测方法符合性"
description: "观测方法是否符合规范要求"
- name: "记录格式符合性"
description: "观测记录格式是否规范"
# 异常处理
exception_handling:
on_tolerance_fail:
action: "标记并警告"
auto_retry: false
on_outlier_detected:
action: "标记并提示复测"
auto_remove: false # 不自动删除,需人工确认
on_logic_error:
action: "标记并暂停"
require_confirmation: true

[截图占位符:质检规则配置界面与检查报告示例]


步骤 6:工作流编排实战(12:00 - 16:00)

Section titled “步骤 6:工作流编排实战(12:00 - 16:00)”

视频画面:工作流文件编写、条件分支、变量传递演示

name: "二等水准测量处理流程"
description: "从原始数据到平差成果的完整处理流程"
version: "1.0"
steps:
# 步骤 1:数据导入
- id: "step_1"
name: "数据导入"
agent: "surveyor"
action: "import"
input: "data/leveling/leveling_data.gsi"
params:
format: "gsi"
instrument: "leica_ls15"
output_var: "raw_data"
# 步骤 2:数据质检
- id: "step_2"
name: "数据质检"
agent: "inspector"
action: "check"
input_var: "raw_data"
params:
checks: ["闭合差", "粗差探测", "逻辑一致性"]
standard: "GB 50026-2020"
output_var: "inspection_result"
# 步骤 3:条件分支 - 质检通过则继续,否则停止
- id: "step_3"
name: "质检判断"
agent: "coordinator"
action: "condition"
condition: "{{inspection_result.passed}} == true"
then:
- id: "step_4"
name: "平差计算"
agent: "adjuster"
action: "adjust"
input_var: "raw_data"
params:
method: "间接平差"
weight_scheme: "按距离定权"
output_var: "adjusted_data"
- id: "step_5"
name: "精度评定"
agent: "adjuster"
action: "evaluate"
input_var: "adjusted_data"
output_var: "precision_report"
else:
- id: "step_6"
name: "异常处理"
agent: "inspector"
action: "report_issues"
input_var: "inspection_result"
output: "output/issues_report.md"
# 步骤 7:生成报告
- id: "step_7"
name: "生成报告"
agent: "surveyor"
action: "report"
input_var: "adjusted_data"
params:
template: "templates/leveling_report.md"
include_precision: true
output: "output/leveling_report.md"
condition: "{{inspection_result.passed}} == true"

高级工作流:自动化监测数据处理

Section titled “高级工作流:自动化监测数据处理”
name: "自动化监测数据处理工作流"
description: "全站仪自动化监测数据从采集到预警的完整流程"
version: "1.0"
# 工作流变量
variables:
project_id: "proj_rw_2025_001"
station_id: "TS-01"
measurement_rounds: 3
steps:
# 步骤 1:执行测量
- id: "measure"
name: "执行全站仪测量"
agent: "surveyor"
action: "execute"
params:
project_id: "{{project_id}}"
station_id: "{{station_id}}"
rounds: "{{measurement_rounds}}"
output_var: "measurement_data"
# 步骤 2:数据质检
- id: "inspect"
name: "测量数据质检"
agent: "inspector"
action: "check"
input_var: "measurement_data"
params:
checks: ["精度检查", "粗差探测", "基准稳定性"]
output_var: "quality_check"
# 步骤 3:坐标计算
- id: "calculate"
name: "坐标计算与转换"
agent: "surveyor"
action: "compute_coordinates"
input_var: "measurement_data"
params:
coordinate_system: "CGCS2000"
output_var: "coordinates"
condition: "{{quality_check.passed}} == true"
# 步骤 4:变形分析
- id: "analyze"
name: "变形分析与预警判断"
agent: "monitor"
action: "analyze"
input_var: "coordinates"
params:
compare_with: "initial_values"
alert_thresholds: "standard"
output_var: "analysis_result"
# 步骤 5:预警响应
- id: "alert"
name: "预警处理"
agent: "monitor"
action: "handle_alert"
input_var: "analysis_result"
params:
notification_channels: ["sms", "email", "wechat"]
condition: "{{analysis_result.max_alert_level}} != 'NORMAL'"
# 步骤 6:生成日报
- id: "report"
name: "生成监测日报"
agent: "surveyor"
action: "report"
input_var: "analysis_result"
params:
report_type: "daily"
template: "templates/monitoring_daily.md"
output: "output/daily_report_{{date}}.md"

工作流编排关键技巧

技巧 语法 用途
变量引用 {{variable_name}} 在步骤间传递数据
条件分支 condition: "{{var}} == value" 根据条件执行不同步骤
输出变量 output_var: "result" 将步骤结果存入变量
输入变量 input_var: "result" 读取上一步的变量
动态输出路径 output: "file_{{date}}.md" 生成带时间戳的文件名

[截图占位符:工作流编排可视化界面或代码编辑器]


步骤 7:实战案例演示(16:00 - 17:30)

Section titled “步骤 7:实战案例演示(16:00 - 17:30)”

视频画面:完整工作流执行录屏,从数据准备到报告生成

场景:某深基坑项目每日进行全站仪自动化监测,需要自动完成测量、质检、坐标计算、变形分析、预警判断和日报生成。

执行命令

Terminal window
# 执行自动化监测工作流
railwise run workflows/automated_monitoring.yaml \
--var project_id="proj_deep_excavation_001" \
--var station_id="TS-01" \
--var measurement_rounds=3

预期输出

[2025-06-15T08:00:00+08:00] INFO 开始执行工作流:自动化监测数据处理
[2025-06-15T08:00:05+08:00] INFO [measure] 执行全站仪测量 — 完成 3 测回,156 个测点
[2025-06-15T08:00:10+08:00] INFO [inspect] 数据质检 — 通过 154 点,2 点待复核
[2025-06-15T08:00:15+08:00] INFO [calculate] 坐标计算 — CGCS2000 转换完成
[2025-06-15T08:00:20+08:00] INFO [analyze] 变形分析 — 最大沉降 12.3mm(P-15),速率 0.5mm/天
[2025-06-15T08:00:20+08:00] WARN [analyze] 预警状态:P-15 达到黄色预警(15mm 预警值)
[2025-06-15T08:00:25+08:00] INFO [alert] 预警推送 — 短信/邮件/微信已发送
[2025-06-15T08:00:30+08:00] INFO [report] 日报生成 — 输出至 output/daily_report_20250615.md
[2025-06-15T08:00:30+08:00] INFO 工作流执行完成,耗时 30.5s

[截图占位符:工作流执行完成后的终端输出与生成的报告预览]


配置优先级(从高到低):

  1. 工作流步骤中的 params(最高优先级)
  2. 项目配置文件 .railwise/config.yaml
  3. 智能体配置文件 .railwise/agents/*.yaml
  4. 系统默认配置(最低优先级)
Terminal window
# 单步调试模式
railwise run workflow.yaml --step-by-step
# 详细日志模式
railwise run workflow.yaml --verbose --log-level debug
# 从指定步骤开始执行
railwise run workflow.yaml --from-step "calculate"
# 模拟执行(不实际运行)
railwise run workflow.yaml --dry-run

工作流变量分为三个作用域:

作用域 定义位置 访问范围
全局变量 工作流 variables 所有步骤
步骤变量 步骤 output_var 后续步骤
运行时变量 --var 命令行参数 所有步骤
# 步骤级错误处理
steps:
- name: "数据导入"
agent: "surveyor"
action: "import"
on_error:
action: "retry" # 重试 / 跳过 / 停止
max_retries: 3
retry_delay: 5 # 秒

Q1: 智能体配置修改后何时生效?

Section titled “Q1: 智能体配置修改后何时生效?”

:智能体配置文件在工作流执行时动态加载,修改后下次执行即可生效,无需重启 CLI。

Q2: 如何查看智能体的详细日志?

Section titled “Q2: 如何查看智能体的详细日志?”
Terminal window
# 查看指定智能体日志
railwise agent logs surveyor --follow
# 查看所有智能体日志
railwise agent logs --all --last 100

Q3: 工作流执行到一半失败了,如何恢复?

Section titled “Q3: 工作流执行到一半失败了,如何恢复?”
Terminal window
# 从失败步骤重新执行
railwise run workflow.yaml --resume
# 或从指定步骤开始
railwise run workflow.yaml --from-step "step_4"

Q4: 如何在工作流中使用自定义脚本?

Section titled “Q4: 如何在工作流中使用自定义脚本?”
steps:
- name: "自定义处理"
agent: "surveyor"
action: "custom_script"
params:
script: "scripts/my_custom_processing.py"
interpreter: "python3"
Terminal window
# 后台并行执行多个工作流
railwise run workflow1.yaml --background
railwise run workflow2.yaml --background
# 查看后台任务
railwise jobs list

修改 .railwise/agents/monitor.yaml 中的预警阈值,将沉降报警值从 20mm 调整为 15mm,重新执行工作流观察预警变化。

.railwise/agents/inspector.yaml 中添加一条自定义规则:检查观测时间是否在白天(6:00-18:00)进行。

编写一个工作流,依次处理 3 个不同项目的监测数据,每个项目使用不同的预警阈值。

编写一个工作流,根据天气条件(从外部 API 获取)决定是否执行外业测量步骤:雨天自动跳过外业步骤,使用上次数据。



  • 视频文件video-cli-02-agents-workflow.mp4
  • 配套配置文件agents-config-sample.zip
  • 讲义下载handout-cli-02.pdf
  • 字幕文件video-cli-02-agents-workflow.srt


本文档最后更新于 2025-06-15 | 版本 v1.0.0 | 宁波睿威工程技术有限公司 版权所有