Skip to main content
宽广 API 仍然可以只有一扇正门;消防出口只需贴好标签。

1. 动机

把每个提供商类、Registry helper、查询片段与界面编译器都导入首个用户示例,会让包看起来比应用更难。隐藏所有高级接缝则会产生相反问题:集成开始依赖私有模块。 HeavenBase 保留宽广的惰性根入口,同时推荐一个精简的首读界面。应用示例从 import heavenbase as hb 开始;只有任务真正需要某个边界时,高级作者才进入所属包。

2. 从主要界面开始

这条流程就是默认心智模型:定义、打开、注册、写入、查询,再选择结果导出。

3. 使用正确的工作区入口

显式 preset=backends= 值会断言持久构造。冲突会抛出 FileExistsErrorrelease() 移除实时外观并保留 Backend 数据;drop() 销毁所属物理数据。

4. 分离模式与数据行生命周期

注册建立规范类、放置、物理模式与 MetaSchema 投影。普通数据行操作要求该类已经存在,绝不会把注册模式变成副作用。 hb.Agent 等根动态 Extension Entity 导出通过 hb.DEFAULT_CONTEXT 解析。跨 Context 代码应使用目标工作区中的规范类,而不是把 Python 类身份当作持久身份。

5. 把查询与 Frame 视为值

每个流式变换都返回新的 hb.Query;这里没有可变 builder、copyfork API。execute() 重新计算并返回全新分离的 hb.ResultFrame 使用显式结果出口:
  • rows() 用于 JSON 风格数据行字典
  • scalar() 用于单单元格终结结果
  • to_pandas()to_pyarrow()to_numpy()to_pydantic()to_daft() 用于类型化消费者
  • idscolumn(...) 用于聚焦检查
在依赖提供商行为前使用 query.explain() 检查所选 Backend、策略、处理器、原生/回退模式与不支持原因。

6. 使用 Context 绑定的智能体与 LLM API

需要隔离时传递所属 Context。工作区 MCP profile 限定工具、实体、Skill 与序列化器;full 是管理 profile,不是面向不可信智能体的默认项。 具体 Toolkit 持久化由工作区拥有。Toolkit.registerloadlistdescribedelete 接受 ws=;省略时使用仅加载已有项的 hb.HeavenBase.load(),绝不会创建隐藏 Toolkit 存储。

7. 从所属包使用高级 API

使用 hb.ext 编写 Registry 支持的后端、处理器、策略、操作、profile、序列化器与 Extension。普通应用入门应留在根入口。

8. 避免已退役兼容路径

0.1.2.1 架构在以下位置没有兼容包:
  • heavenbase.registry
  • heavenbase.storage
  • heavenbase.handlers
  • heavenbase.frame
  • heavenbase.discovery
请改用 heavenbase.utils.registryheavenbase.placementheavenbase.executionheavenbase.capabilities。SQL 资源位于 heavenbase.database.resources.sql;Toolkit 提示位于 heavenbase.toolkit.prompts

9. 保守阅读 API 契约

  • 当实现导入很重时,公共根导出会保持惰性。
  • 已注册标签描述语义声明;它们不证明可执行支持。
  • 独立 Backend 不会形成分布式事务。
  • 工作区清单导出构造、请求的 Extension 根与模式,而不是数据行。
  • 已安装可执行模块与 Capsule 是可信代码边界。
  • 提供商特定原生行为应通过 explain() 与聚焦测试验证。

摘要

  • 主要 API 拥有应用工作流;高级 API 公开狭窄引擎接缝。
  • Context 与工作区参数保留运行时权威。
  • 已退休兼容包不是扩展点。

进一步探索

相关资源: