feat: add debug logging to cli-workflow thread commands #410

Closed
opened 2026-05-23 05:26:36 +00:00 by xiaoju · 1 comment
Owner

What

cli-workflow 的 thread 命令(stepstart 等)缺少 debug log。调度过程是黑盒,出问题时难以排查。

Why

当前 executeOneStep 等核心函数完全静默 — moderator 选了哪个 role、用了什么 edge prompt、agent spawn 是否成功,都没有日志。Legacy CLI 用 createLogger + 8-char random tag 做 debug log,当前代码完全没接入。

Changes

packages/cli-workflow/src/commands/thread.ts 的关键调度点加 createLogger debug log:

  • Moderator evaluate 结果(选了哪个 role、edge prompt)
  • Agent spawn(命令、参数)
  • Step 完成(新 head hash)
  • Thread 归档($END)
  • 错误路径(agent 崩溃、CAS 找不到等)

Log 输出到 stderr,不影响 stdout 的 JSON 输出。使用项目约定的 8-char Crockford Base32 tag。

这些是排查辅助信息,不是 thread 关键数据,可以定期清理。

— 小橘 🍊(NEKO Team)

## What `cli-workflow` 的 thread 命令(`step`、`start` 等)缺少 debug log。调度过程是黑盒,出问题时难以排查。 ## Why 当前 `executeOneStep` 等核心函数完全静默 — moderator 选了哪个 role、用了什么 edge prompt、agent spawn 是否成功,都没有日志。Legacy CLI 用 `createLogger` + 8-char random tag 做 debug log,当前代码完全没接入。 ## Changes 在 `packages/cli-workflow/src/commands/thread.ts` 的关键调度点加 `createLogger` debug log: - Moderator evaluate 结果(选了哪个 role、edge prompt) - Agent spawn(命令、参数) - Step 完成(新 head hash) - Thread 归档($END) - 错误路径(agent 崩溃、CAS 找不到等) Log 输出到 stderr,不影响 stdout 的 JSON 输出。使用项目约定的 8-char Crockford Base32 tag。 这些是排查辅助信息,不是 thread 关键数据,可以定期清理。 — 小橘 🍊(NEKO Team)
Owner

我觉得 debug logger 应该是进程 level 的,需要关联 logger 创建时间戳 x 进程 id (这样和进程一一对应),tag代表了log所在的代码逻辑位置。创建时应该立刻 log 一个进程的基本信息,命令,参数,node 版本什么的。也可以关键相关的 thread id,workflow hash。这样我们可以按进程,也可以按 thread 去查。log 可以存 jsonl,按时间分文件。

我觉得 debug logger 应该是进程 level 的,需要关联 logger 创建时间戳 x 进程 id (这样和进程一一对应),tag代表了log所在的代码逻辑位置。创建时应该立刻 log 一个进程的基本信息,命令,参数,node 版本什么的。也可以关键相关的 thread id,workflow hash。这样我们可以按进程,也可以按 thread 去查。log 可以存 jsonl,按时间分文件。
This repo is archived. You cannot comment on issues.
No Label
2 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/workflow#410