大模块流程
环境/文件配置Config.load()
->
运行目标解析main / auxiliary / embedding target
->
能力底座MessageBus / EmbeddingRetriever / Cron models
->
上层消费EngineLoader、SkillAssembler、ToolAssembler、CronService
小模块拆分
config
负责把环境变量和配置文件收敛为 runtime 可用的 provider、embedding、workspace、数据库、MCP、cron 等配置。上层不会直接散读环境变量,而是通过配置对象解析目标。
读取环境/默认值,形成配置对象。
入口传入 model/provider_name 时,覆盖或补充默认 provider target。
resolve_provider_target()、resolve_embedding_target() 输出 provider factory 能消费的字典。
关键文件:beaver/foundation/config/*
events
轻量消息总线,给内部组件做事件发布/订阅。当前核心链路更多依赖 session event 记录,MessageBus 是后续异步投影、通知、可观察性的扩展点。
组件注册 handler。
业务动作发布消息。
订阅者异步消费,不反向污染核心执行逻辑。
cron models
定义 cron job、run record、payload、状态等结构。Services 层用这些模型创建计划任务、记录触发历史,并把结果映射成 notification 或 Task。
CronJob 保存用户配置、调度表达式和 payload。
CronRunRecord 保存单次触发、输出、错误、关联 task/run。
CronService 负责状态迁移,AgentService 负责真正执行。
embedding
通用 embedding retriever 被 skill 和 tool 装配共用。它输入 query 和候选项,输出 top-k 候选;当远程 embedding 不可用时,有 fallback top-k 机制保证链路不完全中断。
候选项统一渲染为 name/description/text。
调用 embedding runtime 计算相似度。
按 top-k 输出候选,供 LLM 二次选择或直接加入工具集。
核对点
这个模块主要是“稳定输入”。后续如果修改 provider、embedding 或 cron 行为,优先核对配置解析是否继续保持单一入口,避免在 Service 或 Engine 中散落环境变量读取。