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 已有红线
- App 不得直连 Core 数据库(包括读)
- 所有业务状态变化必须通过 Event 驱动投影(禁止绕过 Event 直接写 entities)
- 所有工具/动作调用必须可审计(tool_call + action_log + events)
- Collector/Agent 不得直接执行破坏性动作(必须通过 Core 的 Action Executor 走审批/审计策略)
3.2 v0.5 新增红线
- AI 一律"受控":模型/agent/rag 都是 Core 的 Action/Tool Provider
- v0.5 禁止:模型直接改 Task/Rule/Config
- v0.5 禁止:AI 自动执行修复(v0.6 才支持受控执行)
- v0.5 必须:AI 输出只写
ai_insights/docs_drafts,并发ai.*事件 - 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