Releases: NgZiming/YetAnotherDataFlow
## [1.0.7] - 2026-04-14
[1.0.7] - 2026-04-14
Added
-
OpenClaw Agent Serving 架构重构 (
39a4196,4eeaee8,cf0e77b)- 新增
AgentServingABC抽象基类,提供统一 Agent 能力流程 - 新增
AgentServingABC.MessageDict和TrajectoryDict类型定义 - 新增
CLIOpenClawServing- 基于 OpenClaw CLI 的 Agent serving 实现 - 新增
SDKNanobotServing- 基于 Nanobot SDK 的 Agent serving 实现 - 新增
SystemPromptBuilder- 动态构建 OpenClaw system prompt - 支持动态创建 worker agents(按需创建,不再预先创建池)
- 支持任务验证循环(verification loop)
- 支持 system prompt 注入(包含 skills 信息)
- 新增
-
FileContextGenerator 增强 (
0962a63,a46e566)- 添加详细日志输出
- 支持多种输入格式(string/list)
- 改进错误处理和失败 row 过滤
- 添加文件生成队列调试信息
-
FormatStrPromptedAgenticGenerator 增强 (
8ebef33)- 支持
input_skills_dir参数动态加载 skills - 支持
input_skills_key传递 skill 路径列表 - 支持
verification_prompt_template验证提示词 - 支持
enable_verification自动验证循环 - 支持
max_verification_rounds最大验证轮数
- 支持
-
JsonParseFilter 容错增强 (
0384c59)- 添加
json-repair依赖 - 使用
repair_json替代标准json.loads - 增强 JSON 解析容错能力
- 添加
-
NestExtractOperator 验证增强 (
bd3d2c6)- 验证 input_keys 和 output_keys 必须一一对应
- 添加详细的调试日志
- 检查输出列的值有效性
Changed
-
Serving 模块重构 (
39a4196)- 将 agent 相关的 serving 移到
serving/agent/子目录 - 更新
serving/__init__.py导入路径 - 移除旧的
cli_openclaw_serving.py和sdk_nanobot_serving.py(移至 agent 子目录)
- 将 agent 相关的 serving 移到
-
Pipeline 并发控制优化 (
17f258f)PartitionPipelineParallelRun改进并发提交逻辑- 防止 LLM Serving 并发竞争
-
项目名称更新 (
46ee92c)open-dataflow→ya-dataflow- 更新 CLI 输出和 PyPI API 地址
Fixed
-
Chinese font 问题 (
31e1ae1)- 修复 PDF 生成中的中文字体问题
-
File path 问题 (
9d6b7f3,a46e566)- 修复文件路径验证逻辑
- 确保所有文件路径以
/workspace/开头
-
Verification 问题 (
cf0e77b)- 修复任务验证逻辑
- 改进验证反馈格式
-
Agent name 问题 (
1090495)- 修复 agent 名称匹配逻辑
-
Empty query 问题 (
2ad44c5)- 添加 query 非空验证
-
CSV gen 问题 (
ef27606)- 修复 CSV 文件生成问题
-
Feedback 问题 (
76e1bd1,249c29a,5e01eea,c3c9464)- 修复反馈生成和验证逻辑
-
Dict types 问题 (
bd3d2c6)- 修复字典类型处理
Removed
- 冗余依赖 (
46ee92c)- 移除无用的 prompt 和依赖
## [1.0.6.post1] - 2026-04-09
[1.0.6.post1] - 2026-04-09
Fixed
-
Session lock 文件路径修复 (
c70136f,909c5fe)- 修正 session lock 文件检测位置(lock 文件实际位于
agent/sessions/目录下,而非 workspace 根目录) - 修复
_is_agent_locked()使用正确的sessions/子目录路径 - 修复
/new失败时的 lock 文件清理逻辑 - 将未定义的
_cleanup_agent_locks函数调用替换为内联逻辑
- 修正 session lock 文件检测位置(lock 文件实际位于
-
Thread safety (
f7b4a01)- 修复 S3Storage 的线程安全问题
## [1.0.6] - 2026-04-08
[1.0.6] - 2026-04-08
Added
-
NanobotServing (
5fe27e4)- 新增
NanobotServing- 基于 nanobot Python SDK 的轻量级 Serving 类 - 新增
CLINanobotServing测试及 API 配置支持
- 新增
-
CLI 请求增强 (
4502473)- 添加 CLI 请求重试机制
- 添加 tqdm 进度显示
-
缓存配置优化 (
e696b26,524e002)S3DataSource和S3Storage的cache_max_size_gb改为可配置参数
Changed
-
缓存架构重构 (
ac516d2)- 重构
LRUCacheManager缓存架构 - 将缓存逻辑从
DataParser层移至Storage/DataSource层
- 重构
-
命名统一 (
55a1b50,a8d4fe4)S3Storage的temp_dir参数改为cache_dir,统一命名nanobot_serving重命名为cli_nanobot_serving以对齐命名规范- 重构
Serving类命名并添加 agent 健康检查
Fixed
-
缓存大小配置 (
722f1a5,66b96e4)- 修复 cache size 配置问题
- 修复类型注解问题
-
依赖冲突 (
ccfb7af)- 解决 langkit 依赖冲突问题
-
临时目录支持 (
40ca1ae)- 为
DataParser添加自定义临时目录支持
- 为
## 1.0.5 (2026-04-07)
### 1.0.5 (2026-04-07)
### Fixed
- **Unicode surrogate 字符清理**
- 新增 clean_surrogates() 工具函数,递归清理字符串中的 U+D800-U+DFFF 字符
- 在 DataParser 基类中添加 _clean_data_for_serialization() 静态方法
- 所有 Parser (Json/Jsonl/Csv/Parquet/Pickle) 的 serialize_to_file() 都会先清理数据
- 修复 'utf-8 codec can't encode character surrogates not allowed' 错误
## v1.0.4.post1
Full Changelog: v1.0.4.hotfix...v1.0.4.post1
## [1.0.4.hotfix] - 2026-04-03
[1.0.4.hotfix] - 2026-04-03
Fixed
-
Pipeline.is_partitioned 同步问题 (
main)Pipeline.compile(): 在设置self.storage.is_partitioned = True后,同步更新所有 operator nodes 中的 storage- 修复
_build_operator_nodes_graph()在is_partitioned设置之前被调用导致的问题 - 确保
execute_workload()中copy.copy(node.storage)获得正确的is_partitioned值
-
entrypoint.sh heredoc 语法 (
main)- 修复
openclaw config set不支持直接 heredoc 的问题 - 改为使用
$(cat << 'EOF')命令替换 - 移除环境变量默认值,强制要求设置
- 修改 gateway 启动方式为
nohup openclaw gateway run > gateway.log 2>&1 &
- 修复
v1.0.4 创建启动 openclaw 的 dataflow 容器
[1.0.4] - 2026-04-03
Added
-
Pipeline 分片跳过优化 (
b13860c)Pipeline.compile(): 检查 progress 中的total_shards,已分片则跳过split_input()- 新增
is_partitioned属性到PartitionableStorage接口 - 支持任务重启时跳过已完成分片,避免重复处理
-
Storage 接口优化 (
b13860c)- 移除
batch_size属性(分片时动态计算) get_keys()从 DataSource 读取字段名
- 移除
Changed
-
Docker 镜像优化 (
13bb3bb)- 代码拷贝路径改为
/opt/dataflow - 更新
.dockerignore排除非运行时文件dataflow/example/- 示例数据dataflow/cli_funcs/- CLI 功能dataflow/webui/- Web UIstatic/- 静态资源
- 代码拷贝路径改为
-
本地安装支持 (
85319e6)- Dockerfile 改为安装本地文件夹而非远程 git
- 移除包含敏感信息的远程 git URL
Removed
- BatchedPipeline 相关代码 (
b13860c)- 删除
BatchedPipelineABC,StreamBatchedPipelineABC类 - 删除
BatchedFileStorage,StreamBatchedFileStorage类 - 删除测试文件
test/test_batched_pipeline.py,test/test_batched_stream_pipeline.py - 删除模板文件
my_pipeline.py
- 删除
Fixed
-
Pipeline 进度初始化 (
b13860c)progress["partitions"]列表长度改为self._partitions_build_operator_nodes_graph()移到 progress 创建之前
-
Pipeline 类名获取 (
b13860c)pipeline_class改为type(self).__bases__[0].__name__- 确保获取基类名 (
PipelineABC或PartitionPipelineParallelRun)
-
依赖修复 (
589a542)requirements.txt新增依赖
## [1.0.3] - 2026-04-02
Added
-
核心算子模块 (
7fee81e)JsonParseFilter: JSON 解析和验证算子,支持字段类型检查、正则匹配、数值范围验证NestExtractOperator: 嵌套 JSON 提取算子,支持点号路径 (user.address.city) 和数组索引 (items[0].name) 语法FormatStrPromptedAgenticGenerator: 基于模板提示的 Agent 生成算子,支持传递文件内容数据FileContextGenerator: 文件内容合成算子,根据文件路径和问题生成表格/文档/PPT/代码等内容
-
二进制文件生成系统 (
95b10c0,7055f70)generate_binary_files.py: 支持 11 种格式的测试文件生成 (CSV/XLSX/PDF/DOCX/PPTX/JSON/XML/HTML/YAML/TXT/Py/JS/TS)CLIOpenClawServing增强:支持在 LLM 调用前注入二进制文件内容数据- 5 类 Prompt 模板:table/document/presentation/structured/text/code
-
依赖更新 (
a095d18)- 新增
openpyxl- Excel 文件读写 - 新增
python-pptx- PPTX 文件生成 - 新增
reportlab- PDF 文件生成 - 新增
docx- DOCX 文件生成
- 新增
Fixed
-
文件验证和路径处理 (
5186b80)generate_file内容验证逻辑修复- 路径处理从
/workspace/到 agent workspace 的转换
-
Pipeline 输入检查 (
cd0b60a)- Pipeline 步骤输入键检查增强
v1.0.2 bug 修复
Fixed
-
Pipeline 输入键检查增强 (
ad3bdf3,fc60bf0)PipelineABC._check_input_keys: 添加空input_key_first_part检查,避免空字符串导致的错误PipelineABC._check_input_keys_for_step: 同上,确保后续步骤的输入键检查健壮性PartitionPipelineParallelRun: 跳过以.开头的key_para_name,避免错误的依赖添加
-
OpenClaw CLI Serving 超时处理 (
ab06a92,c6d20a9)_execute_single_query: timeout 从硬编码 30 秒改为使用传入的timeout参数- 超时异常从返回空字符串改为抛出异常,确保调用方能正确处理超时
- 返回值格式统一为
{"messages": [...]}结构
-
Storage schema 包含 id_key (
bacc6c1,814176f)FileStorage.get_schema: 返回的 schema 包含id_key,确保后续步骤能正确识别主键S3Storage.get_schema: 同上
-
文件句柄泄漏修复 (
6cd60cd)FileStorage._load_data_for_pruning: 添加 try-finally 确保文件正确关闭
ID合成与OpenClaw CLI Serving优化
[1.0.1] - 2026-03-31
Added
-
IdSynthesizer 抽象类 (
b0c12e8)- 新增
IdSynthesizer抽象基类,支持缺失id_key的自动合成 - 实现
UuidIdSynthesizer(默认)和CounterIdSynthesizer FileStorage和S3Storage在split_input时自动合成缺失的id_key
- 新增
-
OpenClaw CLI Serving 重构 (
3e9f94b)- 改用预先创建的 worker agents,避免重复创建失败
- 每次请求前执行
/new创建新 session - 请求轮询分配给不同的 worker agent
-
Pipeline 并行检查优化 (
fc108ba)_check_completed_workloads改为多线程并行检查- 最多 32 个 worker 并行检查文件存在性
Changed
-
Session 文件等待增强 (
cce4704)load_session改为抛异常,不再返回None_resolve_transcript_path超时从 15 秒延长到 60 秒
-
Worker agent 注册等待 (
6d8b994)- 创建 worker agent 后轮询检查是否注册成功
- 最多等待 5 秒(10 次 * 0.5 秒)
Fixed
79c18b0- 添加 agent 注册重试逻辑,解决竞态条件fdfc9d1- 修复 openclaw CLI 命令,使用agents delete和-m标志7601512- CLI serving 改用临时 agent 而非--session-ida29d612- 修复 data_parser 和 datasources 读取问题9865233- 修复文件未找到问题
Other Updates
| Commit | Description |
|---|---|
c734aa6 |
shelex 功能更新 |
c02c256 |
修复 agent 目录 |
0023d74 |
修复 agent 目录 |
53561ff |
保存所有 sessions |
c731aa0 |
API 功能更新 |
9c3781a |
支持嵌套 keys |
a733690 |
默认模型配置 |
d5d806b |
格式化 |