MCP 是门口;Toolkit 决定哪些房间装门把手。
1. 动机
运行时 Toolkit 可以包装实时对象、工作区闭包或远程 FastMCP 服务器。这些值现在可以服务工具,却不一定能在以后恢复。持久 Toolkit 必须引用持久 Capsule,并属于一个显式应用工作区。 因此 HeavenBase 把构造、持久化、profile 组装与传输保留为不同操作。同一个Tool 契约跨越这些操作,而每个边界仍然可检查。
2. 使用 Tool API
3. 使用 Capsule API
include_cloudpickle 默认为 False。即使指纹验证成功,恢复与执行仍是可信代码操作。
4. 使用 Toolkit API
ws= 时会使用仅加载已有项的 hb.HeavenBase.load()。它绝不会创建工作区。
5. 理解工作区自有数据行
Capsule 是必需 Extension 根。Toolkit 是打包默认根。
Toolkit.register(ws=...) 确保工作区拥有 Toolkit 与引用的 Capsule 行。
独立 Capsule.register() 使用高级 Context 私有隐藏存储做机器/领域管理。不要把该存储与应用 Toolkit 持久化混为一谈。
6. 使用工作区 MCP 工具
workspace.to_mcp(profile=...) 与 workspace.serve(profile=...) 组装 Registry 支持的 Toolkit family。核心工作区 family 包括:
这里没有通用
alter_entity 或 undefine_entity MCP 工具。实体迁移、物理清理、Catalog 变更与恢复需要显式领域策略,之后才适合交给智能体。
7. 选择 Profile
Profile 是mcp_profile Registry 记录。它们组合精确工具名、Toolkit family、Entity 与 Skill 范围、一个序列化器、依赖与可选 extends。
外部模块可以通过
meta.yaml 发布自己的 Toolkit family 与 profile。所属 Context 会在工作区组装前解析它们;可选 family 只通过声明的 workspace_requires 激活。
8. 使用 MCP CLI
所有 Toolkit 命令都接受或解析一个已有工作区:REF 接受 Toolkit id、name 或 namespace/name:version。
9. 服务并验证
heavenbase.mcp。把未认证 HTTP 保留在 loopback。若无需长生命周期网络服务器,本地编码智能体集成请使用 stdio。
10. 导出 Anthropic Programmatic Tools
allowed_callers、名称、描述与输入模式。从 code execution 调用时,执行适配器应返回字符串。
11. 应用信任检查清单
- 审核 Capsule source、层、模式与序列化器。
- 除非已审核本地代码确实需要,否则关闭二进制回退。
- 在显式应用工作区持久化具体 Toolkit。
- 使用支持任务的最小 profile。
- 给外部工具加命名空间,并拒绝冲突。
- 在 Tool 或所属 API 边界验证不可信参数。
- 让文件系统、凭据、网络与破坏性权威保持显式。
- 通过目标传输测试真实 list/call 行为。
摘要
- Tool、Capsule 与 Toolkit API 共享一个 callable 执行模型。
- 持久 Toolkit 与 Capsule 属于显式应用工作区。
- Profile、serializer 与传输配置让 MCP 权威可检查。

