LLM 什么都不记得。这是特性——直到你想要它记得。
hb.LLM 有意保持无状态。对话历史只是你传给 chat 或 stream 的消息列表。需要多轮 chat 又不想每次重建该列表时,LLMSession 替你持有历史与可选工具。
1. 无会话的手动历史 (Manual History Without a Session)
只需一两轮时,你可以自行管理历史:2. 会话工具 (Session Tools)
LLMSession 可持有会话工具并在每轮使用。工具遵循与 LLM.chat 相同的 tools=[...] 契约:接受 Python 可调用对象、Tool、工具集 (Toolkit) 与 schema 字典。
role="tool" 结果与最终 assistant 响应存入 messages。完整可执行工具契约见 Tool Use。
3. 会话生命周期 (Session Lifecycle)
LLMSession 为交互式工作流提供小型辅助方法:
to_dict() 与 from_dict() 返回 JSON 安全载荷,遵循相同的消息专用契约。
4. CLI 交互式会话 (CLI Interactive Sessions)
以chat preset 启动多轮 CLI 会话:
>>> 提示符下输入消息。斜杠命令:
启动时用重复的
--mcp 值附加 MCP 工具:
/mcp 添加更多工具:
namespace.toolkit:version。负版本从最新往回数:-1 为最新,-2 为次新。
当 provider 单独输出思考内容时,CLI 会话在可见 assistant 文本前将其打印在 <think> 与 </think> 内。工具迭代逐步打印 STEPS: 001 / 020,随后是 tool call 与 tool 结果。
5. 检查解析状态 (Inspect Resolved State)
需要查看 client 如何解析时使用spec:
spec.to_dict() 省略密钥。spec.to_dict(secrets=True) 包含物化后的解析字典,仅应在可信调试场景使用。
解析后的 spec 还会产生用于去重与缓存查找的稳定哈希键:
client_key() 仅包含入口 (Gateway) client 构造字段,因此重复的 LLM 实例可复用同一内存中的 OpenAI 兼容 SDK client。

