文档阅读区

05 · Core & Apps Boundary (v0.5)

v0.4 已明确 Core/Apps 的职责边界与"不得直连 DB / 必须 Event 驱动 / 必须审计"等红线,并进一步把 Apps 定义为 Source + RulePack + Views 的交付单元
v0.5 在此基础上,新增 Prompt Registry + LLM Gateway + AI Actions,使 LLM 成为 Core 的受控工具。


1. Core 的职责(v0.5)

Core 必须保持"领域无关",并对外提供统一治理能力:

1.1 v0.4 已有职责

  • 世界模型:Type / Entity / View / Event / Rule
  • 事件治理:
    • Ingest Gateway(认证、校验、标准化、脱敏)
    • Schema Registry(schema 版本管理)
    • EventBus / Event Store(事件主链路)
  • 统一查询与渲染:
    • Query API(Events/Aggregates/Alerts/Audits/Search)
    • View Renderer(统一渲染与鉴权,App 只交付 View 模板)
  • 运行时引擎:
    • RuleEngine(过滤/聚合/触发)
    • Projection(可选:把部分外部事件投影成实体状态)
    • ViewQuery(事件流/告警/审计查询)
  • 动作与审计:
    • Action Executor(统一动作入口)
    • Audit Trail(证据链、导出)
  • App Host:
    • 安装/启用/禁用/升级 Apps
    • Registry(action/tool/schema/rulepack/source 定义)

1.2 v0.5 新增职责

  • Prompt Registry
    • Prompt 模板管理(版本化、output_schema)
    • PromptPack 安装(从 App 安装)
    • Prompt 渲染和输出校验
  • LLM Gateway
    • 统一 LLM 接入(OpenAI/Dify/本地模型)
    • 限流/缓存/重试
    • Context Pack 组装(从 eventIds/alertIds/entityIds/timeRange/viewPreset 组装上下文)
    • 结构化输出校验
  • AI Actions(只读)
    • invoke_llm_summary - 对 alert / event thread 做摘要、建议
    • invoke_llm_report - 日报/周报
    • invoke_llm_generate_doc - 会议纪要/PRD/里程碑草案/任务拆解输出为"草稿"
  • 审计增强
    • tool_call 记录增强(prompt 版本、模型版本、输出 hash、tokens、校验结果)

2. App 的职责(v0.5)

每个 App 仓库面向一个领域,交付:

2.1 v0.4 已有职责

  • Event Types + Schemas(必需)
  • RulePack(可选但推荐)
  • Views 模板(强烈建议)
  • Collector 定义(可选)
    • push agent 的采集配置模板(例如 prometheus exporter / shell probe)
    • 或 pull connector 的抓取定义
  • (可选)Action/Tool Provider
  • (可选)UI:仅在需要专用交互时提供;常规可视化优先用 View 模板

2.2 v0.5 新增职责

  • PromptPack(可选但推荐)
    • 文件:prompts/promptpack.yaml
    • 包含多个 Prompt 模板
    • 安装时自动注册到 Prompt Registry
  • AI 功能使用
    • 在 RulePack 中使用 AI Actions
    • 定义 Prompt 模板(任务分解、会议纪要、告警分析等)
    • 定义输出 Schema(结构化输出)

3. 禁区红线(继续严格执行)

3.1 v0.4 已有红线

  1. App 不得直连 Core 数据库(包括读)
  2. 所有业务状态变化必须通过 Event 驱动投影(禁止绕过 Event 直接写 entities)
  3. 所有工具/动作调用必须可审计(tool_call + action_log + events)
  4. Collector/Agent 不得直接执行破坏性动作(必须通过 Core 的 Action Executor 走审批/审计策略)

3.2 v0.5 新增红线

  1. AI 一律"受控":模型/agent/rag 都是 Core 的 Action/Tool Provider
  2. v0.5 禁止:模型直接改 Task/Rule/Config
  3. v0.5 禁止:AI 自动执行修复(v0.6 才支持受控执行)
  4. v0.5 必须:AI 输出只写 ai_insights/docs_drafts,并发 ai.* 事件
  5. v0.5 必须:人工确认后才能落地为真实实体

4. 对接方式(v0.5 推荐)

4.1 v0.4 已有方式

  • App → Core:通过 Core API/SDK 写入事件、读取配置
  • Core → App:通过 HTTP Plugin 调用 action/tool(需要时)
  • Agent → Core:只走 Ingest API(不直接进业务 API)

4.2 v0.5 新增方式

  • App → Core(Prompt):通过 PromptPack 安装 Prompt 模板
  • App → Core(LLM):在 RulePack 中使用 AI Actions,通过 LLM Gateway 调用
  • Core → App(Context):Core 根据 context_refs 调用 Query API 组装上下文

5. View 与 Search 的边界(必须强调,v0.4 已有)

  • 通用视图(Event/Alert/Audit/Search)由 Core 提供渲染与 Query API
  • App 提供 View 模板(ViewConfig),但不得让前端绕过 Core 直连 ES/OpenSearch/Kafka/数据库
  • 存储/搜索后端可替换,不应影响 App Views
  • v0.5 新增:AI 洞察和文档草稿也通过 Core Query API 查询

6. AI 受控原则(v0.5 核心)

6.1 LLM 作为 Core 的受控工具

  • 统一接入:所有 LLM 调用都通过 LLM Gateway
  • 受控调用:限流、缓存、重试、审计
  • 结构化输出:支持 JSON Schema 校验
  • 上下文组装:输入只用引用,由 Core Query API 组装 context pack

6.2 Prompt 作为 App 的交付物

  • PromptPack:App 可以交付 PromptPack(类似 RulePack)
  • 版本化:每个 Prompt 模板都有版本号
  • 按 App 组织:Prompt 模板按 App ID 组织(project.*ops.*

6.3 AI Actions 作为只读工具

  • 只读:v0.5 只允许生成草稿和洞察,不允许直接改实体
  • 人工确认:所有 AI 输出都需要人工确认后才能落地
  • 全审计:所有 AI 调用都有完整的审计记录

文档版本: v1.0
最后更新: 2025-12-17