AgentModule 是你定义智能体行为时要实现的核心契约。它负责智能体如何思考的全部内容:状态初始化、提示词构造、决策逻辑以及状态归约,但它不执行循环本身。执行循环由 Engine(执行内核)负责。
泛型参数
AgentModule 有三个泛型类型参数:
一个完整的强类型声明通常长这样:
六个钩子
AgentModule 定义了六个钩子。其中两个是必需的:init_state 与 reduce。其余钩子都是可选的,并且有合理默认值。
init_state(必需)
每次运行开始时调用一次。你需要返回一个初始状态对象,通常基于任务字符串初始化。
Engine.run() 或 agent.run() 的关键字参数都会流到这里,所以你可以通过 kwargs 接收 max_steps 或其他初始化字段。
reduce(必需)
每次动作循环结束后调用。它把旧状态、新观测结果和本步决策归约成下一步状态——这是智能体从执行结果中学习的地方,也是归约的核心机制。
build_system_prompt(可选)
返回动态系统提示词;如果返回 None,则本步不使用系统提示词。它会在每个决策步骤之前调用,因此提示词可以根据当前状态动态变化。
None。
prepare(可选)
把当前状态转成模型可直接消费的文本,也就是用户轮次。默认行为是 str(state)。通常你会覆写它,把多个状态字段组织成结构化输入。
decide(可选)
如果你想在 Engine 走默认大模型调用路径之前插入自定义决策逻辑,就覆写它。返回 None 时,Engine 会继续走模型调用与解析器路径。
should_stop(可选)
在每步 reduce 之后额外检查一次停止条件。返回 True 会终止运行。Engine 的内置停止条件仍会继续叠加生效。
一个最小可运行示例
在 QitOS 里,公开的最小示例依然是一个真实的编码智能体:它会配置模型、挂载工作区,并让 Engine 驱动工具使用与验证。如何运行智能体
调用agent.run() 即可执行一个任务。这是最常用的入口。它会在内部创建 Engine、运行循环,并返回结果。
agent.run() 最常见参数如下:
构造函数参数
AgentModule.__init__ 支持这些参数,全部可选:
