agentic_huge_data_base / wiki
页面 jcode · 14 Overnight 模式·DeepWiki 中文全文译文

14 · Overnight 模式(Overnight Mode)

代理式研究运行时 · 本章是 jcode DeepWiki 中文译文的独立章节页,保留原始链接、源码锚点、模块标签和章节层级。

项目jcode 章节14 状态全文译文 模块界面与交互、系统架构、工作流与编排、模型调用与提供方适配
源码线索
  • crates/jcode-overnight-core/Cargo.toml
  • crates/jcode-overnight-core/src/helper_tests.rs
  • crates/jcode-overnight-core/src/lib.rs
  • crates/jcode-overnight-core/src/prompts.rs
  • docs/AWS_BEDROCK_PROVIDER.md
  • src/overnight.rs
  • src/provider/bedrock.rs
  • src/subscription_catalog.rs
  • src/tui/app/commands_overnight.rs
  • src/tui/app/inline_interactive.rs
模块标签
  • 界面与交互
  • 系统架构
  • 工作流与编排
  • 模型调用与提供方适配
  • 测试、发布与运维

中文译文

Overnight 模式(中文译文)

原始 DeepWiki 页面:https://deepwiki.com/1jehuang/jcode/14-overnight-mode
翻译时间:2026-05-27T08:45:24.293Z
翻译模型:deepseek-chat
原文字符数:7055
项目:jcode (jcode)

---

过夜模式

相关源文件

以下文件为本维基页面的生成提供了上下文:

  • crates/jcode-overnight-core/Cargo.toml
  • crates/jcode-overnight-core/src/helper_tests.rs
  • crates/jcode-overnight-core/src/lib.rs
  • crates/jcode-overnight-core/src/prompts.rs
  • docs/AWS_BEDROCK_PROVIDER.md
  • src/overnight.rs
  • src/provider/bedrock.rs
  • src/subscription_catalog.rs
  • src/tui/app/commands_overnight.rs
  • src/tui/app/inline_interactive.rs
  • src/tui/app/tests/state_model_poke_03.rs
  • src/tui/app/tests/support_failover/part_01.rs
  • src/tui/app/tests/support_failover/part_02.rs
  • src/tui/ui_inline_interactive.rs

过夜模式是一个长时间运行的自主代理系统,旨在用户离线时执行复杂的多步骤工程任务。它将代理从被动响应的聊天助手转变为主动工作的自主执行者,能够管理自己的子会话、通过结构化的"任务卡片"跟踪进度,并生成一份全面的晨间报告供用户审阅。

核心组件与关系

该系统基于协调器-工作者架构构建。一个中央协调器会话负责管理高层任务,而各个工作者代理则被派发来执行具体任务。

系统架构图
graph TD
    subgraph "自然语言空间"
        User["用户任务提示"]
        MorningReport["晨间报告与审阅 HTML"]
    end

    subgraph "代码实体空间 (jcode-overnight-core)"
        Manifest["OvernightManifest [crates/jcode-overnight-core/src/lib.rs]"]
        TaskCards["OvernightTaskCard [crates/jcode-overnight-core/src/lib.rs]"]
        Events["OvernightEvent [crates/jcode-overnight-core/src/lib.rs]"]
    end

    subgraph "运行时与 TUI (src/)"
        App["App (TUI) [src/tui/app.rs]"]
        Cmds["handle_overnight_command [src/tui/app/commands_overnight.rs]"]
        Start["start_overnight_run [src/overnight.rs]"]
        AutoPoke["OvernightAutoPokeState [src/tui/app.rs]"]
    end

    User -->|"/overnight start"| Cmds
    Cmds --> Start
    Start -->|创建| Manifest
    Start -->|派发| Manifest
    Manifest -->|跟踪| TaskCards
    Manifest -->|记录| Events
    AutoPoke -->|轮询| App
    App -->|生成| MorningReport

来源:src/overnight.rs:54-167, src/tui/app/commands_overnight.rs:15-70, crates/jcode-overnight-core/src/lib.rs:47-82

---

过夜运行生命周期

过夜运行通过 /overnight start 斜杠命令启动。系统会创建一个 OvernightManifest 来跟踪元数据,包括目标唤醒时间和资源限制。

  • 初始化:系统会捕获一个"预检"快照,其中包含 Git 状态、资源使用情况(内存/CPU/电池)以及大语言模型(LLM)使用量预估 crates/jcode-overnight-core/src/lib.rs:168-173
  • 执行:协调器在可见或不可见的会话中运行,将提示链加入队列,引导代理完成任务的识别、执行和验证 src/overnight.rs:150-161
  • 状态机:运行过程会经历 OvernightRunStatus 中定义的状态:Running(运行中)、CancelRequested(已请求取消)、Completed(已完成)或 Failed(失败)crates/jcode-overnight-core/src/lib.rs:26-33
  • 资源采样:系统会每 5 分钟定期采样系统健康状态,以确保代理不会耗尽磁盘空间或电池电量 src/overnight.rs:30-31

有关命令集和状态转换的详细信息,请参阅 过夜运行生命周期

来源:src/overnight.rs:54-127, crates/jcode-overnight-core/src/lib.rs:26-33

---

进度跟踪与结构化输出

代理使用任务卡片来跟踪其进度。这些是结构化的 JSON 对象,代表各个工作单元,并根据其当前状态进行分类(例如 in_progress(进行中)、validated(已验证)、blocked(受阻))。

实体作用
OvernightTaskCard存储问题描述、变更证据和验证结果 crates/jcode-overnight-core/src/lib.rs:204-225
OvernightEvent重要操作的日志记录条目(例如 task_completed(任务完成)、handoff_requested(请求交接))crates/jcode-overnight-core/src/lib.rs:85-96
OvernightProgressCard针对 UI 优化的运行健康状态和完成百分比摘要 crates/jcode-overnight-core/src/lib.rs:248-264

来源:crates/jcode-overnight-core/src/lib.rs:204-264

---

TUI 集成与"自动轮询"

由于大语言模型(LLM)提供商在长时间运行的会话中可能会超时或返回空响应,TUI 实现了一种自动轮询机制。

  • OvernightAutoPokeState:跟踪 TUI 在代理停滞时自动提示其继续的次数 src/tui/app/commands_overnight.rs:11-13
  • 停滞检测:如果代理在 target_wake_at 时间之前停止响应,TUI 会发送一个"继续提示"来保持运行 src/tui/app/commands_overnight.rs:11-13
  • 视觉反馈:TUI 会在侧边栏中渲染一个持久的进度卡片,显示当前任务、内存使用情况和预计完成时间 src/tui/app/commands_overnight.rs:49-50

有关报告引擎和轮询限制的详细信息,请参阅 过夜模式 TUI 集成与报告

TUI 交互图
sequenceDiagram
    participant T as TUI (App)
    participant P as 提供商 (LLM)
    participant M as OvernightManifest

    T->>M: 检查状态与 target_wake_at
    Note over T: 如果空闲且未到唤醒时间
    T->>T: 增加 OVERNIGHT_MAX_POKES
    T->>P: 发送 build_continuation_prompt()
    P-->>T: 流式响应
    T->>M: record_event("auto_poke")

来源:src/tui/app/commands_overnight.rs:11-13, src/overnight.rs:132-147

---

晨间报告与审阅

在运行完成或到达唤醒时间后,系统会生成一份晨间报告。这是一个基于 HTML 的审阅页面(review.html),提供以下内容:

  1. 执行摘要:任务状态和高级别成果。
  2. 任务画廊:交互式卡片,显示每次变更的"之前"和"之后"快照。
  3. 验证日志:变更已通过测试的证据(例如测试输出、编译器日志)。
  4. 使用审计:最终的 Token 使用量和成本明细。

该报告可通过 /overnight review 命令访问 src/tui/app/commands_overnight.rs:172-180

来源:src/overnight.rs:64-72, crates/jcode-overnight-core/src/lib.rs:25-28