数据截至 (上游 commit 460c729002dc)
第 2 章 · 需求与规则
本章讲什么: BeeAI 最值得学的一块。你声明「什么时候允许 / 强制哪个工具」,框架每一轮把这些声明折叠成一张「通行证」,直接变成发给模型的
tools和tool_choice。本章拆开这个折叠算法,并指出它的优先级语义里一个容易误解的地方。
2.1 最小单位:Rule 的五个开关
一条规则说的是「某个工具在这一轮的处境」,只有五个字段(外加一个说明理由的字符串):
# python/beeai_framework/agents/requirement/requirements/requirement.py:27-33
class Rule(BaseModel):
target: str # 作用于哪个工具(按名字)
allowed: bool = True # 能不能用
reason: str | None = None # 为什么(会渲染进系统提示)
prevent_stop: bool = False # 禁止 agent 这一轮收尾
forced: bool = False # 必须用它
hidden: bool = False # 连提都不提(不出现在系统提示里)
五个开关的语义差别值得摆成表:
| 开关 | 模型能在工具列表里看到吗 | 模型能调吗 | 典型用途 |
|---|---|---|---|
| 默认 |