模块知识库/Vibe-Trading 量化交易智能体平台/Vibe-Trading 交互式 CLI 与子命令框架/编码规范
- 每个 slash 命令实现为一个独立模块,暴露统一的
run(ctx, *args) 签名,由 cli.main._dispatch_slash 通过 importlib.import_module 动态加载并调用。
- 命令注册采用不可变
Command dataclass + 全局 SLASH_COMMANDS 元组,新增命令通过 idempotent 注册函数检查已存在名后再拼接新元组,避免重复覆盖。
- 对可能失败的 I/O(SessionStore、SQLite FTS5、preflight、工具导入)一律使用 try/except 包裹并以 best-effort 方式降级,绝不让外部依赖阻塞 REPL 主循环。
- 富文本渲染统一通过
cli.theme.get_console() 获取 Rich Console,组件返回 Rich renderable(Text/Panel/Table)以便被 console.print 或直接放入 Live group。
- 特权操作(kill switch、mandate commit、connector/data 子命令)在 REPL 输入路径中先于模型调用进行拦截,不经过 agent loop,确保用户可直接终止交易而不依赖模型响应。
- 批量统计(模型名、技能数、工具数、会话数)通过
_collect_banner_stats 缓存并在刷新标志下重建,避免每次 keystroke 重复 import 昂贵模块。