JSONL
一种每行存储一个独立JSON对象的文本格式,常用于日志记录、流式数据传输和大规模数据处理场景,支持逐行追加和流式解析
核心事实
时间轴 (近 90 天)
Pi Durable 目前支持 SQLite、JSONL 文件存储和内存存储三种存储后端,其中内存存储关闭进程后数据即丢失。
在 Pi Durable 中,SQLite 适合需要按条件查询状态和保证事务原子性的场景,JSONL 适合日志式追加、事后审计和快速人工检查。
Pi Durable 将每个 task 和每次 tool call 的状态检查点写入 SQLite 或 JSONL 持久化存储。
Pi Durable 对每次工具调用都写入持久化存储,会带来额外 I/O 开销和存储增长;对于高频调用的 Agent,JSONL 文件会快速膨胀,SQLite 也会面临写入压力。
存储格式选择追加式JSONL,比反复重写JSON文件更能扛住硬停机,也方便grep和diff。
运行账本(run ledger)是一种按时间顺序追加、每次模型调用写一行记录的日志文件,固定记录模型标识、端点、时间戳、token用量与延迟,以支持事后审计。
账本脚本ledger.py只依赖Python标准库(Python 3.11+),为每次尝试追加一行JSON,因此重试天然计费。
示例将接受的事件写入 JSONL 审计日志,但刻意不存储发送方和接收方的电话号码,只记录事件类型、消息 ID、来源检查结果以及是否可能产生费用。
JSONL 日志场景隐含契约:每行自包含、字段可缺省,解析方必须对未知 type 或新增字段保持容忍,不能因未知记录整段失败
harness 每次起草尝试写一行 JSONL,包含 task_id, placement, attempt_no, prompt_tokens, completion_tokens, wall_ms, ok, error_class, sql_sha256 等字段。
还有 16 条时间轴事件
全部知识事实 (20)
JSONL(JSON Lines)格式每行是一个独立 JSON 对象,支持流式追加写入而无需重新解析整个文件,写入为 O(1) 操作
75%已验证JSONL格式每行是一个独立的完整JSON对象,支持流式读取、并行处理和增量追加,Hugging Face的Datasets库原生支持其加载
75%待验证Pi Durable 目前支持 SQLite、JSONL 文件存储和内存存储三种存储后端,其中内存存储关闭进程后数据即丢失。
50%待验证在 Pi Durable 中,SQLite 适合需要按条件查询状态和保证事务原子性的场景,JSONL 适合日志式追加、事后审计和快速人工检查。
50%待验证Pi Durable 对每次工具调用都写入持久化存储,会带来额外 I/O 开销和存储增长;对于高频调用的 Agent,JSONL 文件会快速膨胀,SQLite 也会面临写入压力。
50%待验证Pi Durable 将每个 task 和每次 tool call 的状态检查点写入 SQLite 或 JSONL 持久化存储。
50%待验证存储格式选择追加式JSONL,比反复重写JSON文件更能扛住硬停机,也方便grep和diff。
50%待验证运行账本(run ledger)是一种按时间顺序追加、每次模型调用写一行记录的日志文件,固定记录模型标识、端点、时间戳、token用量与延迟,以支持事后审计。
50%待验证账本脚本ledger.py只依赖Python标准库(Python 3.11+),为每次尝试追加一行JSON,因此重试天然计费。
50%待验证示例将接受的事件写入 JSONL 审计日志,但刻意不存储发送方和接收方的电话号码,只记录事件类型、消息 ID、来源检查结果以及是否可能产生费用。
50%待验证JSONL 日志场景隐含契约:每行自包含、字段可缺省,解析方必须对未知 type 或新增字段保持容忍,不能因未知记录整段失败
50%待验证harness 每次起草尝试写一行 JSONL,包含 task_id, placement, attempt_no, prompt_tokens, completion_tokens, wall_ms, ok, error_class, sql_sha256 等字段。
50%待验证使用JSONL追加写而非JSON覆盖写是幂等任务的标准做法:JSONL每行独立,写入中断只丢最后一行;覆盖式JSON写入中断则整个文件损坏,进度归零。
50%待验证JSONL追加写入几乎没有性能负担,不需要复杂数据库事务,也不会阻塞智能体主流程
50%待验证JSONL以追加写入(append-only)方式记录状态变更日志,适合审计和顺序回放
50%待验证该系统根据访问模式选择不同的持久化技术,采用ChromaDB、JSONL和SQLite的混合存储方案
50%待验证每个状态转换留痕的做法能获得完整的审计轨迹,便于回溯任意Agent在任意时刻的状态变化
50%待验证核心持久化模式为:每一次状态转换写入一行JSONL审计记录,每一次重启读取日志的尾部
50%待验证Agent Standup 直接读取 Claude Code 写入 ~/.claude/projects 目录的 JSONL 格式会话文件,并实时跟踪当前会话
50%待验证JSONL 相比标准 JSON 数组的优势在于追加写入和逐行处理高效,劣势是人工阅读时可读性差
50%