zenyx-agentic-loops
收藏资源简介:
Zenyx Agentic Loops 是一个面向小型聊天模型(Zenyx-Mini,约151M参数)的多轮工具使用/agent-loop监督微调(SFT)数据集,英语,任务类别 text-generation,标签 agents、tool-use、function-calling、sft、synthetic,规模 10K<n<100K。目标是让小型基座模型学会:使用工具实际返回的内容;从错误中恢复;没有结果时明确说“未找到”而不是编造;缺少必要信息时提问并等待用户回答;破坏性操作前确认;轮询异步任务直到真正完成。 数据生成:本地4B模型 Spark-X2.6-4B(Q8_0 GGUF,通过 llama.cpp,Apache-2.0)只扮演 assistant;scripts/agentloop_env.py 扮演工具和用户。每个工具调用由模拟世界执行(虚拟文件、天气/时间表、计算器、单位转换、订单/客户、电子邮件/日历、异步作业),因此工具输出是真实的,包括错误、空结果和“仍在运行”。用户回合由脚本化模板生成,包含几百种模板变体和随机槽;当 assistant 提出必需问题时程序回答,当请求确认时约70%回答是、其余为否。只有真正成功的 rollout 被接受:评判器检查世界状态和对话记录,例如最终答案必须包含工具返回的值且不能包含未在任何观察中出现的数字;邮件必须发送到用户给出的地址;文件仅在用户确认后被删除;作业必须轮询到 done;assistant 不得在确认前调用工具。被拒绝的 rollout 保留在 rejects/ 下并附原因,可作为负例/DPO 对。data/identity_nini/ 为程序化生成(无模型),包含 Zenyx-Mini(“Nini”)的身份、规模、创建者、能力和限制,以及希望模型准确陈述的事实。 格式:data/<task>/*.jsonl 每行包含 messages({role, content} 列表,角色有 system(可选)、user、assistant、tool;assistant 工具调用仅为 <tool_call>[{"name": ..., "arguments": {...}}]</tool_call>;结果为 tool 消息及原始结果文本)、tools(JSON 字符串,OpenAI 风格工具模式)、domain(agentloop_<task> 或 identity_nini)、provider(llama.cpp:Spark-X2.6-4B-Q8_0.gguf 或 program:templates)、seed、task_info(可复现信息,JSON 字符串)。采用 Zenyx 聊天格式(zenyx100m/chat.py):工具模式放入 system 轮,工具结果作为 <|im_start|>tool 轮返回;仅 assistant 内容参与训练。配置包括 default(data/*/*.jsonl)和 rejects(rejects/*/*.jsonl)。 任务家族包括 weather、time、calc、convert、read_note(先列后读)、error_recovery(错误文件名、瞬时503、永久权限错误)、empty_result(未找到且不编造)、ask_then_act(缺少城市/收件人/时间;另有控制行,所有信息已给出且 assistant 不得提问)、confirm_destructive(仅在确认后删除)、async_job(启动、轮询、仅在完成时回答)、no_tool_needed、tool_unavailable(诚实说明“用这些工具做不到”)、multi_call、dependent_calls(第二次调用使用第一次结果中的 id)、write_note、identity_nini。 使用限制:工具为模拟,场景来自固定家族,因此主要教授循环行为而非真实世界工具知识;仅英语。Assistant 措辞来自4B模型,只要行为和事实正确即被接受,因此风格可能平实或简短。行数随生成器运行而增长,当前计数见 status/*.json。scripts/ 中包含生成脚本以便复现整个流程;scripts/test_agentloop_env.py 表明脚本化的正确 agent 在每个任务上都会被接受,而错误行为会被拒绝。数据和脚本采用 Apache-2.0 许可;生成器模型 Spark-X2.6-4B 也采用 Apache-2.0。
Zenyx Agentic Loops is a multi-turn tool-use/agent-loop supervised fine-tuning (SFT) dataset for small chat models (Zenyx-Mini, about 151M parameters). It is in English, with task category text-generation and tags agents, tool-use, function-calling, sft, synthetic, and size category 10K<n<100K. It targets common errors of small base models: use the actual content returned by tools; recover from errors; explicitly say "not found" when there is no result instead of fabricating; ask for necessary missing information and wait for the users answer; confirm before destructive operations; and poll asynchronous jobs until they are truly complete. Data generation: a local 4B model Spark-X2.6-4B (Q8_0 GGUF, via llama.cpp, Apache-2.0) acts only as the assistant; the small program scripts/agentloop_env.py acts as tools and the user. Each tool call is executed by a simulated world (virtual files, weather/timetable, calculator, unit conversion, orders/customers, email/calendar, asynchronous jobs), so tool outputs are realistic, including errors, empty results, and "still running". User turns are generated from scripted templates with several hundred template variants and random slots; the program answers when the assistant asks required questions, and about 70% of confirmation requests get yes and the rest no. Only truly successful rollouts are accepted: a judge checks world state and the conversation transcript, e.g., final answers must include values returned by tools and must not include numbers not seen in any observation; emails must be sent to the address given by the user; files are deleted only after user confirmation; jobs must be polled until done; the assistant must not call tools before confirmation. Rejected rollouts are kept under rejects/ with reasons and can serve as negative examples/DPO pairs. data/identity_nini/ is programmatically generated (without a model) and contains facts about Zenyx-Mini ("Nini"): identity, scale, creator, capabilities, limitations, and facts the model should state accurately. Format: each line in data/<task>/*.jsonl contains messages (a list of {role, content}, with roles system (optional), user, assistant, tool; assistant tool calls are only <tool_call>[{"name": ..., "arguments": {...}}]</tool_call>; tool results are tool messages with raw result text), tools (JSON string, OpenAI-style tool schemas), domain (agentloop_<task> or identity_nini), provider (llama.cpp:Spark-X2.6-4B-Q8_0.gguf or program:templates), seed, task_info (reproducibility information, JSON string). It adopts the Zenyx chat format (zenyx100m/chat.py): tool schemas are placed in the system turn, tool results are returned as <|im_start|>tool turns; only assistant content participates in training. Configurations include default (data/*/*.jsonl) and rejects (rejects/*/*.jsonl). Task families include weather, time, calc, convert, read_note (list first, then read), error_recovery (wrong filenames, transient 503, permanent permission errors), empty_result (not found and no fabrication), ask_then_act (missing city/recipient/time; also control rows where all information is given and the assistant must not ask), confirm_destructive (delete only after confirmation), async_job (start, poll, answer only when complete), no_tool_needed, tool_unavailable (honestly state "cannot do it with these tools"), multi_call, dependent_calls (second call uses an id from the first result), write_note, identity_nini. Usage limitations: tools are simulated and scenarios come from fixed families, so the dataset mainly teaches loop behavior rather than real-world tool knowledge; English only. Assistant wording comes from the 4B model and is accepted as long as behavior and facts are correct, so style may be plain or short. Row counts grow with generator runs; current counts are in status/*.json. scripts/ contains generation scripts to reproduce the entire pipeline; scripts/test_agentloop_env.py shows that a scripted correct agent is accepted on every task while incorrect behavior is rejected. Data and scripts are under Apache-2.0; the generator model Spark-X2.6-4B is also under Apache-2.0.
Zenyx Agentic Loops 数据集概述
基本信息
- 名称:Zenyx Agentic Loops (simulated tools, verified rollouts)
- 详情页:https://huggingface.co/datasets/Arko007/zenyx-agentic-loops
- 许可证:apache-2.0
- 语言:en
- 任务类别:text-generation
- 标签:agents、tool-use、function-calling、sft、synthetic
- 大小类别:10K<n<100K
- 配置:
- default:数据文件位于 https://huggingface.co/datasets/Arko007/zenyx-agentic-loops/tree/main/data 下的 JSONL 文件
- rejects:数据文件位于 https://huggingface.co/datasets/Arko007/zenyx-agentic-loops/tree/main/rejects 下的 JSONL 文件
用途与目标
- 面向小型聊天模型 Zenyx-Mini(约 151M 参数)的多轮 tool-use / agent-loop SFT 数据。
- Zenyx-Mini 链接:https://huggingface.co/Arko007/Zenyx-100M-Base
- 目标行为包括:
- 使用工具实际返回的内容
- 从错误中恢复
- 在未找到时说明“nothing found”,而不是编造
- 询问并等待用户回答
- 在执行破坏性操作前确认
- 轮询作业直到真正完成
生成与可信度
- 本地 4B 模型 Spark-X2.6-4B(Q8_0 GGUF,通过 llama.cpp,Apache-2.0)仅扮演 assistant。
- 小程序 https://huggingface.co/datasets/Arko007/zenyx-agentic-loops/blob/main/scripts/agentloop_env.py 扮演工具和用户。
- 每个工具调用由模拟世界执行,包括虚拟文件、天气/时间表、计算器、单位转换、订单/客户、电子邮件/日历、异步作业,因此工具输出是真实的,包括错误、空结果和“still running”。
- 用户轮次脚本化,由数百模板变体与随机槽生成。当 assistant 提出必要问题时,程序回答;当请求确认时,程序约 70% 回答 yes,否则 no。
- 仅真正成功的 rollout 被接受。裁判检查世界状态和对话记录,例如:
- 最终答案必须包含工具返回的值,且不能包含未出现在观察中的数字
- 电子邮件必须发送到用户给出的地址
- 文件必须仅在用户确认后消失
- 作业必须轮询直到
done - assistant 不得在确认前调用工具
- 被拒绝的 rollout 保留在 https://huggingface.co/datasets/Arko007/zenyx-agentic-loops/tree/main/rejects 下,并附原因,可用于 negatives / DPO pairs。
- https://huggingface.co/datasets/Arko007/zenyx-agentic-loops/tree/main/data/identity_nini 是程序化生成(无模型):包含 Zenyx-Mini(“Nini”)的身份、大小、创建者、能力与限制,并包含希望它陈述的事实。
数据格式
- 每行位于 https://huggingface.co/datasets/Arko007/zenyx-agentic-loops/tree/main/data 下的 JSONL 文件。
| 字段 | 含义 |
|---|---|
messages |
{role, content} 列表,角色包括 system(可选)、user、assistant、tool。Assistant 工具调用仅为 <tool_call>[{"name": ..., "arguments": {...}}]</tool_call>;结果为 tool 消息,包含原始结果文本。 |
tools |
JSON 字符串:该行可用的 OpenAI 风格工具 schema |
domain |
agentloop_<task> 或 identity_nini |
provider |
llama.cpp:Spark-X2.6-4B-Q8_0.gguf 或 program:templates |
seed, task_info |
可复现信息(JSON 字符串) |
- 采用 Zenyx chat format:工具 schema 放入 system 轮次,工具结果以
<|im_start|>tool轮次返回;仅训练 assistant 内容。
任务家族
weathertimecalcconvertread_note:先列出再读取error_recovery:错误文件名、临时 503、永久权限错误empty_result:未找到,不编造ask_then_act:缺少城市 / 收件人 / 时间;另含控制行,所有信息已给出时 assistant 不得询问confirm_destructive:仅在 yes 后删除async_job:启动、轮询、仅在done后回答no_tool_neededtool_unavailable:诚实表示“I cant do that with these tools”multi_calldependent_calls:第二次调用使用第一次结果中的 idwrite_noteidentity_nini
限制
- 工具是模拟的,场景来自固定家族:用于教授循环行为,而不是真实世界工具知识。仅英语。
- assistant 措辞来自 4B 模型:当行为和事实正确时被接受,因此风格可以平实或简洁。
- 行数在生成器运行时增长;当前计数位于 https://huggingface.co/datasets/Arko007/zenyx-agentic-loops/tree/main/status 下的 JSON 文件。
- 脚本位于 https://huggingface.co/datasets/Arko007/zenyx-agentic-loops/tree/main/scripts,可复现整个流程。
- https://huggingface.co/datasets/Arko007/zenyx-agentic-loops/blob/main/scripts/test_agentloop_env.py 显示:脚本化正确代理在每个任务上被接受,错误行为被拒绝。
许可与生成器
- 许可证:Apache-2.0(数据和脚本)
- 生成器模型:Spark-X2.6-4B(Apache-2.0)





