复用引擎既有 approval_gate 机制,不重造状态机: - 新增 dingtalk_approval.py:注册 step_type='dingtalk_approval'(interactive), 进入步骤自动向钉钉发起审批;注册 biz_type='pipeline_approval' 回调钩子, 审批结果回来调 approval_approve/reject 推进产线(内部已 save_artifact+resume_task) - executor._handle_interactive_step 加外部通知钩子(按 step_type meta.notifier 分派), 并把 tenant_id 从 _execute_step 传下来(原 step_info 里无此字段,会永远取空) - biz_id 编码 tenant_id:task_id:step_name,回调据此定位步骤 - 软依赖 dingdingflow:未加载时步骤仍挂起等人工审批,不推钉钉、不报错 - 通知失败只记日志不改步骤状态,避免外部系统故障导致步骤 FAILED
pipeline_service
产线执行引擎 —— 任务调度、步骤执行、人工任务交互、LLM 桥接。
功能
- 任务执行:DAG 步骤调度与状态机
- 人工任务:审批/输入等待与交互
- LLM 桥接:统一 LLM 调用接口
- Agent Loop:AI Agent 多轮任务执行
- 意图分类:自然语言意图识别
- 产物管理:步骤输入输出存储
数据表
| 表 | 说明 |
|---|---|
| pipeline_tasks | 任务实例 |
| pipeline_task_steps | 步骤执行记录 |
| pipeline_artifacts | 步骤产物 |
| pipeline_human_tasks | 人工任务 |
| pipeline_step_types | 步骤类型注册 |
安装
cd pkgs/pipeline-service && pip install .
核心模块
| 文件 | 职责 |
|---|---|
executor.py |
任务/步骤调度引擎 |
storage.py |
数据库读写 |
llm_bridge.py |
LLM API 调用 |
agent_loop.py |
AI Agent 多轮执行 |
human.py |
人工任务处理 |
intent_classifier.py |
意图识别 |
state.py |
状态机 |
step_registry.py |
步骤类型注册表 |
Description
Languages
Python
99.5%
Shell
0.5%