Skip to main content
AgentModule 是你定义智能体行为时要实现的核心契约。它负责智能体如何思考的全部内容:状态初始化、提示词构造、决策逻辑以及状态归约,但它不执行循环本身。执行循环由 Engine(执行内核)负责。

泛型参数

AgentModule 有三个泛型类型参数:
一个完整的强类型声明通常长这样:

六个钩子

AgentModule 定义了六个钩子。其中两个是必需的init_statereduce。其余钩子都是可选的,并且有合理默认值。

init_state(必需)

每次运行开始时调用一次。你需要返回一个初始状态对象,通常基于任务字符串初始化。
所有传给 Engine.run()agent.run() 的关键字参数都会流到这里,所以你可以通过 kwargs 接收 max_steps 或其他初始化字段。

reduce(必需)

每次动作循环结束后调用。它把旧状态、新观测结果和本步决策归约成下一步状态——这是智能体从执行结果中学习的地方,也是归约的核心机制。
reduce 必须返回 state 或一个新的状态对象。返回 None 会触发运行时错误。

build_system_prompt(可选)

返回动态系统提示词;如果返回 None,则本步不使用系统提示词。它会在每个决策步骤之前调用,因此提示词可以根据当前状态动态变化。
默认实现返回 None

prepare(可选)

把当前状态转成模型可直接消费的文本,也就是用户轮次。默认行为是 str(state)。通常你会覆写它,把多个状态字段组织成结构化输入。

decide(可选)

如果你想在 Engine 走默认大模型调用路径之前插入自定义决策逻辑,就覆写它。返回 None 时,Engine 会继续走模型调用与解析器路径。

should_stop(可选)

在每步 reduce 之后额外检查一次停止条件。返回 True 会终止运行。Engine 的内置停止条件仍会继续叠加生效。

一个最小可运行示例

在 QitOS 里,公开的最小示例依然是一个真实的编码智能体:它会配置模型、挂载工作区,并让 Engine 驱动工具使用与验证。

如何运行智能体

调用 agent.run() 即可执行一个任务。这是最常用的入口。它会在内部创建 Engine、运行循环,并返回结果。
agent.run() 最常见参数如下:
如果你需要更细粒度的控制,例如自定义钩子、分支选择器,或在多次运行之间复用同一个 Engine,可以使用 agent.build_engine(**kwargs),然后直接调用 engine.run(task)

构造函数参数

AgentModule.__init__ 支持这些参数,全部可选: