SuperAPI AI 工具集

pi-logs

智能体与模型

查看项目

更新于 10-16 06:22

技能介绍

用途:pi-logs 用于查询 pi agent 的会话日志,借助 Nushell 的结构化数据管道进行过滤、统计与分析,适合调试会话、分析工具使用情况、查找运行过的命令以及追踪文件改动。

日志结构:日志以 JSON Lines(.jsonl)文件存放在 ~/.pi/agent/sessions/<project-path>/,每行一个 JSON 对象。条目类型包括 session(会话元数据,含 version、id、timestamp、cwd)、message(user/assistant/tool 消息,含 id、parentId、timestamp,message 内含 role、content、api、provider、model、usage、stopReason)、model_change(provider、modelId)、thinking_level_change(thinkingLevel)、custom_message(customType、content、display,如 hook、hook-error、VCS 通知)、compaction(summary、firstKeptEntryId、tokensBefore、details、fromHook)。message.content[] 中的条目类型有 text、thinking、toolCall。

使用方式:可先定义辅助函数 def open-jsonl [file: path] { open $file --raw | lines | each { from json } },再配合 where、get、flatten、uniq --count、math sum 等 Nushell 命令查询。例如查看最近会话:ls ~/.pi/agent/sessions/ | get name | first 5;加载单个会话:open-jsonl ~/.pi/agent/sessions/<project-path>/<session-file>.jsonl;筛选助手消息:open-jsonl session.jsonl | where type == "message" | where message.role == "assistant";提取 bash 命令:... | where type == "toolCall" | where name == "bash" | get arguments.command。

常见查询:统计条目类型与消息角色、按工具名计数、列出读取或写入的文件、查找 hook 错误、查看 compaction 摘要、汇总 token 用量、跨多个会话聚合统计,以及定位包含特定命令(如 jj diff、grep、bun run)的调用。

限制:依赖 Nushell 环境与本地日志文件路径;具体字段随日志版本变化,资料未提供安装方式、收费与平台支持等信息。