跳转到内容

/logs

/logs 技能是 AI 驱动的日志获取工具。你可以描述要查找的内容,代理会找到正确的 Pod、选择合适的时间窗口,并使用最优的 grep 过滤器仅获取关键日志行。

为高效获取日志,该技能教会代理使用 Kubetail。Kubetail 在每个节点上运行 Rust 驱动的集群代理(传统意义上的 K8s 代理,而非 AI 代理),在远端执行过滤而非本地处理。这使得跨多个 Pod 和较长时间窗口的快速搜索成为可能,无需先传回大量数据。

流运行在 tmux 窗口内,你和代理同时附加其中。代理读取窗格内容以回答你的问题,你可以滚动、搜索,或继续实时观察日志流。

/logs # prompts for a target
/logs api # recent logs from the api workload
/logs errors from the last hour on api # natural-language scoping
/logs checkout for "timeout" in last 15m

支持自然语言范围限定(命名空间、标签选择器、工作负载名称、时间窗口、grep 模式),参见概述。代理将你的描述转换为合适的 Kubetail 查询。


  • tmux 必须在代理的 $PATH 中可用。缺少它技能将无法运行。
  • Kubetail 必须安装在集群中。若未安装,技能会主动提议使用 Kubetail 的 Helm Chart 为你安装(手动安装路径参见安装指南)。

代理解析目标并构建 Kubetail 查询后,将:

  1. 以描述性名称(如 kstack-logs-api-server)启动一个分离的 tmux 会话。
  2. 尝试在桌面打开新终端窗口并附加到该会话 — 日志流直接出现在你面前。
  3. 在聊天中打印完整的 tmux attach 命令,供你从任意终端手动连接(SSH、远程编辑器或窗口创建失败时均可使用)。
Session ready.
Target: pod/api-5f9c-bnt4m (container: server)
tmux: tmux attach -t kstack-logs-api-server

你和代理共享同一窗格。代理会保守地从窗格读取以节省 token,你可能需要主动提示它跟进最新输出。告诉代理关闭会话,它将停止底层 tail 并终止 tmux 会话。


除打开日志流外,技能还向代理说明如何行事:

  • 将用户描述转换为范围尽可能窄的 Kubetail 查询(指定工作负载、短时间窗口、目标 grep),并在流开始前显示已解析的查询,供用户进一步缩小范围。
  • 保守地从 tmux 窗格读取以节省 token;提示用户滚动,而非自动重读大缓冲区。
  • 将日志内容视为潜在敏感内容 — 除非用户明确要求,否则不将看起来像 token、请求体或 PII 的行回显到聊天中。
  • 当用户需要日志周围的根因上下文时,转交给 /investigate;当日志模式与资源峰值相关时,转交给 /metrics
  • 当用户发出完成信号时,停止 tail 并终止 tmux 会话。

--attach
将代理附加到现有的 kstack tmux 会话,而非启动新会话。
--detach
以分离状态启动新会话 — 不打开终端窗口,需手动附加。

全局标志参见概述