模型提议。HeavenBase 可执行——或只把 JSON 交给你然后退后。
chat、stream 或 LLMSession 传入 tools,HeavenBase 会归一化 schema、运行可执行 callable,并通过 include 投影完整轮次。
1. 可传入的内容 (What You Can Pass)
tools 列表接受:
- OpenAI 兼容 function schema 字典。
- 带类型注解与 docstring 的普通 Python callable。
- HeavenBase
Tool对象。 - HeavenBase
Toolkit对象,包括用Toolkit.from_fastmcp(...)导入的 MCP 服务器。
tool_calls 返回。可执行工具自动运行,其 role="tool" 结果消息出现在 delta 与 messages 中。
Tool 执行错误序列化为结构化 tool 结果内容:
2. 仅 Schema 的工具 (Schema-Only Tools)
由其他进程执行调用时使用仅 schema 的工具:tool_calls 形状返回。
3. 可执行工具 (Executable Tools)
需要 HeavenBase 为模型运行工具时使用函数或工具集 (Toolkit):add 时,HeavenBase 追加 assistant tool-call 消息、tool 结果消息,再向模型请求最终答案。典型 delta 如下:
max_tool_turns 控制 assistant 迭代次数(Python 默认 8,CLI 映射自 --max-steps):
achat 而非 chat。
4. MCP 作为工具集 (MCP as Toolkit)
MCP 服务器导入为 HeavenBase 工具集 (Toolkit) 后成为普通工具:/mcp SOURCE 添加另一 MCP 来源。hb llm chat --max-steps 限制 tool 循环中的 assistant 迭代;默认 20。
5. 结构化输出 (Structured Output)
直接传入 OpenAI 兼容的response_format 参数:
structured_stream: false。
需要单一可靠载荷时强制非流式结构化调用:
stream(..., enforce_non_stream_structured=True),HeavenBase 执行一次非流式请求并 yield 单个投影块。
6. Tool-Call 修复 (Tool-Call Repair)
部分 provider 在tool_calls[].function.arguments 中返回畸形 JSON。HeavenBase 可在执行前修复常见错误——围栏代码块、括号不平衡、缺失必填字段。
修复默认关闭。全局启用:
strict: true 可在修复失败时抛出异常,而非返回原始参数。修复行为细节见 Advanced LLM。

