模块由两层组成:src/agent/ 提供 AgentLoop 运行时(loop.py),src/core/ 提供运行期状态与沙箱执行器。 - loop.py 中的 AgentLoop 是单一入口,封装五层上下文压缩(microcompact → context_collapse → auto_compact → compact tool → iterative update)、流式 LLM 调用、工具批处理(只读工具线程并行)、内容过滤器熔断、grounding 校验、goal 续接与 token 用量统计,并通过 _emit 事件回调向外暴露 thinking/text_delta/reasoning_delta/stream_reset 等事件。 - 依赖方向单向向下:AgentLoop 组合 ContextBuilder(context.py)、ToolRegistry(tools.py)、WorkspaceMemory(memory.py)、GroundingLedger(grounding.py)、TraceWriter(trace.py)、HeartbeatTimer(progress.py) 以及 RunStateStore(core/state.py),并调用外部 ChatLLM provider。 - core/state.py 的 RunStateStore 负责创建带时间戳+短后缀的唯一 run_dir(含 code/logs/artifacts 子目录)并以 fsync 写入 req.json 与 state.json(success/failed/cancelled)。 - core/runner.py 的 Runner 通过 subprocess.run 在独立进程中执行生成的 backtest 脚本,采用 VT-001 纵深防御:仅白名单环境变量传入、可选 UID 降至 vibe-sandbox、POSIX rlimit 限制虚拟内存与 fd、临时 HOME 仅 symlink 允许目录(cache/data-bridge/qveris.json),并在 POSIX 下通过 preexec_fn 设置 RLIMIT_AS/NOFILE;执行结束后按 artifacts_spec 扫描 equity/metrics/trades 等产物。 - 配置全部通过 src.config.accessor.get_env_config() 延迟加载,并提供 _override(name) monkeypatch 机制供测试覆盖阈值参数。