添加 RuntimeContext 类用于捕获模型运行时的日期时间信息, 包括UTC时间、本地时间和时区信息,并在系统提示中显示这些信息。 同时增加最大上下文消息数和工具迭代次数的配置选项, 将验证服务从引擎加载器中移除,并更新相关的数据结构和接口。 BREAKING CHANGE: 移除了验证服务,相关字段被替换为证据状态和接受状态。 - 添加 RuntimeContext 类和相关渲染方法 - 增加 max_context_messages 和 max_tool_iterations 配置 - 移除 ValidationService 相关代码 - 更新消息记录中的验证状态字段 - 添加原始工具调用检测和回退处理
61 lines
3.6 KiB
HTML
61 lines
3.6 KiB
HTML
<!doctype html>
|
||
<html lang="zh-CN">
|
||
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Foundation 模块蓝图</title><link rel="stylesheet" href="blueprint.css"></head>
|
||
<body><main class="page">
|
||
<header class="topbar"><h1>Foundation</h1><p>底座模块提供配置、事件、cron 数据模型和 embedding 检索。它不直接处理业务请求,而是让上层 runtime 有稳定的配置来源、轻量事件通道和通用相似度检索能力。</p></header>
|
||
<nav class="nav"><a href="index.html">索引</a><a href="services.html">Services</a><a href="engine.html">Engine</a><a href="prompt-atlas.html">Prompt Atlas</a></nav>
|
||
<section class="content">
|
||
<h2>大模块流程</h2>
|
||
<div class="flow">
|
||
<div class="step"><strong>环境/文件配置</strong><code>Config.load()</code></div><div class="arrow">-></div>
|
||
<div class="step"><strong>运行目标解析</strong>main / auxiliary / embedding target</div><div class="arrow">-></div>
|
||
<div class="step"><strong>能力底座</strong>MessageBus / EmbeddingRetriever / Cron models</div><div class="arrow">-></div>
|
||
<div class="step"><strong>上层消费</strong>EngineLoader、SkillAssembler、ToolAssembler、CronService</div>
|
||
</div>
|
||
|
||
<h2>小模块拆分</h2>
|
||
<article class="module">
|
||
<h3>config</h3>
|
||
<p>负责把环境变量和配置文件收敛为 runtime 可用的 provider、embedding、workspace、数据库、MCP、cron 等配置。上层不会直接散读环境变量,而是通过配置对象解析目标。</p>
|
||
<div class="subflow">
|
||
<div>读取环境/默认值,形成配置对象。</div>
|
||
<div>入口传入 model/provider_name 时,覆盖或补充默认 provider target。</div>
|
||
<div><code>resolve_provider_target()</code>、<code>resolve_embedding_target()</code> 输出 provider factory 能消费的字典。</div>
|
||
</div>
|
||
<p class="meta">关键文件:<code>beaver/foundation/config/*</code></p>
|
||
</article>
|
||
|
||
<article class="module">
|
||
<h3>events</h3>
|
||
<p>轻量消息总线,给内部组件做事件发布/订阅。当前核心链路更多依赖 session event 记录,MessageBus 是后续异步投影、通知、可观察性的扩展点。</p>
|
||
<div class="subflow">
|
||
<div>组件注册 handler。</div>
|
||
<div>业务动作发布消息。</div>
|
||
<div>订阅者异步消费,不反向污染核心执行逻辑。</div>
|
||
</div>
|
||
</article>
|
||
|
||
<article class="module">
|
||
<h3>cron models</h3>
|
||
<p>定义 cron job、run record、payload、状态等结构。Services 层用这些模型创建计划任务、记录触发历史,并把结果映射成 notification 或 Task。</p>
|
||
<div class="subflow">
|
||
<div>CronJob 保存用户配置、调度表达式和 payload。</div>
|
||
<div>CronRunRecord 保存单次触发、输出、错误、关联 task/run。</div>
|
||
<div>CronService 负责状态迁移,AgentService 负责真正执行。</div>
|
||
</div>
|
||
</article>
|
||
|
||
<article class="module">
|
||
<h3>embedding</h3>
|
||
<p>通用 embedding retriever 被 skill 和 tool 装配共用。它输入 query 和候选项,输出 top-k 候选;当远程 embedding 不可用时,有 fallback top-k 机制保证链路不完全中断。</p>
|
||
<div class="subflow">
|
||
<div>候选项统一渲染为 name/description/text。</div>
|
||
<div>调用 embedding runtime 计算相似度。</div>
|
||
<div>按 top-k 输出候选,供 LLM 二次选择或直接加入工具集。</div>
|
||
</div>
|
||
</article>
|
||
|
||
<h2>核对点</h2>
|
||
<p>这个模块主要是“稳定输入”。后续如果修改 provider、embedding 或 cron 行为,优先核对配置解析是否继续保持单一入口,避免在 Service 或 Engine 中散落环境变量读取。</p>
|
||
</section></main></body></html>
|