@Preview(value="3.8.1")
public interface TeamProtocol
extends org.noear.solon.lang.NonSerializable
核心职责:定义多智能体协作的拓扑结构、指令干预逻辑与路由治理机制。
| 限定符和类型 | 字段和说明 |
|---|---|
static org.slf4j.Logger |
LOG |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
buildGraph(org.noear.solon.flow.GraphSpec spec)
构建协作拓扑图(定义节点间的连接关系)
|
default void |
injectAgentInstruction(org.noear.solon.flow.FlowContext context,
Agent agent,
java.util.Locale locale,
java.lang.StringBuilder sb)
注入 Agent 行为约束指令(定义角色规范)
|
default void |
injectAgentTools(org.noear.solon.flow.FlowContext context,
Agent agent,
java.util.function.Consumer<FunctionTool> receiver)
注入 Agent 协议专属工具(如转交、抄送等控制工具)
|
default void |
injectSupervisorInstruction(java.util.Locale locale,
java.lang.StringBuilder sb)
注入 Supervisor 静态系统指令(定义全局调度准则)
|
default void |
injectSupervisorTools(org.noear.solon.flow.FlowContext context,
java.util.function.Consumer<FunctionTool> receiver)
注入 Supervisor 协议专属工具(如转交、抄送等控制工具)
|
java.lang.String |
name()
获取协议唯一标识(如 SEQUENTIAL, SWARM, HIERARCHICAL)
|
default void |
onAgentEnd(TeamTrace trace,
Agent agent)
Agent 节点执行结束回调
|
default void |
onSupervisorRouting(org.noear.solon.flow.FlowContext context,
TeamTrace trace,
java.lang.String nextAgent)
确定路由目标后的最终回调
|
default void |
onTeamFinished(org.noear.solon.flow.FlowContext context,
TeamTrace trace)
协作任务结束清理
|
default Prompt |
prepareAgentPrompt(TeamTrace trace,
Agent agent,
Prompt originalPrompt,
java.util.Locale locale)
动态生成 Agent 提示词(在此处处理上下文衔接或状态同步)
|
default void |
prepareSupervisorContext(org.noear.solon.flow.FlowContext context,
TeamTrace trace,
java.lang.StringBuilder sb)
注入 Supervisor 决策上下文(如待办事项、黑板状态)
|
default void |
prepareSupervisorInstruction(org.noear.solon.flow.FlowContext context,
TeamTrace trace,
java.lang.StringBuilder sb)
注入 Supervisor 动态决策指令(如实时进度、环境感知)
|
default java.lang.String |
resolveAgentOutput(TeamTrace trace,
Agent agent,
java.lang.String content)
解析并适配 Agent 输出(在记录轨迹前进行内容转换)
|
default java.lang.String |
resolveSupervisorRoute(org.noear.solon.flow.FlowContext context,
TeamTrace trace,
java.lang.String decision)
解析路由目标(将决策文本语义化为节点 ID)
|
default boolean |
shouldSupervisorExecute(org.noear.solon.flow.FlowContext context,
TeamTrace trace)
决策准入干预(返回 false 则跳过 LLM 智能决策,用于固定流程)
|
default boolean |
shouldSupervisorRoute(org.noear.solon.flow.FlowContext context,
TeamTrace trace,
java.lang.String decision)
路由决策预干预(允许协议在此处强行改变跳转方向)
|
java.lang.String name()
void buildGraph(org.noear.solon.flow.GraphSpec spec)
default void injectAgentTools(org.noear.solon.flow.FlowContext context,
Agent agent,
java.util.function.Consumer<FunctionTool> receiver)
default void injectAgentInstruction(org.noear.solon.flow.FlowContext context,
Agent agent,
java.util.Locale locale,
java.lang.StringBuilder sb)
default Prompt prepareAgentPrompt(TeamTrace trace, Agent agent, Prompt originalPrompt, java.util.Locale locale)
default java.lang.String resolveAgentOutput(TeamTrace trace, Agent agent, java.lang.String content)
default void injectSupervisorTools(org.noear.solon.flow.FlowContext context,
java.util.function.Consumer<FunctionTool> receiver)
default void injectSupervisorInstruction(java.util.Locale locale,
java.lang.StringBuilder sb)
default void prepareSupervisorInstruction(org.noear.solon.flow.FlowContext context,
TeamTrace trace,
java.lang.StringBuilder sb)
default void prepareSupervisorContext(org.noear.solon.flow.FlowContext context,
TeamTrace trace,
java.lang.StringBuilder sb)
default boolean shouldSupervisorExecute(org.noear.solon.flow.FlowContext context,
TeamTrace trace)
throws java.lang.Exception
java.lang.Exceptiondefault java.lang.String resolveSupervisorRoute(org.noear.solon.flow.FlowContext context,
TeamTrace trace,
java.lang.String decision)
default boolean shouldSupervisorRoute(org.noear.solon.flow.FlowContext context,
TeamTrace trace,
java.lang.String decision)
default void onSupervisorRouting(org.noear.solon.flow.FlowContext context,
TeamTrace trace,
java.lang.String nextAgent)
default void onTeamFinished(org.noear.solon.flow.FlowContext context,
TeamTrace trace)