@Preview(value="3.8.1") public class ContractNetProtocol extends TeamProtocolBase
核心特征:引入竞争性招标机制。支持 Supervisor 显式招标工具与 Agent 自主投标工具,配合算法自动打分兜底。
| 限定符和类型 | 类和说明 |
|---|---|
static class |
ContractNetProtocol.ContractState |
| 限定符和类型 | 字段和说明 |
|---|---|
static java.lang.String |
ID_BIDDING |
config| 构造器和说明 |
|---|
ContractNetProtocol(TeamAgentConfig config) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
buildGraph(org.noear.solon.flow.GraphSpec spec)
构建协作拓扑图(定义节点间的连接关系)
|
protected org.noear.snack4.ONode |
constructBid(Agent agent,
Prompt prompt)
算法兜底打分:基于关键词匹配
|
ContractNetProtocol.ContractState |
getContractState(TeamTrace trace) |
void |
injectAgentTools(org.noear.solon.flow.FlowContext context,
Agent agent,
java.util.function.Consumer<FunctionTool> receiver)
注入 Agent 协议专属工具(如转交、抄送等控制工具)
|
void |
injectSupervisorInstruction(java.util.Locale locale,
java.lang.StringBuilder sb)
注入 Supervisor 静态系统指令(定义全局调度准则)
|
void |
injectSupervisorTools(org.noear.solon.flow.FlowContext context,
java.util.function.Consumer<FunctionTool> receiver)
注入 Supervisor 协议专属工具(如转交、抄送等控制工具)
|
protected boolean |
isLogicFinished(TeamTrace trace)
SOP 完备性检查:默认保护最后一位 Agent 必须参与过(防止跳步)
|
java.lang.String |
name()
获取协议唯一标识(如 SEQUENTIAL, SWARM, HIERARCHICAL)
|
Prompt |
prepareAgentPrompt(TeamTrace trace,
Agent agent,
Prompt originalPrompt,
java.util.Locale locale)
动态生成 Agent 提示词(在此处处理上下文衔接或状态同步)
|
void |
prepareSupervisorInstruction(org.noear.solon.flow.FlowContext context,
TeamTrace trace,
java.lang.StringBuilder sb)
注入 Supervisor 动态决策指令(如实时进度、环境感知)
|
java.lang.String |
resolveSupervisorRoute(org.noear.solon.flow.FlowContext context,
TeamTrace trace,
java.lang.String decision)
解析路由目标(将决策文本语义化为节点 ID)
|
void |
startNewBidding(TeamTrace trace) |
getCandidateAgents, injectAgentInstruction, isLastNAgentsParticipated, linkAgents, shouldSupervisorRoute, sniffJsonclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitonAgentEnd, onSupervisorRouting, onTeamFinished, prepareSupervisorContext, resolveAgentOutput, shouldSupervisorExecutepublic static final java.lang.String ID_BIDDING
public ContractNetProtocol(TeamAgentConfig config)
public ContractNetProtocol.ContractState getContractState(TeamTrace trace)
public void startNewBidding(TeamTrace trace)
public java.lang.String name()
TeamProtocolpublic void buildGraph(org.noear.solon.flow.GraphSpec spec)
TeamProtocolpublic void injectAgentTools(org.noear.solon.flow.FlowContext context,
Agent agent,
java.util.function.Consumer<FunctionTool> receiver)
TeamProtocolpublic Prompt prepareAgentPrompt(TeamTrace trace, Agent agent, Prompt originalPrompt, java.util.Locale locale)
TeamProtocolpublic void injectSupervisorTools(org.noear.solon.flow.FlowContext context,
java.util.function.Consumer<FunctionTool> receiver)
TeamProtocolpublic java.lang.String resolveSupervisorRoute(org.noear.solon.flow.FlowContext context,
TeamTrace trace,
java.lang.String decision)
TeamProtocolresolveSupervisorRoute 在接口中 TeamProtocolresolveSupervisorRoute 在类中 TeamProtocolBasepublic void prepareSupervisorInstruction(org.noear.solon.flow.FlowContext context,
TeamTrace trace,
java.lang.StringBuilder sb)
TeamProtocolpublic void injectSupervisorInstruction(java.util.Locale locale,
java.lang.StringBuilder sb)
TeamProtocolinjectSupervisorInstruction 在接口中 TeamProtocolinjectSupervisorInstruction 在类中 TeamProtocolBaseprotected org.noear.snack4.ONode constructBid(Agent agent, Prompt prompt)
protected boolean isLogicFinished(TeamTrace trace)
TeamProtocolBaseisLogicFinished 在类中 TeamProtocolBase