Documentation
¶
Index ¶
- func RegisterResearchRoles(registry *RoleRegistry) error
- type BroadcastCoordinator
- type CollaborationPattern
- type ConsensusCoordinator
- type Coordinator
- type DebateCoordinator
- type Message
- type MessageHub
- func (h *MessageHub) Close() error
- func (h *MessageHub) CreateChannel(agentID string)
- func (h *MessageHub) Receive(agentID string, timeout time.Duration) (*Message, error)
- func (h *MessageHub) RecoverMessages(ctx context.Context) error
- func (h *MessageHub) Send(msg *Message) error
- func (h *MessageHub) SendWithContext(ctx context.Context, msg *Message) error
- func (h *MessageHub) SetMessageStore(store persistence.MessageStore)
- func (h *MessageHub) StartRetryLoop(ctx context.Context, interval time.Duration)
- func (h *MessageHub) Stats(ctx context.Context) (*persistence.MessageStoreStats, error)
- type MessageType
- type MultiAgentConfig
- type MultiAgentSystem
- type NetworkCoordinator
- type PipelineConfig
- type PipelineCoordinator
- type RetryPolicy
- type RoleCapability
- type RoleDefinition
- type RoleExecuteFunc
- type RoleInstance
- type RolePipeline
- type RoleRegistry
- type RoleStatus
- type RoleTransition
- type RoleType
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterResearchRoles ¶
func RegisterResearchRoles(registry *RoleRegistry) error
RegisterResearchRoles 注册所有预定义的研究角色
Types ¶
type BroadcastCoordinator ¶
type BroadcastCoordinator struct {
// contains filtered or unexported fields
}
BroadcastCoordinator 广播协调器
func NewBroadcastCoordinator ¶
func NewBroadcastCoordinator(config MultiAgentConfig, hub *MessageHub, logger *zap.Logger) *BroadcastCoordinator
type CollaborationPattern ¶
type CollaborationPattern string
CollaborationPattern 协作模式
const ( PatternDebate CollaborationPattern = "debate" // 辩论模式 PatternConsensus CollaborationPattern = "consensus" // 共识模式 PatternPipeline CollaborationPattern = "pipeline" // 流水线模式 PatternBroadcast CollaborationPattern = "broadcast" // 广播模式 PatternNetwork CollaborationPattern = "network" // 网络模式 )
type ConsensusCoordinator ¶
type ConsensusCoordinator struct {
// contains filtered or unexported fields
}
ConsensusCoordinator 共识协调器
func NewConsensusCoordinator ¶
func NewConsensusCoordinator(config MultiAgentConfig, hub *MessageHub, logger *zap.Logger) *ConsensusCoordinator
type Coordinator ¶
type Coordinator interface {
Coordinate(ctx context.Context, agents map[string]agent.Agent, input *agent.Input) (*agent.Output, error)
}
Coordinator 协调器接口
type DebateCoordinator ¶
type DebateCoordinator struct {
// contains filtered or unexported fields
}
DebateCoordinator 辩论协调器
func NewDebateCoordinator ¶
func NewDebateCoordinator(config MultiAgentConfig, hub *MessageHub, logger *zap.Logger) *DebateCoordinator
type Message ¶
type Message struct {
ID string
FromID string
ToID string // 空表示广播
Type MessageType
Content string
Metadata map[string]any
Timestamp time.Time
}
Message Agent 间消息
type MessageHub ¶
type MessageHub struct {
// contains filtered or unexported fields
}
MessageHub 消息中心 支持持久化存储,防止消息丢失
func NewMessageHubWithStore ¶
func NewMessageHubWithStore(logger *zap.Logger, store persistence.MessageStore) *MessageHub
NewMessageHubWithStore 创建带持久化的消息中心
func (*MessageHub) CreateChannel ¶
func (h *MessageHub) CreateChannel(agentID string)
CreateChannel 创建通道
func (*MessageHub) RecoverMessages ¶
func (h *MessageHub) RecoverMessages(ctx context.Context) error
RecoverMessages 恢复未处理的消息(服务重启后调用)
func (*MessageHub) Send ¶
func (h *MessageHub) Send(msg *Message) error
Send 发送消息 如果配置了持久化存储,消息会先持久化再投递 即使 channel 满了,消息也不会丢失
func (*MessageHub) SendWithContext ¶
func (h *MessageHub) SendWithContext(ctx context.Context, msg *Message) error
SendWithContext 发送消息(带上下文) 修复竞态条件:使用单次锁定确保操作原子性
func (*MessageHub) SetMessageStore ¶
func (h *MessageHub) SetMessageStore(store persistence.MessageStore)
SetMessageStore 设置消息存储(用于依赖注入)
func (*MessageHub) StartRetryLoop ¶
func (h *MessageHub) StartRetryLoop(ctx context.Context, interval time.Duration)
StartRetryLoop 启动消息重试循环
func (*MessageHub) Stats ¶
func (h *MessageHub) Stats(ctx context.Context) (*persistence.MessageStoreStats, error)
Stats 获取消息统计信息
type MessageType ¶
type MessageType string
MessageType 消息类型
const ( MessageTypeProposal MessageType = "proposal" MessageTypeResponse MessageType = "response" MessageTypeVote MessageType = "vote" MessageTypeConsensus MessageType = "consensus" MessageTypeBroadcast MessageType = "broadcast" )
type MultiAgentConfig ¶
type MultiAgentConfig struct {
Pattern CollaborationPattern `json:"pattern"`
MaxRounds int `json:"max_rounds"` // 最大轮次
ConsensusThreshold float64 `json:"consensus_threshold"` // 共识阈值
Timeout time.Duration `json:"timeout"`
EnableVoting bool `json:"enable_voting"`
}
MultiAgentConfig 多 Agent 配置
func DefaultMultiAgentConfig ¶
func DefaultMultiAgentConfig() MultiAgentConfig
DefaultMultiAgentConfig 默认配置
type MultiAgentSystem ¶
type MultiAgentSystem struct {
// contains filtered or unexported fields
}
MultiAgentSystem 多 Agent 系统
func NewMultiAgentSystem ¶
func NewMultiAgentSystem(agents []agent.Agent, config MultiAgentConfig, logger *zap.Logger) *MultiAgentSystem
NewMultiAgentSystem 创建多 Agent 系统
type NetworkCoordinator ¶
type NetworkCoordinator struct {
// contains filtered or unexported fields
}
NetworkCoordinator 网络协调器
func NewNetworkCoordinator ¶
func NewNetworkCoordinator(config MultiAgentConfig, hub *MessageHub, logger *zap.Logger) *NetworkCoordinator
type PipelineConfig ¶
type PipelineConfig struct {
Name string `json:"name"`
Description string `json:"description"`
MaxConcurrency int `json:"max_concurrency"` // 最大并行角色数
Timeout time.Duration `json:"timeout"` // 整体超时
StopOnFailure bool `json:"stop_on_failure"` // 失败时停止
}
PipelineConfig 流水线配置
func DefaultPipelineConfig ¶
func DefaultPipelineConfig() PipelineConfig
DefaultPipelineConfig 返回默认流水线配置
type PipelineCoordinator ¶
type PipelineCoordinator struct {
// contains filtered or unexported fields
}
PipelineCoordinator 流水线协调器
func NewPipelineCoordinator ¶
func NewPipelineCoordinator(config MultiAgentConfig, hub *MessageHub, logger *zap.Logger) *PipelineCoordinator
type RetryPolicy ¶
type RetryPolicy struct {
MaxRetries int `json:"max_retries"` // 最大重试次数
Delay time.Duration `json:"delay"` // 重试间隔
BackoffMul float64 `json:"backoff_mul"` // 退避乘数
}
RetryPolicy 重试策略
type RoleCapability ¶
type RoleCapability struct {
Name string `json:"name"` // 能力名称
Description string `json:"description"` // 能力描述
Tools []string `json:"tools"` // 可用工具列表
InputTypes []string `json:"input_types"` // 接受的输入类型
OutputTypes []string `json:"output_types"` // 产出的输出类型
}
RoleCapability 角色能力定义
type RoleDefinition ¶
type RoleDefinition struct {
Type RoleType `json:"type"`
Name string `json:"name"`
Description string `json:"description"`
SystemPrompt string `json:"system_prompt"` // 角色的系统提示词
Capabilities []RoleCapability `json:"capabilities"`
Dependencies []RoleType `json:"dependencies"` // 依赖的前置角色
MaxConcurrent int `json:"max_concurrent"` // 最大并发实例数
Timeout time.Duration `json:"timeout"` // 角色执行超时
RetryPolicy *RetryPolicy `json:"retry_policy"` // 重试策略
Priority int `json:"priority"` // 优先级 (越高越优先)
}
RoleDefinition 角色定义
func NewResearchCollectorRole ¶
func NewResearchCollectorRole() *RoleDefinition
NewResearchCollectorRole 创建研究资源收集者角色
func NewResearchFilterRole ¶
func NewResearchFilterRole() *RoleDefinition
NewResearchFilterRole 创建研究质量过滤者角色
func NewResearchGeneratorRole ¶
func NewResearchGeneratorRole() *RoleDefinition
NewResearchGeneratorRole 创建研究想法生成者角色
func NewResearchValidatorRole ¶
func NewResearchValidatorRole() *RoleDefinition
NewResearchValidatorRole 创建研究验证者角色
func NewResearchWriterRole ¶
func NewResearchWriterRole() *RoleDefinition
NewResearchWriterRole 创建研究报告撰写者角色
type RoleExecuteFunc ¶
RoleExecuteFunc 角色执行函数签名 接收角色定义和输入,返回输出
type RoleInstance ¶
type RoleInstance struct {
ID string `json:"id"`
Definition RoleDefinition `json:"definition"`
AgentID string `json:"agent_id"` // 绑定的 Agent ID
Status RoleStatus `json:"status"`
Input any `json:"input,omitempty"`
Output any `json:"output,omitempty"`
Error string `json:"error,omitempty"`
StartedAt time.Time `json:"started_at"`
CompletedAt *time.Time `json:"completed_at,omitempty"`
Metadata map[string]any `json:"metadata,omitempty"`
}
RoleInstance 角色实例(运行时状态)
type RolePipeline ¶
type RolePipeline struct {
// contains filtered or unexported fields
}
RolePipeline 角色流水线编排器 按照依赖关系自动编排角色执行顺序
func NewRolePipeline ¶
func NewRolePipeline(config PipelineConfig, registry *RoleRegistry, executeFn RoleExecuteFunc, logger *zap.Logger) *RolePipeline
NewRolePipeline 创建角色流水线
func (*RolePipeline) AddStage ¶
func (p *RolePipeline) AddStage(roles ...RoleType) *RolePipeline
AddStage 添加执行阶段(阶段内角色可并行执行)
func (*RolePipeline) GetInstances ¶
func (p *RolePipeline) GetInstances() []*RoleInstance
GetInstances 获取所有角色实例
func (*RolePipeline) GetTransitions ¶
func (p *RolePipeline) GetTransitions() []RoleTransition
GetTransitions 获取所有角色转换记录
type RoleRegistry ¶
type RoleRegistry struct {
// contains filtered or unexported fields
}
RoleRegistry 角色注册表
func NewRoleRegistry ¶
func NewRoleRegistry(logger *zap.Logger) *RoleRegistry
NewRoleRegistry 创建角色注册表
func (*RoleRegistry) Get ¶
func (r *RoleRegistry) Get(roleType RoleType) (*RoleDefinition, bool)
Get 获取角色定义
func (*RoleRegistry) Register ¶
func (r *RoleRegistry) Register(def *RoleDefinition) error
Register 注册角色定义
func (*RoleRegistry) Unregister ¶
func (r *RoleRegistry) Unregister(roleType RoleType) error
Unregister 注销角色定义
type RoleStatus ¶
type RoleStatus string
RoleStatus 角色状态
const ( RoleStatusIdle RoleStatus = "idle" // 空闲 RoleStatusActive RoleStatus = "active" // 活跃 RoleStatusBlocked RoleStatus = "blocked" // 阻塞 RoleStatusDone RoleStatus = "done" // 完成 RoleStatusFailed RoleStatus = "failed" // 失败 )
type RoleTransition ¶
type RoleTransition struct {
FromRole RoleType `json:"from_role"`
ToRole RoleType `json:"to_role"`
Data any `json:"data"`
Timestamp time.Time `json:"timestamp"`
}
RoleTransition 角色间的数据传递
type RoleType ¶
type RoleType string
RoleType 角色类型
const ( RoleCollector RoleType = "collector" // 资源收集者 RoleFilter RoleType = "filter" // 质量过滤者 RoleGenerator RoleType = "generator" // 想法生成者 RoleDesigner RoleType = "designer" // 方案设计者 RoleImplementer RoleType = "implementer" // 实现者 RoleValidator RoleType = "validator" // 验证者 RoleWriter RoleType = "writer" // 报告撰写者 RoleCoordinator RoleType = "coordinator" // 协调者 RoleCustom RoleType = "custom" // 自定义角色 )