agentic_huge_data_base / wiki
页面 jcode · 8 后台主动模式与安全系统·DeepWiki 中文全文译文

8 · 后台主动模式与安全系统(Ambient Mode and Safety System)

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

项目jcode 章节8 状态全文译文 模块系统架构、智能体运行时、界面与交互、记忆与上下文
源码线索
  • docs/AMBIENT_MODE.md
  • docs/MEMORY_ARCHITECTURE.md
  • docs/MEMORY_BUDGET.md
  • docs/SAFETY_SYSTEM.md
  • src/ambient.rs
  • src/ambient_runner.rs
  • src/channel.rs
  • src/notifications.rs
  • src/safety.rs
  • src/tool/ambient.rs
模块标签
  • 系统架构
  • 智能体运行时
  • 界面与交互
  • 记忆与上下文
  • 认证、权限与安全

中文译文

后台主动模式与安全系统(中文译文)

原始 DeepWiki 页面:https://deepwiki.com/1jehuang/jcode/8-ambient-mode-and-safety-system
翻译时间:2026-05-27T08:45:21.030Z
翻译模型:deepseek-chat
原文字符数:6808
项目:jcode (jcode)

---

环境模式与安全系统

相关源文件

以下文件被用作生成此 Wiki 页面的上下文:

  • docs/AMBIENT_MODE.md
  • docs/MEMORY_ARCHITECTURE.md
  • docs/MEMORY_BUDGET.md
  • docs/SAFETY_SYSTEM.md
  • src/ambient.rs
  • src/ambient_runner.rs
  • src/channel.rs
  • src/notifications.rs
  • src/safety.rs
  • src/tool/ambient.rs
  • tests/e2e/main.rs

环境模式是一种主动的后台执行状态,允许 jcode 在无需用户直接监督的情况下自主执行"园艺"、"侦察"和"工作"任务 docs/AMBIENT_MODE.md:6-16。为确保这些自主操作始终处于人类控制之下,系统由安全系统进行管理,该系统将操作分类为不同层级,并管理权限请求/通知生命周期 docs/SAFETY_SYSTEM.md:6-17

系统总览

后台运行器、代理和安全控制之间的关系围绕 AmbientRunnerHandleSafetySystem 展开。

  • 环境模式:一个管理自主代理周期的后台循环。它使用 AdaptiveScheduler 根据资源可用性和用户活动确定唤醒间隔 src/ambient.rs:12
  • 安全系统:一个拦截工具调用的分类引擎。它判断操作是 AutoAllowed(第 1 层)还是 RequiresPermission(第 2 层)src/safety.rs:15-18
  • 通知分发器:一个多通道系统(ntfy.sh、电子邮件、桌面通知、Telegram、Discord),用于在后台代理需要干预或完成一个周期时提醒用户 src/notifications.rs:3-8src/channel.rs:25-57
自然语言到代码实体的映射

下图将文档中描述的"环境周期"概念桥接到实现该生命周期的具体 Rust 实体。

环境周期执行桥接

graph TD
    subgraph "自然语言概念"
        GARDEN["园艺(内存维护)"]
        SCOUT["侦察(上下文分析)"]
        WORK["主动工作(代码变更)"]
    end

    subgraph "代码实体空间(src/)"
        AR["AmbientRunnerHandle"]
        AS["AmbientStatus"]
        ACR["AmbientCycleResult"]
        EACT["EndAmbientCycleTool"]
    end

    subgraph "逻辑实现"
        RL["run_loop in src/ambient/runner.rs"]
        SS["SafetySystem in src/safety.rs"]
    end

    AR -->|管理| AS
    RL -->|执行| GARDEN
    RL -->|执行| SCOUT
    RL -->|执行| WORK
    WORK -->|被拦截| SS
    EACT -->|完成| ACR
    ACR -->|报告| AR

来源:src/ambient.rs:69-83src/ambient.rs:147-160src/tool/ambient.rs:108-146docs/AMBIENT_MODE.md:92-143

---

环境运行器与调度器

AmbientRunnerHandle 是管理后台操作的主要接口。它维护 AmbientStatus(空闲、运行中、已调度、暂停或禁用),并与 AdaptiveScheduler 协调以唤醒代理 src/ambient.rs:69-83

关键组件:
  • AmbientRunnerHandle:提供对后台状态的线程安全访问,允许 TUI 和服务器触发或启动周期 src/ambient_runner.rs:3-4
  • VisibleCycleContext:促进后台环境进程与可见 TUI 会话之间的"交接",将状态持久化到 ~/.jcode/ambient/visible_cycle.json src/ambient.rs:35-46
  • ScheduledItem:优先级队列(低、正常、高)中的持久化任务,定义代理在唤醒时应执行的操作,并通过 ScheduleTarget 指定结果交付位置 src/ambient.rs:113-133

关于资源感知调度和基于 EWMA 的间隔计算的详细信息,请参见 环境运行器与调度器

来源:src/ambient.rs:35-133src/ambient_runner.rs:1-4

---

安全系统与通知

安全系统充当 Agent 的守门员。在执行工具之前,系统使用 classify 方法评估其 ActionTier src/safety.rs:157-164

操作分类层级:
层级分类示例
第 1 层AutoAllowedreadgloblsmemorycodesearchgrep src/safety.rs:110-122
第 2 层RequiresPermission不在 AUTO_ALLOWED 白名单中的任何操作,例如代码修改、PR 创建或外部通信 src/safety.rs:162-164
权限生命周期:

当尝试执行第 2 层操作时,代理会调用 request_permission 工具。这会创建一个 PermissionRequest,并将其添加到 SafetySystem 的审核队列中 src/safety.rs:167-179。然后,NotificationDispatcher 通过配置的通道(如 ntfy.sh、桌面通知或使用 jcode-notify-email crate 的 SMTP 电子邮件)发送警报 src/notifications.rs:105-130。它还支持通过 Telegram 和 Discord 进行交互式回复循环,以实现远程审批 src/channel.rs:74-83

安全请求流程

sequenceDiagram
    participant Agent as "代理(src/agent/)"
    participant Safety as "安全系统(src/safety.rs)"
    participant Queue as "审核队列(src/safety.rs)"
    participant Notify as "通知分发器(src/notifications.rs)"
    participant Chan as "消息通道(src/channel.rs)"

    Agent->>Safety: classify(action_name)
    Safety-->>Agent: ActionTier::RequiresPermission
    Agent->>Safety: request_permission(PermissionRequest)
    Safety->>Queue: 推入 Mutex<Vec<PermissionRequest>>
    Safety->>Notify: dispatch_permission_request(action, desc, id)
    Notify->>Chan: send_all(text)
    Chan-->>用户: ntfy / 电子邮件 / Telegram / Discord
    用户->>Chan: 回复 "approve req_123"
    Chan->>Safety: record_permission_via_file(request_id, approved)
    Safety-->>Agent: PermissionResult::Approved

来源:src/safety.rs:128-179src/notifications.rs:48-130src/channel.rs:142-205docs/SAFETY_SYSTEM.md:153-187

关于分类规则、审核队列和通知通道配置的详细信息,请参见 安全系统与通知

---

子页面
  • 环境运行器与调度器:深入探讨 AmbientRunnerHandleAdaptiveScheduler、资源感知唤醒间隔以及 AmbientStatus 生命周期。
  • 安全系统与通知:关于 ActionTier 逻辑、PermissionRequest 生命周期以及 NotificationDispatcher 实现(包括电子邮件、ntfy.sh 和聊天机器人集成)的技术细节。