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 请分别查看: