跳转至

jianmu

适用对象:Python 框架使用者 是否必读:是 相关模块:jianmu.tree, jianmu.node, jianmu.tool, jianmu.model

1. 模块职责

jianmu 根入口现在主要承接框架的高层用户入口与核心原语,不再同时承接大量行为树底层原语。

如果你在找行为树组合子、状态或装饰器,应优先进入 jianmu.tree;如果你在找内建节点,应进入 jianmu.node。

2. 适合查什么

  • 高层运行入口:Agent
  • 运行时与状态:RunContext、StateManager、ReactiveRunner
  • 异步/同步节点基类:Node、AsyncNode
  • 预制组合:create_react_node、create_plan_execute_node
  • 约束入口:Constraints

3. 使用建议

  • 想写一个最小 demo,先从这里导入
  • 行为树原语统一从 jianmu.tree 导入
  • 具体能力统一去一级模块,例如 jianmu.node、jianmu.tool、jianmu.guard
  • 顶层兼容导出仅用于迁移旧代码,不建议继续用于新代码

这里还有两个需要特别说明的 alias:

  • Node 是给用户使用的同步节点基类名,它对应 jianmu 运行时语义层的基础节点
  • AsyncNode 是推荐暴露给用户的异步节点名,用来表达“这是支持异步执行的节点基类”

也就是说,新用户通常只需要理解 Node / AsyncNode 这两个概念,不必先区分底层别名来源。

4. 最小示例

from pydantic import BaseModel

from jianmu import Agent
from jianmu.model import ModelClient
from jianmu.node.presets import create_react_node
from jianmu.tool import CalculatorTool


class AgentState(BaseModel):
    task: str = ""
    messages: list = []
    final_answer: str | None = None


model_client = ModelClient.resolve()
root = create_react_node(
    model_client=model_client,
    tools=[CalculatorTool()],
)

agent = Agent(root, state_schema=AgentState)

5. 常见入口

  • 想管理 durable state:看 StateManager
  • 想快速运行一个 agent:看 Agent
  • 想直接驱动树执行:看 ReactiveRunner
  • 想写装饰器式工具或节点:分别看 jianmu.tool、jianmu.node
  • 想快速搭一个 agent:看 create_react_node()、create_plan_execute_node()

6. 迁移说明

历史版本曾从 jianmu 顶层公开大量对象,包括树原语、telemetry、执行层和配置对象。

当前版本中:

  • 正式顶层 API 以 __all__ 为准
  • 旧顶层对象可能仍能通过兼容层访问
  • 兼容层会发出 DeprecationWarning
  • 新代码应改用对应 canonical path,例如 jianmu.tree、jianmu.telemetry、jianmu.memory

尤其不建议继续把 jianmu.node.builtin、jianmu.tool.builtin 这样的实现组织路径写进新代码示例。

7. API 参考

顶层入口本身主要是一个聚合层,详细 API 请分别查看: