Skip to main content
Toolkit 是一套小型 API,为 Python 与智能体都穿上了合脚的鞋。

1. 动机

同一个函数很容易先为 Python 包装一次,再为 MCP 包装一次,最后为模型提供商包装第三次。随后这些包装器会在名称、模式、序列化器、持久化与授权上产生分歧。 HeavenBase 使用三个可组合值:
  • Capsule 拥有可执行 manifest 与恢复契约。
  • Tool 拥有一个公共工具名、模式、执行 Capsule 与序列化器。
  • Toolkit 拥有有序 Tool 集,以及持久化与导出行为。
具体持久化属于一个显式应用工作区。这样 Toolkit 行、引用的 Capsule 行、Context 权威与清理会待在一起。

2. 构建函数式 Tool

Tool 接受普通 callable、已有 Capsule 或装饰器选项。它为本地调用保留包装签名,同时为智能体边界暴露 JSON 兼容工具模式。 默认序列化器生成紧凑 JSTR 输出。只有当某个工具需要不同文本边界时,才设置自定义 callable 或 Capsule。

3. 组合 Toolkit

Toolkit 接受列表、(name, item) 对、映射、Capsule、Tool 或 callable。add(...)add_many(...)@toolkit.tool(...) 都会把项目规范化为同一个 Tool 契约。 run(...) 返回原始 Python 值。run_to_str(...) 把该值交给 MCP 与智能体客户端使用的 Tool 序列化器。

4. 在显式工作区中持久化

register(ws=...) 存储一条 sys-toolkit 行,以及每个 Tool 引用的主 sys-capsule 与 serializer sys-capsule 行。相同 id 内容默认使用覆盖模式;需要显式冲突策略时使用 on_conflict="raise""skip" 省略 ws= 会使用仅加载已有项的 hb.HeavenBase.load()。它绝不会创建默认工作区或进程全局 Toolkit 存储。

5. 加载、列出、描述与删除

加载会惰性恢复引用的 Capsule。delete(...) 默认写入 tombstone。删除 Toolkit 行不会自动删除其他 Toolkit 可能引用的 Capsule 行。 版本是显式字符串。公共工具契约改变时使用新版本;可复现性重要时主动选择版本。

6. 导出 FastMCP 服务器

使用 to_mcp_json(...) 打印客户端配置,使用 serve(...) 运行传输。除非另一个可信层提供认证与传输安全,否则网络服务器应留在 loopback。 Toolkit.from_fastmcp(...) 在实时服务器上创建客户端 Toolkit。运行时代理 Tool 无法持久化,因为它们闭包捕获的是服务器句柄,而不是持久函数。

7. 把工作区变成限定范围的 Toolkit

工作区 Toolkit 通过 MCP profile 组装已注册 Toolkit family。Profile 限定精确工具、实体、Skill 与一个序列化器。可选领域 family 只通过其声明的工作区要求激活。 打包 profile 包括: 运行时工作区 Toolkit 无法持久化,因为其函数闭包捕获一个实时工作区。请改为把底层 profile 与 Toolkit-family 定义持久化为 Registry 模块记录。

8. 发布外部 Toolkit Family

外部模块可以声明:
  • 带持久 builder 目标与精确工具名的 toolkit_family
  • 带工具、实体、Skill、序列化器、依赖与可选 extendsmcp_profile
  • 当打包序列化器不合适时使用的 mcp_serializer
工作区 Context 会在组装前解析这些记录。给每个公共工具加命名空间,验证 builder 输出与声明清单一致,并拒绝冲突,而不是依赖导入顺序。 请查看 GlossWise 案例研究:该模块贡献一个领域 family,以及读取、本地文件与策展 profile。

9. 保持窄智能体边界

Tool 以服务器进程的权威运行 Capsule 代码。暴露前请审核 callable、模式、序列化器、profile 范围与输入验证。
  • 优先选择支持任务的最小 profile。
  • 对 Agent/MCP 使用仅关键字参数分派,并验证不可信输入。
  • 让文件系统、网络、凭据与破坏性权威保持显式。
  • full 视为可信管理。
  • 把应用逻辑保留在工作区 API 中;Tool 函数应保持为薄适配器。
  • 测试精确导出模式与真实 list/call 往返。

摘要

  • Tool 在一个函数式契约背后规范化 callable 与 Capsule。
  • 持久 Toolkit 与引用的 Capsule 属于显式应用工作区。
  • Profile 与 serializer 让 Agent 权威保持狭窄且可检查。

进一步探索

相关资源: