视频教程:CLI 智能体配置与工作流编排
本教程配套文档演示 RAILWISE-CLI 四大智能体(测量、平差、监测、质检)的配置方法,以及多步骤工作流的编排技巧,帮助用户构建自动化监测数据处理流程。
视频教程:CLI 智能体配置与工作流编排
Section titled “视频教程:CLI 智能体配置与工作流编排”视频时长:约 18 分钟
难度:中级
前置要求:已完成 CLI 安装与首条命令执行(见 视频教程:CLI 安装与首条命令)
本视频深入讲解 RAILWISE-CLI 的核心架构——多智能体系统。通过本教程,您将学会:
- 理解四大智能体的职责分工与协作方式
- 配置智能体参数以适配不同精度要求
- 编排多步骤工作流实现复杂数据处理自动化
- 使用条件判断和变量传递实现智能工作流
视频内容结构
Section titled “视频内容结构”| 章节 | 时间点 | 内容 |
|---|---|---|
| 智能体概述 | 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 | 练习任务布置 |
在开始本教程前,请确保:
- 已完成 CLI 安装与首条命令 教程
- 理解 YAML 基本语法(缩进、键值对、列表)
- 了解工程测量中的基本概念(测站、测回、平差、闭合差等)
步骤 1:智能体架构概述(00:00 - 02:00)
Section titled “步骤 1:智能体架构概述(00:00 - 02:00)”视频画面:架构图展示,四大智能体关系图
RAILWISE-CLI 采用多智能体(Multi-Agent)架构,将复杂的监测数据处理流程分解为四个专业智能体:
┌─────────────────────────────────────────────────────────┐│ RAILWISE-CLI 智能体架构 │├─────────────────────────────────────────────────────────┤│ ││ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ││ │ 测量智能体 │───→│ 平差智能体 │───→│ 监测智能体 │ ││ │ Surveyor │ │ Adjuster │ │ Monitor │ ││ │ │ │ │ │ │ ││ │ • 数据导入 │ │ • 平差计算 │ │ • 变形分析 │ ││ │ • 坐标转换 │ │ • 精度评定 │ │ • 预警判断 │ ││ │ • 观测值提取 │ │ • 粗差探测 │ │ • 趋势预测 │ ││ └─────────────┘ └─────────────┘ └─────────────┘ ││ │ │ │ ││ └──────────────────┼──────────────────┘ ││ ▼ ││ ┌─────────────┐ ││ │ 质检智能体 │ ││ │ Inspector │ ││ │ │ ││ │ • 限差检查 │ ││ │ • 规范符合性 │ ││ │ • 数据完整性 │ ││ └─────────────┘ ││ │└─────────────────────────────────────────────────────────┘智能体协作流程:
- 测量智能体导入原始数据,提取观测值
- 质检智能体检查数据质量,标记异常
- 平差智能体进行平差计算,输出成果坐标
- 监测智能体分析变形趋势,判断预警状态
- 质检智能体最终审核成果质量
[截图占位符:智能体架构关系图]
步骤 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)”视频画面:工作流文件编写、条件分支、变量传递演示
基础工作流:水准测量处理
Section titled “基础工作流:水准测量处理”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)”视频画面:完整工作流执行录屏,从数据准备到报告生成
案例:深基坑监测数据处理
Section titled “案例:深基坑监测数据处理”场景:某深基坑项目每日进行全站仪自动化监测,需要自动完成测量、质检、坐标计算、变形分析、预警判断和日报生成。
执行命令:
# 执行自动化监测工作流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[截图占位符:工作流执行完成后的终端输出与生成的报告预览]
关键操作要点
Section titled “关键操作要点”要点 1:智能体配置优先级
Section titled “要点 1:智能体配置优先级”配置优先级(从高到低):
- 工作流步骤中的
params(最高优先级) - 项目配置文件
.railwise/config.yaml - 智能体配置文件
.railwise/agents/*.yaml - 系统默认配置(最低优先级)
要点 2:工作流调试技巧
Section titled “要点 2:工作流调试技巧”# 单步调试模式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要点 3:变量作用域
Section titled “要点 3:变量作用域”工作流变量分为三个作用域:
| 作用域 | 定义位置 | 访问范围 |
|---|---|---|
| 全局变量 | 工作流 variables 段 |
所有步骤 |
| 步骤变量 | 步骤 output_var |
后续步骤 |
| 运行时变量 | --var 命令行参数 |
所有步骤 |
要点 4:错误处理策略
Section titled “要点 4:错误处理策略”# 步骤级错误处理steps: - name: "数据导入" agent: "surveyor" action: "import" on_error: action: "retry" # 重试 / 跳过 / 停止 max_retries: 3 retry_delay: 5 # 秒常见问题(FAQ)
Section titled “常见问题(FAQ)”Q1: 智能体配置修改后何时生效?
Section titled “Q1: 智能体配置修改后何时生效?”答:智能体配置文件在工作流执行时动态加载,修改后下次执行即可生效,无需重启 CLI。
Q2: 如何查看智能体的详细日志?
Section titled “Q2: 如何查看智能体的详细日志?”# 查看指定智能体日志railwise agent logs surveyor --follow
# 查看所有智能体日志railwise agent logs --all --last 100Q3: 工作流执行到一半失败了,如何恢复?
Section titled “Q3: 工作流执行到一半失败了,如何恢复?”# 从失败步骤重新执行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"Q5: 多个工作流如何并行执行?
Section titled “Q5: 多个工作流如何并行执行?”# 后台并行执行多个工作流railwise run workflow1.yaml --backgroundrailwise run workflow2.yaml --background
# 查看后台任务railwise jobs list练习 1:修改预警阈值
Section titled “练习 1:修改预警阈值”修改 .railwise/agents/monitor.yaml 中的预警阈值,将沉降报警值从 20mm 调整为 15mm,重新执行工作流观察预警变化。
练习 2:添加新的质检规则
Section titled “练习 2:添加新的质检规则”在 .railwise/agents/inspector.yaml 中添加一条自定义规则:检查观测时间是否在白天(6:00-18:00)进行。
练习 3:编排多项目工作流
Section titled “练习 3:编排多项目工作流”编写一个工作流,依次处理 3 个不同项目的监测数据,每个项目使用不同的预警阈值。
练习 4:条件分支实践
Section titled “练习 4:条件分支实践”编写一个工作流,根据天气条件(从外部 API 获取)决定是否执行外业测量步骤:雨天自动跳过外业步骤,使用上次数据。
相关文档链接
Section titled “相关文档链接”- CLI 安装与首条命令 — 前置教程
- CLI 智能体配置详解 — 更详细的配置参考
- CLI 工作流编排 — 高级工作流设计
- CLI 数据格式与导入 — 数据格式详解
- CLI 常见问题与故障排查 — 故障排查手册
- 视频文件:
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 | 宁波睿威工程技术有限公司 版权所有
