taolib.harness.agents.templates#

Agent 模板集合 - 预置可复用的 Agent 图结构模板与工厂方法。

本模块通过 AgentTemplate 枚举对外暴露内置模板的标识, 并提供 create_from_template() 作为统一的工厂入口。

示例:

from taolib.harness.agents.templates import AgentTemplate, create_from_template

agent = create_from_template(
    AgentTemplate.REACT,
    config={"name": "my-react", "version": "0.1.0"},
)
result = agent.invoke({"query": "hello"})

新模板可通过 register_template() 注入到全局表中,便于业务侧扩展。

Classes#

AgentTemplate

预置 Agent 模板枚举。

PlanAndExecuteAgent

计划-执行模式 Agent 模板。

RouterAgent

路由模式 Agent 模板。

Functions#

create_from_template(...)

根据模板枚举构造 Agent 实例。

register_template(→ None)

注册一个新的 Agent 模板(或覆盖已有模板)。

Package Contents#

class taolib.harness.agents.templates.AgentTemplate#

Bases: enum.StrEnum

预置 Agent 模板枚举。

Initialize self. See help(type(self)) for accurate signature.

PLAN_AND_EXECUTE = 'plan_and_execute'#
REACT = 'react'#
ROUTER = 'router'#
class taolib.harness.agents.templates.PlanAndExecuteAgent(config: AgentConfig | collections.abc.Mapping[str, Any], *, registry: taolib.harness.core.registry.AgentRegistry | None = None, checkpointer: taolib.harness.runtime.checkpointer.HarnessCheckpointer | None = None, auto_register: bool = True)#

Bases: taolib.harness.agents.graph_agent.ReActAgent

计划-执行模式 Agent 模板。

在 ReAct 基础上引入显式的 plan 阶段:先生成多步计划,再按计划逐步执行 与观察。本占位实现复用 ReAct 的循环骨架,子类可重写 reason() 注入 实际的计划生成逻辑。

构造 Agent。

参数:
  • config -- AgentConfig 实例或可被其校验的字典。

  • registry -- 自定义 Agent 注册表;缺省使用全局默认注册表。

  • checkpointer -- 自定义检查点适配器;缺省构造内存型实例。

  • auto_register -- 是否在构造时自动注册到 registry

async reason(state: dict[str, Any]) dict[str, Any]#

以"先计划再推理"的方式产出下一步意图。

class taolib.harness.agents.templates.RouterAgent(config: AgentConfig | collections.abc.Mapping[str, Any], *, registry: taolib.harness.core.registry.AgentRegistry | None = None, checkpointer: taolib.harness.runtime.checkpointer.HarnessCheckpointer | None = None, auto_register: bool = True)#

Bases: taolib.harness.agents.graph_agent.GraphAgent

路由模式 Agent 模板。

将输入分类后转发给对应的子 Agent / 工具。本基础实现提供单层 router → handler 的图骨架,routes 通过 AgentConfig.extra 字段(routes 键)配置:

AgentConfig(name="router", extra={"routes": {"qa": qa_node, "search": search_node}})

构造 Agent。

参数:
  • config -- AgentConfig 实例或可被其校验的字典。

  • registry -- 自定义 Agent 注册表;缺省使用全局默认注册表。

  • checkpointer -- 自定义检查点适配器;缺省构造内存型实例。

  • auto_register -- 是否在构造时自动注册到 registry

build_graph() taolib.harness.agents.graph_agent.GraphSpec#

返回 Agent 的图结构声明。

子类应在此声明所有节点函数与边连接,基类负责后续编译。

async fallback(state: dict[str, Any]) dict[str, Any]#

无匹配路由时的兜底节点。

async route(state: dict[str, Any]) dict[str, Any]#

计算路由键并写入 _route

taolib.harness.agents.templates.create_from_template(template: AgentTemplate | str, config: taolib.harness.agents.graph_agent.AgentConfig | collections.abc.Mapping[str, Any], /, **kwargs: Any) taolib.harness.agents.graph_agent.GraphAgent#

根据模板枚举构造 Agent 实例。

参数:
  • template -- 模板枚举或其字符串值。

  • config -- Agent 配置(AgentConfig 或可被其校验的字典)。

  • **kwargs -- 透传给具体 Agent 构造函数的额外参数(如 registrycheckpointerauto_register 等)。

抛出:

KeyError -- 当模板未注册时抛出。

taolib.harness.agents.templates.register_template(template: AgentTemplate | str, agent_cls: type[taolib.harness.agents.graph_agent.GraphAgent]) None#

注册一个新的 Agent 模板(或覆盖已有模板)。