For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
主导航
Codex

Codex use case

添加 Mac 遥测

使用 Codex 和 Logger 为一项 Mac 功能添加遥测,运行应用,并通过统一日志验证该操作。

Difficulty 高级
Time horizon 30 分钟

使用 Codex 和 Build macOS Apps 插件,围绕窗口、侧边栏、命令或同步流程添加少量高信噪比的 Logger 事件,然后运行应用,并通过“控制台”或 log stream 证明相应操作已正确触发。

最适合

  • 需要 Codex 可靠跟踪窗口打开、侧边栏选择、菜单命令、菜单栏操作、同步里程碑或回退路径的 Mac 应用功能
  • 由 Codex 修补代码、重新运行应用、检查日志,并基于证据而非猜测确定下一项修复的智能体调试循环
  • 需要通过精简序列记录用户操作和应用生命周期事件,并在多次运行之间进行比较的本地应用会话采集循环

Contents

    ← 全部使用场景

    添加 Mac 遥测

    使用 Codex 和 Logger 为一项 Mac 功能添加遥测,运行应用,并通过统一日志验证该操作。

    使用 Codex 和 Build macOS Apps 插件,围绕窗口、侧边栏、命令或同步流程添加少量高信噪比的 Logger 事件,然后运行应用,并通过“控制台”或 log stream 证明相应操作已正确触发。

    高级
    30 分钟

    使用 Codex 和 Build macOS Apps 插件,围绕窗口、侧边栏、命令或同步流程添加少量高信噪比的 Logger 事件,然后运行应用,并通过“控制台”或 log stream 证明相应操作已正确触发。

    高级
    30 分钟

    最适合

    • 需要 Codex 可靠跟踪窗口打开、侧边栏选择、菜单命令、菜单栏操作、同步里程碑或回退路径的 Mac 应用功能
    • 由 Codex 修补代码、重新运行应用、检查日志,并基于证据而非猜测确定下一项修复的智能体调试循环
    • 需要通过精简序列记录用户操作和应用生命周期事件,并在多次运行之间进行比较的本地应用会话采集循环

    技能与插件

    • 使用 macOS 遥测及构建/运行技能添加结构化 `OSLog` 日志埋点,启动应用,走一遍 UI 路径,并通过“控制台”或 `log stream` 验证输出的事件。
    Skill Why use it
    Build macOS Apps 使用 macOS 遥测及构建/运行技能添加结构化 `OSLog` 日志埋点,启动应用,走一遍 UI 路径,并通过“控制台”或 `log stream` 验证输出的事件。

    入门提示

    使用 Build macOS Apps 插件,围绕 [name one Mac feature or action flow] 添加轻量级统一日志记录,然后运行应用,并通过日志验证这些事件是否按预期顺序触发。 约束: - 优先使用 `Logger`(来自 `OSLog`),不要使用 `print`,并为该功能创建清晰的 subsystem/category 组合,以便轻松筛选日志。 - 在每个重要的操作边界或状态转换处记录一行简洁日志,例如窗口打开、侧边栏选择更改、菜单命令调用、同步开始、同步完成或进入回退路径。 - 长期保留的 `info` 日志应保持稳定且信噪比高。仅将 `debug` 用于较为冗杂的本地细节,并在完成前移除临时日志埋点或降低其级别。 - 不要在日志中记录机密、身份验证令牌、个人数据或原始文档内容。如必须记录标识符,请选择最安全的隐私标注并说明原因。 - 构建并运行应用,自行走一遍该功能路径,并使用“控制台”或针对性的 `log stream` 谓词验证事件。 - 如果流程较长、间歇出现或更适合手动复现,请将筛选后的日志流保存到一个小型本地会话跟踪文件中;必要时让我手动操作应用,然后读取该文件并总结事件时间线。 - 如果预期事件未出现,请将日志埋点移到更靠近疑似控制路径的位置,重新运行该流程并继续迭代,直到日志能解释发生了什么。 交付: - 新增的日志记录器设置和具体添加的事件 - 所用的确切“控制台”筛选条件或 `log stream` 谓词 - 一份简短的 before/after 摘要,说明现在可通过日志观察到什么 - 如果过程演变为较长的采集会话,还需提供保存的跟踪文件和时间线摘要 - 一两行代表性日志,证明该流程已正确添加日志埋点
    使用 Build macOS Apps 插件,围绕 [name one Mac feature or action flow] 添加轻量级统一日志记录,然后运行应用,并通过日志验证这些事件是否按预期顺序触发。 约束: - 优先使用 `Logger`(来自 `OSLog`),不要使用 `print`,并为该功能创建清晰的 subsystem/category 组合,以便轻松筛选日志。 - 在每个重要的操作边界或状态转换处记录一行简洁日志,例如窗口打开、侧边栏选择更改、菜单命令调用、同步开始、同步完成或进入回退路径。 - 长期保留的 `info` 日志应保持稳定且信噪比高。仅将 `debug` 用于较为冗杂的本地细节,并在完成前移除临时日志埋点或降低其级别。 - 不要在日志中记录机密、身份验证令牌、个人数据或原始文档内容。如必须记录标识符,请选择最安全的隐私标注并说明原因。 - 构建并运行应用,自行走一遍该功能路径,并使用“控制台”或针对性的 `log stream` 谓词验证事件。 - 如果流程较长、间歇出现或更适合手动复现,请将筛选后的日志流保存到一个小型本地会话跟踪文件中;必要时让我手动操作应用,然后读取该文件并总结事件时间线。 - 如果预期事件未出现,请将日志埋点移到更靠近疑似控制路径的位置,重新运行该流程并继续迭代,直到日志能解释发生了什么。 交付: - 新增的日志记录器设置和具体添加的事件 - 所用的确切“控制台”筛选条件或 `log stream` 谓词 - 一份简短的 before/after 摘要,说明现在可通过日志观察到什么 - 如果过程演变为较长的采集会话,还需提供保存的跟踪文件和时间线摘要 - 一两行代表性日志,证明该流程已正确添加日志埋点

    在调试线索模糊处添加一个 Logger

    此用例适用于仅靠代码审查难以查明“发生了某些情况”的 Mac 应用流程。请让 Codex 围绕某个行为添加少量高信噪比的统一日志,运行应用并触发该行为,然后通过“控制台”或 log stream 验证预期事件是否已触发。

    请在该循环中使用 Build macOS Apps 插件。其 macOS 遥测技能刻意保持轻量:使用 Apple 的 Logger,选择清晰的子系统/类别组合,在操作边界和状态转换处记录日志,避免写入敏感数据,并在本地构建/运行后验证事件,而不是想当然地认为日志埋点已正确接入。

    遥测为何有助于智能体工程

    高质量的日志能让 Codex 在每次修补代码后形成可重复的反馈循环。智能体无需让您手动检查每个窗口、菜单操作或同步转换,而是可以运行应用、走一遍流程、检查筛选后的日志,并根据证据决定下一项代码改动。

    这对以下三种智能体循环尤其有用:

    • 无需手动干预的调试循环: Codex 为疑似有问题的流程添加日志埋点,启动应用,点击侧边栏或触发命令,读取生成的日志序列,修补状态更新路径,然后重复运行同一流程,直至日志与 UI 行为一致。
    • 应用会话采集循环: Codex 分别添加事件来记录应用启动、窗口打开、侧边栏选择、导入开始、导入完成和导入失败,然后运行本地会话并总结所得时间线,使缺失或顺序错误的状态转换一目了然。
    • 人工驱动的采集循环: Codex 启用日志记录并启动应用,在您手动走一遍棘手流程期间持续运行针对性的日志流,之后检查捕获的会话,并根据该跟踪记录提出下一项补丁。

    保持日志埋点精简且便于筛选

    请让 Codex 为每个功能领域设置一个日志记录器,而不是为每次状态变更都永久保留一行日志。使用 WindowingCommandsMenuBarSidebarSyncImport 这类功能类别,可让下一轮调试更轻松地筛选日志。

    import OSLog
    
    private let logger = Logger(
      subsystem: Bundle.main.bundleIdentifier ?? "SampleApp",
      category: "Sidebar"
    )
    
    @MainActor
    func selectItem(_ item: SidebarItem) {
      logger.info("Selected sidebar item: \(item.id, privacy: .public)")
      selection = item.id
    }

    对于应长期发挥作用的简洁操作事件和生命周期事件,请使用 info;对于较为冗杂、可能在任务完成前被移除或降低级别的本地状态详情,请使用 debug。仅在测量某段操作的耗时时添加标记点,不要默认添加。

    让 Codex 用日志证明事件已触发

    有价值的不只是添加 Logger 调用。请让 Codex 运行应用,触发已添加日志埋点的流程,并提供它使用的确切“控制台”筛选条件或 log stream 谓词,以及一两行代表性日志。

    log stream --style compact --predicate 'subsystem == "com.example.app" && category == "Sidebar"'

    如果预期事件未出现,请让 Codex 将日志埋点移到更靠近疑似控制路径的位置,重新运行同一流程,并持续迭代,直到日志能解释发生了什么。如果任务转为崩溃或回溯分析,请切换到该插件的构建/运行调试工作流,并让遥测继续聚焦于操作边界。

    保存会话跟踪记录,供 Codex 后续分析

    对于持续时间较长或间歇出现的错误,请让 Codex 将针对性的日志流保存到一个小型本地跟踪文件中,总结时间线,并将该产物留在工作空间内,这样 Codex 后续运行时即可检查相同证据,无需凭记忆重新还原整个会话。这样更便于进行多轮调试,例如让一次智能体运行采集跟踪记录,再让另一次运行比较补丁应用前后的行为。

    当需要人工操作会话的一部分时,这种方式也很合适。请让 Codex 在便于记录日志的调试循环中启动应用,开始筛选采集并等待您手动复现问题,完成后再读取已保存的跟踪文件。

    实用技巧

    每次只为一项功能添加日志埋点

    先从一个侧边栏、窗口、命令或同步路径开始,确保日志序列易于检查。该路径稳定可靠后,Codex 可将同一模式扩展到相邻流程。

    在提示中加入隐私要求

    请让 Codex 说明记录的每个标识符,并避免将机密、个人数据或原始内容写入统一日志。对于本地调试,使用一小组事件类型通常就足够了。

    在最终摘要中保留示例输出

    与“已添加遥测”相比,代表性日志行更能让人确信改动有效。请让 Codex 提供筛选谓词和简短的操作时间线,以便下一次智能体运行复用同一验证循环。

    Tech stack

    Need

    应用日志记录

    Default options

    OSLog Logger

    Why it's needed

    结构化统一日志记录可为 Codex 提供范围明确且可筛选的反馈循环,而不会让代码库充斥 print 语句。

    Need

    智能体工作流

    Why it's needed

    该插件的遥测技能与构建/运行技能旨在配合使用:为一个流程添加日志埋点、启动应用、检查日志并收敛事件集。

    Need

    运行时验证

    Default options

    Console.app 和 log stream --predicate ...

    Why it's needed

    具体的日志筛选条件和示例输出可为智能体提供可复用的交接依据,也让新的日志埋点易于在多次运行中验证。

    Need Default options Why it's needed
    应用日志记录 OSLog Logger 结构化统一日志记录可为 Codex 提供范围明确且可筛选的反馈循环,而不会让代码库充斥 print 语句。
    智能体工作流 Build macOS Apps 插件 该插件的遥测技能与构建/运行技能旨在配合使用:为一个流程添加日志埋点、启动应用、检查日志并收敛事件集。
    运行时验证 Console.app 和 log stream --predicate ... 具体的日志筛选条件和示例输出可为智能体提供可复用的交接依据,也让新的日志埋点易于在多次运行中验证。

    相关使用场景