Files
beaver_project/projcet_review/backend_blueprint/foundation.html
steven_li 6e9e74d1ee feat(engine): 添加运行时上下文支持并重构工具迭代限制
添加 RuntimeContext 类用于捕获模型运行时的日期时间信息,
包括UTC时间、本地时间和时区信息,并在系统提示中显示这些信息。

同时增加最大上下文消息数和工具迭代次数的配置选项,
将验证服务从引擎加载器中移除,并更新相关的数据结构和接口。

BREAKING CHANGE: 移除了验证服务,相关字段被替换为证据状态和接受状态。

- 添加 RuntimeContext 类和相关渲染方法
- 增加 max_context_messages 和 max_tool_iterations 配置
- 移除 ValidationService 相关代码
- 更新消息记录中的验证状态字段
- 添加原始工具调用检测和回退处理
2026-05-26 11:18:35 +08:00

61 lines
3.6 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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">-&gt;</div>
<div class="step"><strong>运行目标解析</strong>main / auxiliary / embedding target</div><div class="arrow">-&gt;</div>
<div class="step"><strong>能力底座</strong>MessageBus / EmbeddingRetriever / Cron models</div><div class="arrow">-&gt;</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>