discovery

package
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 25, 2026 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateAgentCard

func CreateAgentCard(name, description, url, version string, capabilities []a2a.Capability) *a2a.AgentCard

CreateAgentCard通过代理配置创建了A2A AgentCard.

func InitGlobalDiscoveryService

func InitGlobalDiscoveryService(config *ServiceConfig, logger *zap.Logger)

InitGlobal Discovery Service初始化了全球发现服务.

func InitGlobalIntegration

func InitGlobalIntegration(service *DiscoveryService, config *IntegrationConfig, logger *zap.Logger)

InitGlobal集成初始化了全球物剂发现集成.

func SetGlobalDiscoveryService

func SetGlobalDiscoveryService(service *DiscoveryService)

设置全局 发现服务设置全球发现服务.

func SetGlobalIntegration

func SetGlobalIntegration(integration *AgentDiscoveryIntegration)

SetGlobal Introduction设定了全球物剂发现集成.

Types

type AgentCapabilityProvider

type AgentCapabilityProvider interface {
	// ID 返回代理的唯一标识符 。
	ID() string

	// 名称返回代理名.
	Name() string

	// Get Capabilitys 返回代理的能力.
	GetCapabilities() []a2a.Capability

	// Get AgentCard返回代理的A2A卡.
	GetAgentCard() *a2a.AgentCard
}

Agent Capability Provider定义了提供能力的代理的接口.

type AgentDiscoveryIntegration

type AgentDiscoveryIntegration struct {
	// contains filtered or unexported fields
}

Agent Discovery Introduction提供物剂与发现系统之间的融合.

func GetGlobalIntegration

func GetGlobalIntegration() *AgentDiscoveryIntegration

Get Global Introduction返回全球代理发现集成.

func NewAgentDiscoveryIntegration

func NewAgentDiscoveryIntegration(service *DiscoveryService, config *IntegrationConfig, logger *zap.Logger) *AgentDiscoveryIntegration

NewAgent Discovery Introduction 创造了新的代理发现集成.

func (*AgentDiscoveryIntegration) ComposeAgentsForTask

func (i *AgentDiscoveryIntegration) ComposeAgentsForTask(ctx context.Context, req *CompositionRequest) (*CompositionResult, error)

Confose AgentsForTask为复杂的任务创建了代理组成.

func (*AgentDiscoveryIntegration) DiscoveryService

func (i *AgentDiscoveryIntegration) DiscoveryService() *DiscoveryService

Discovery Service返回基础的发现服务.

func (*AgentDiscoveryIntegration) FindAgentForTask

func (i *AgentDiscoveryIntegration) FindAgentForTask(ctx context.Context, taskDescription string, requiredCapabilities []string) (*AgentInfo, error)

Find AgentForTask 找到任务的最佳代理 。

func (*AgentDiscoveryIntegration) FindAgentsForTask

func (i *AgentDiscoveryIntegration) FindAgentsForTask(ctx context.Context, req *MatchRequest) ([]*MatchResult, error)

FindAgentsForTask为任务找到多个代理.

func (*AgentDiscoveryIntegration) GetRegisteredAgents

func (i *AgentDiscoveryIntegration) GetRegisteredAgents() []string

GetRegistered Agents 返回所有注册代理.

func (*AgentDiscoveryIntegration) IsAgentRegistered

func (i *AgentDiscoveryIntegration) IsAgentRegistered(agentID string) bool

代理人注册的检查。

func (*AgentDiscoveryIntegration) RecordExecution

func (i *AgentDiscoveryIntegration) RecordExecution(ctx context.Context, agentID, capabilityName string, success bool, latency time.Duration) error

RecordExecution 记录一个代理机能力的执行结果.

func (*AgentDiscoveryIntegration) RegisterAgent

物剂在发现系统登记。

func (*AgentDiscoveryIntegration) SetLoadReporter

func (i *AgentDiscoveryIntegration) SetLoadReporter(agentID string, reporter func() float64)

SetLoadReporter为代理设置了负载报告器功能.

func (*AgentDiscoveryIntegration) Start

开始整合

func (*AgentDiscoveryIntegration) Stop

停止停止整合。

func (*AgentDiscoveryIntegration) UnregisterAgent

func (i *AgentDiscoveryIntegration) UnregisterAgent(ctx context.Context, agentID string) error

未注册的代理 未经注册 从发现系统。

func (*AgentDiscoveryIntegration) UpdateAgentCapabilities

func (i *AgentDiscoveryIntegration) UpdateAgentCapabilities(ctx context.Context, agentID string) error

更新代理能力更新一个代理在发现系统中的能力.

type AgentExecutor added in v1.0.0

type AgentExecutor interface {
	ExecuteCapability(ctx context.Context, agentID string, capability string, input any) (any, error)
}

AgentExecutor is a local interface for executing agent capabilities. Defined here to avoid importing agent/ (which would create a circular dep). The caller (e.g., agent/orchestration/) provides the concrete implementation.

type AgentInfo

type AgentInfo struct {
	// 卡为A2A代理卡.
	Card *a2a.AgentCard `json:"card"`

	// 状态是代理人的现状.
	Status AgentStatus `json:"status"`

	// 能力是这种代理人提供的能力清单。
	Capabilities []CapabilityInfo `json:"capabilities"`

	// 负载是代理的当前负载 (0-1).
	Load float64 `json:"load"`

	// 优先权是代理人对任务分配的优先权.
	Priority int `json:"priority"`

	// 端点是代理商的端点URL(用于远程代理).
	Endpoint string `json:"endpoint,omitempty"`

	// Is Local 表示是否为本地( 正在处理) 代理 。
	IsLocal bool `json:"is_local"`

	// 注册的At是该代理注册时.
	RegisteredAt time.Time `json:"registered_at"`

	// 最后的心跳是收到最后的心跳的时候.
	LastHeartbeat time.Time `json:"last_heartbeat"`

	// 元数据包含额外的元数据.
	Metadata map[string]string `json:"metadata,omitempty"`
}

AgentInfo包含了注册代理的详细信息.

func AgentInfoFromCard

func AgentInfoFromCard(card *a2a.AgentCard, isLocal bool) *AgentInfo

Agent InfoFromCard从A2A AgentCard中创建了AgentInfo.

type AgentStatus

type AgentStatus string

代理状态代表代理状态.

const (
	// Agent Statistics Online表示该代理在线健康.
	AgentStatusOnline AgentStatus = "online"
	// Agent StatusOffline表示代理机已下线.
	AgentStatusOffline AgentStatus = "offline"
	// Agent StatusBusy表示代理正在忙于处理任务.
	AgentStatusBusy AgentStatus = "busy"
	// 状态不健康 显示该剂是不健康的。
	AgentStatusUnhealthy AgentStatus = "unhealthy"
)

type CapabilityComposer

type CapabilityComposer struct {
	// contains filtered or unexported fields
}

CapaliableComposer是编译器接口的默认执行. 它提供能力构成、依赖解决和冲突探测。

func NewCapabilityComposer

func NewCapabilityComposer(registry Registry, matcher Matcher, config *ComposerConfig, logger *zap.Logger) *CapabilityComposer

New CapabilityComposer)创建出一个新的能力作曲家.

func (*CapabilityComposer) ClearDependencies

func (c *CapabilityComposer) ClearDependencies()

清除依赖性清除所有注册的依赖性 。

func (*CapabilityComposer) ClearExclusiveGroups

func (c *CapabilityComposer) ClearExclusiveGroups()

ClearExclusive Groups 清除所有专属组.

func (*CapabilityComposer) Compose

作曲从多个代理中产生能力组成.

func (*CapabilityComposer) DetectConflicts

func (c *CapabilityComposer) DetectConflicts(ctx context.Context, capabilities []string) ([]Conflict, error)

侦测冲突能发现能力之间的冲突。

func (*CapabilityComposer) GetDependencies

func (c *CapabilityComposer) GetDependencies(capability string) []string

GetDependency返回一个能力的依赖性.

func (*CapabilityComposer) GetExclusiveGroups

func (c *CapabilityComposer) GetExclusiveGroups() [][]string

GetExclusive Groups 返回所有专属组 。

func (*CapabilityComposer) RegisterDependency

func (c *CapabilityComposer) RegisterDependency(capability string, dependencies []string)

登记册的依赖性对各种能力之间的依赖性进行登记。

func (*CapabilityComposer) RegisterExclusiveGroup

func (c *CapabilityComposer) RegisterExclusiveGroup(capabilities []string)

登记小组登记一组相互排斥的能力。

func (*CapabilityComposer) RegisterResourceRequirement

func (c *CapabilityComposer) RegisterResourceRequirement(req *ResourceRequirement)

登记资源需求登记能力所需资源。

func (*CapabilityComposer) ResolveDependencies

func (c *CapabilityComposer) ResolveDependencies(ctx context.Context, capabilities []string) (map[string][]string, error)

解决依赖解决了能力之间的依赖.

type CapabilityInfo

type CapabilityInfo struct {
	// 能力是A2A协议中的基础能力定义.
	Capability a2a.Capability `json:"capability"`

	// AgentID是提供这种能力的代理的身份.
	AgentID string `json:"agent_id"`

	// 代理名称是提供这种能力的代理的名称 。
	AgentName string `json:"agent_name"`

	// 地位是这一能力的现状。
	Status CapabilityStatus `json:"status"`

	// 得分是依据历史表现(0-100)而得的能力分.
	Score float64 `json:"score"`

	// 负载是代理的当前负载 (0-1).
	Load float64 `json:"load"`

	// 标记是能力分类的附加标记.
	Tags []string `json:"tags,omitempty"`

	// 元数据包含额外的元数据.
	Metadata map[string]string `json:"metadata,omitempty"`

	// 注册是登记这种能力的时候。
	RegisteredAt time.Time `json:"registered_at"`

	// 上次更新是上次更新时。
	LastUpdatedAt time.Time `json:"last_updated_at"`

	// 最后一次健康检查是最后一次健康检查的时间。
	LastHealthCheck time.Time `json:"last_health_check"`

	// 成功处决是成功处决的数量。
	SuccessCount int64 `json:"success_count"`

	// 失败是被处决的次数。
	FailureCount int64 `json:"failure_count"`

	// AvgLatency是平均行刑时间.
	AvgLatency time.Duration `json:"avg_latency"`
}

能力 信息包含关于某一能力的详细信息。

type CapabilityMatcher

type CapabilityMatcher struct {
	// contains filtered or unexported fields
}

能力Matcher是Matcher接口的默认执行. 它提供语义匹配,能力评分,和负载平衡.

func NewCapabilityMatcher

func NewCapabilityMatcher(registry Registry, config *MatcherConfig, logger *zap.Logger) *CapabilityMatcher

新能力 Matcher创建了新的能力匹配器.

func (*CapabilityMatcher) FindBestAgent

func (m *CapabilityMatcher) FindBestAgent(ctx context.Context, taskDescription string, requiredCapabilities []string) (*AgentInfo, error)

FindBestAgent 找到使用默认策略进行任务的最佳代理 。

func (*CapabilityMatcher) FindLeastLoadedAgent

func (m *CapabilityMatcher) FindLeastLoadedAgent(ctx context.Context, requiredCapabilities []string) (*AgentInfo, error)

FindLeastLoaded Agent 找到装入量最小的具有所需能力的代理.

func (*CapabilityMatcher) GetNextRoundRobin

func (m *CapabilityMatcher) GetNextRoundRobin(ctx context.Context, capabilityName string) (*AgentInfo, error)

GetNextRound Robin 返回一个给定能力的下一个代理。

func (*CapabilityMatcher) Match

func (m *CapabilityMatcher) Match(ctx context.Context, req *MatchRequest) ([]*MatchResult, error)

Match 找到匹配给定请求的代理 。

func (*CapabilityMatcher) MatchOne

func (m *CapabilityMatcher) MatchOne(ctx context.Context, req *MatchRequest) (*MatchResult, error)

MatchOne 找到指定请求的最佳匹配代理 。

func (*CapabilityMatcher) Score

func (m *CapabilityMatcher) Score(ctx context.Context, agent *AgentInfo, req *MatchRequest) (float64, error)

分数根据请求计算代理商的比分。

type CapabilityRegistry

type CapabilityRegistry struct {
	// contains filtered or unexported fields
}

能力登记是书记官处接口的默认执行。 它为特工提供内存,并提供能力信息 支持健康检查和事件通知。

func NewCapabilityRegistry

func NewCapabilityRegistry(config *RegistryConfig, logger *zap.Logger, opts ...RegistryOption) *CapabilityRegistry

新能力登记系统建立了一个新的能力登记册。

func (*CapabilityRegistry) Close

func (r *CapabilityRegistry) Close() error

关闭注册 。

func (*CapabilityRegistry) FindCapabilities

func (r *CapabilityRegistry) FindCapabilities(ctx context.Context, capabilityName string) ([]CapabilityInfo, error)

Find Capabilitys 在所有特工中按名称找到能力.

func (*CapabilityRegistry) GetActiveAgents

func (r *CapabilityRegistry) GetActiveAgents(ctx context.Context) ([]*AgentInfo, error)

GetAactiveAgents返回所有具有在线状态的代理.

func (*CapabilityRegistry) GetAgent

func (r *CapabilityRegistry) GetAgent(ctx context.Context, agentID string) (*AgentInfo, error)

Get Agent通过身份识别找到一个特工.

func (*CapabilityRegistry) GetAgentsByCapability

func (r *CapabilityRegistry) GetAgentsByCapability(ctx context.Context, capabilityName string) ([]*AgentInfo, error)

Get AgentsBy Capability 返回所有具有特定能力的代理.

func (*CapabilityRegistry) GetCapability

func (r *CapabilityRegistry) GetCapability(ctx context.Context, agentID string, capabilityName string) (*CapabilityInfo, error)

Get Capability通过代理身份和姓名检索能力.

func (*CapabilityRegistry) Heartbeat

func (r *CapabilityRegistry) Heartbeat(ctx context.Context, agentID string) error

Heartbeat为代理更新了心跳时间戳.

func (*CapabilityRegistry) ListAgents

func (r *CapabilityRegistry) ListAgents(ctx context.Context) ([]*AgentInfo, error)

ListAgents列出所有注册代理.

func (*CapabilityRegistry) ListCapabilities

func (r *CapabilityRegistry) ListCapabilities(ctx context.Context, agentID string) ([]CapabilityInfo, error)

List Capabilitys 列出一个代理的所有能力.

func (*CapabilityRegistry) RecordExecution

func (r *CapabilityRegistry) RecordExecution(ctx context.Context, agentID string, capabilityName string, success bool, latency time.Duration) error

记录 Execution 记录一个执行结果 一个能力。

func (*CapabilityRegistry) RegisterAgent

func (r *CapabilityRegistry) RegisterAgent(ctx context.Context, info *AgentInfo) error

代理人对具有其能力的代理人进行登记。

func (*CapabilityRegistry) RegisterCapability

func (r *CapabilityRegistry) RegisterCapability(ctx context.Context, agentID string, cap *CapabilityInfo) error

注册能力登记一种代理的能力。

func (*CapabilityRegistry) SetStore added in v1.2.0

func (r *CapabilityRegistry) SetStore(store RegistryStore)

SetStore sets the persistence backend after construction. This is useful when the store is not available at construction time (e.g., when MongoDB stores are initialized after the registry).

func (*CapabilityRegistry) Start

func (r *CapabilityRegistry) Start(ctx context.Context) error

启动登记册背景进程。

func (*CapabilityRegistry) Subscribe

func (r *CapabilityRegistry) Subscribe(handler DiscoveryEventHandler) string

订阅了发现事件。

func (*CapabilityRegistry) UnregisterAgent

func (r *CapabilityRegistry) UnregisterAgent(ctx context.Context, agentID string) error

未注册代理 未经注册代理。

func (*CapabilityRegistry) UnregisterCapability

func (r *CapabilityRegistry) UnregisterCapability(ctx context.Context, agentID string, capabilityName string) error

未注册能力不注册 一种能力。

func (*CapabilityRegistry) Unsubscribe

func (r *CapabilityRegistry) Unsubscribe(subscriptionID string)

不订阅来自发现事件的用户 。

func (*CapabilityRegistry) UpdateAgent

func (r *CapabilityRegistry) UpdateAgent(ctx context.Context, info *AgentInfo) error

更新代理更新一个代理的信息 。

func (*CapabilityRegistry) UpdateAgentLoad

func (r *CapabilityRegistry) UpdateAgentLoad(ctx context.Context, agentID string, load float64) error

更新 AgentLoad 更新一个代理的负载 。

func (*CapabilityRegistry) UpdateAgentStatus

func (r *CapabilityRegistry) UpdateAgentStatus(ctx context.Context, agentID string, status AgentStatus) error

更新代理状态更新代理状态 。

func (*CapabilityRegistry) UpdateCapability

func (r *CapabilityRegistry) UpdateCapability(ctx context.Context, agentID string, cap *CapabilityInfo) error

更新能力更新一个能力.

type CapabilityStatus

type CapabilityStatus string

能力 地位代表一种能力的地位。

const (
	// 能力状态表示该能力是主动的和可用的。
	CapabilityStatusActive CapabilityStatus = "active"
	// 能力现状 不活动表明暂时没有能力。
	CapabilityStatusInactive CapabilityStatus = "inactive"
	// 降级表明,该能力是可用的,但性能有所降低。
	CapabilityStatusDegraded CapabilityStatus = "degraded"
	// 能力状态不明表示能力状态不明.
	CapabilityStatusUnknown CapabilityStatus = "unknown"
)

type Composer

type Composer interface {
	// 作曲从多个代理中产生能力组成.
	Compose(ctx context.Context, req *CompositionRequest) (*CompositionResult, error)

	// 解决依赖解决了能力之间的依赖.
	ResolveDependencies(ctx context.Context, capabilities []string) (map[string][]string, error)

	// 侦测冲突能发现能力之间的冲突。
	DetectConflicts(ctx context.Context, capabilities []string) ([]Conflict, error)
}

作曲家定义了能力构成操作的接口.

type ComposerConfig

type ComposerConfig struct {
	// MaxComposition深度是依赖分辨率的最大深度.
	MaxCompositionDepth int `json:"max_composition_depth"`

	// 默认超时是组件操作的默认超时.
	DefaultTimeout time.Duration `json:"default_timeout"`

	// 如果并非所有能力都具备,允许部分组成。
	AllowPartialComposition bool `json:"allow_partial_composition"`

	// 启用冲突探测可以检测冲突。
	EnableConflictDetection bool `json:"enable_conflict_detection"`

	// 启用依赖性决议允许自动依赖性解析 。
	EnableDependencyResolution bool `json:"enable_dependency_resolution"`
}

作曲家Config持有能力作曲的配置.

func DefaultComposerConfig

func DefaultComposerConfig() *ComposerConfig

默认composerConfig 返回带有合理默认的 ComposerConfig 。

type CompositionExecutor added in v1.0.0

type CompositionExecutor struct {
	// contains filtered or unexported fields
}

CompositionExecutor executes a composed agent plan from CompositionResult.

func NewCompositionExecutor added in v1.0.0

func NewCompositionExecutor(executor AgentExecutor, logger *zap.Logger) *CompositionExecutor

NewCompositionExecutor creates a new CompositionExecutor.

func (*CompositionExecutor) Execute added in v1.0.0

func (e *CompositionExecutor) Execute(ctx context.Context, result *CompositionResult, input any) (*ExecutionResult, error)

Execute runs agents according to the CompositionResult plan. It respects ExecutionOrder and Dependencies, running independent capabilities in parallel within each dependency level.

type CompositionRequest

type CompositionRequest struct {
	// TaskDescription是任务的自然语言描述.
	TaskDescription string `json:"task_description"`

	// 所需能力是所需能力名称的清单。
	RequiredCapabilities []string `json:"required_capabilities"`

	// 如果并非所有能力都具备,允许参与则允许部分组成。
	AllowPartial bool `json:"allow_partial"`

	// MaxAgents是包含在成分中的最大剂数.
	MaxAgents int `json:"max_agents,omitempty"`

	// 超时是组成操作的超时.
	Timeout time.Duration `json:"timeout,omitempty"`
}

要求构成要求构成能力。

type CompositionResult

type CompositionResult struct {
	// 代理是构成中的代理名单.
	Agents []*AgentInfo `json:"agents"`

	// 能力映射能力名称到代理ID.
	CapabilityMap map[string]string `json:"capability_map"`

	// 依赖是能力之间的依赖图.
	Dependencies map[string][]string `json:"dependencies,omitempty"`

	// 执行命令是推荐的执行命令.
	ExecutionOrder []string `json:"execution_order,omitempty"`

	// 冲突是已发现的冲突清单。
	Conflicts []Conflict `json:"conflicts,omitempty"`

	// 完整表示是否满足所有要求的能力。
	Complete bool `json:"complete"`

	// 缺失能力是缺失能力列表.
	MissingCapabilities []string `json:"missing_capabilities,omitempty"`
}

能力构成的结果。

type Conflict

type Conflict struct {
	// 类型是冲突的类型。
	Type ConflictType `json:"type"`

	// 能力是相互冲突的能力清单。
	Capabilities []string `json:"capabilities"`

	// 特工是卷入冲突的特工名单.
	Agents []string `json:"agents"`

	// 描述是对冲突的描述.
	Description string `json:"description"`

	// 决议就是所建议的决议。
	Resolution string `json:"resolution,omitempty"`
}

冲突是能力之间的冲突。

type ConflictType

type ConflictType string

相冲突Type定义了相冲突的类型.

const (
	// 冲突类型资源表示资源冲突.
	ConflictTypeResource ConflictType = "resource"
	// 冲突类型依赖表示依赖冲突。
	ConflictTypeDependency ConflictType = "dependency"
	// 冲突类型排除表明相互排斥的能力。
	ConflictTypeExclusive ConflictType = "exclusive"
	// 相冲突TypeVersion表示版本冲突.
	ConflictTypeVersion ConflictType = "version"
)

type DiscoveryEvent

type DiscoveryEvent struct {
	// 类型是事件类型 。
	Type DiscoveryEventType `json:"type"`

	// AgentID是涉案特工的身份证明.
	AgentID string `json:"agent_id"`

	// 能力是所涉及的能力(如果适用的话)。
	Capability string `json:"capability,omitempty"`

	// 数据包含额外事件数据.
	Data json.RawMessage `json:"data,omitempty"`

	// 时间戳是事件发生的时间 。
	Timestamp time.Time `json:"timestamp"`
}

发现Event代表了发现系统中的一个事件.

type DiscoveryEventHandler

type DiscoveryEventHandler func(event *DiscoveryEvent)

发现EventHandler是一个处理发现事件的函数.

type DiscoveryEventType

type DiscoveryEventType string

发现EventType定义了发现事件的类型.

const (
	// 发现Event Agent Registered表示某代理公司注册.
	DiscoveryEventAgentRegistered DiscoveryEventType = "agent_registered"
	// 发现Event Agent 注册未注册显示某代理未注册.
	DiscoveryEventAgentUnregistered DiscoveryEventType = "agent_unregistered"
	// 发现Event Agent Updated 显示一个代理被更新.
	DiscoveryEventAgentUpdated DiscoveryEventType = "agent_updated"
	// 发现Event Capability added表示增加了一种能力.
	DiscoveryEventCapabilityAdded DiscoveryEventType = "capability_added"
	// 发现Event Capability Removed表示能力被移除.
	DiscoveryEventCapabilityRemoved DiscoveryEventType = "capability_removed"
	// 更新后显示已更新能力。
	DiscoveryEventCapabilityUpdated DiscoveryEventType = "capability_updated"
	// 发现EventHealth检查失败 显示健康检查失败 。
	DiscoveryEventHealthCheckFailed DiscoveryEventType = "health_check_failed"
	// 发现Event Health Check Recovered 表示恢复了健康检查.
	DiscoveryEventHealthCheckRecovered DiscoveryEventType = "health_check_recovered"
)

type DiscoveryFilter

type DiscoveryFilter struct {
	// 能力过滤 通过能力名称。
	Capabilities []string `json:"capabilities,omitempty"`

	// 通过标签过滤标记 。
	Tags []string `json:"tags,omitempty"`

	// 按代理状态进行状态过滤.
	Status []AgentStatus `json:"status,omitempty"`

	// 仅针对本地代理的本地过滤器 。
	Local *bool `json:"local,omitempty"`

	// 仅用于远程代理的远程过滤器 。
	Remote *bool `json:"remote,omitempty"`
}

DiscoveryFilter定义了特工发现的过滤器.

type DiscoveryProtocol

type DiscoveryProtocol struct {
	// contains filtered or unexported fields
}

发现协议是协议界面的默认执行. 它支持本地(正在处理),HTTP,以及多播发现.

func NewDiscoveryProtocol

func NewDiscoveryProtocol(config *ProtocolConfig, registry Registry, logger *zap.Logger) *DiscoveryProtocol

新发现协议创建了新的发现协议.

func (*DiscoveryProtocol) Announce

func (p *DiscoveryProtocol) Announce(ctx context.Context, info *AgentInfo) error

公告向网络宣布本地代理.

func (*DiscoveryProtocol) AnnounceRemote

func (p *DiscoveryProtocol) AnnounceRemote(ctx context.Context, serverURL string, info *AgentInfo) error

宣告向远程发现服务器发布代理消息.

func (*DiscoveryProtocol) Discover

func (p *DiscoveryProtocol) Discover(ctx context.Context, filter *DiscoveryFilter) ([]*AgentInfo, error)

发现在网络上发现了特工.

func (*DiscoveryProtocol) DiscoverRemote

func (p *DiscoveryProtocol) DiscoverRemote(ctx context.Context, serverURL string, filter *DiscoveryFilter) ([]*AgentInfo, error)

DiscoverRemote从远程发现服务器中发现了特工.

func (*DiscoveryProtocol) Start

func (p *DiscoveryProtocol) Start(ctx context.Context) error

启动发现协议 。

func (*DiscoveryProtocol) Stop

func (p *DiscoveryProtocol) Stop(ctx context.Context) error

停止停止发现协议。

func (*DiscoveryProtocol) Subscribe

func (p *DiscoveryProtocol) Subscribe(handler func(*AgentInfo)) string

订阅代理通知 。

func (*DiscoveryProtocol) Unsubscribe

func (p *DiscoveryProtocol) Unsubscribe(subscriptionID string)

从代理通知中取消订阅。

type DiscoveryService

type DiscoveryService struct {
	// contains filtered or unexported fields
}

发现服务为代理能力发现提供了一个统一的接口. 它将注册,配对,作曲,协议合并为单一服务.

func GetGlobalDiscoveryService

func GetGlobalDiscoveryService() *DiscoveryService

获取全球 Discovery Service返回了全球发现服务.

func NewDiscoveryService

func NewDiscoveryService(config *ServiceConfig, logger *zap.Logger) *DiscoveryService

新发现服务创建了新的发现服务.

func (*DiscoveryService) ComposeCapabilities

func (s *DiscoveryService) ComposeCapabilities(ctx context.Context, req *CompositionRequest) (*CompositionResult, error)

由多种物剂构成的能力组成。

func (*DiscoveryService) Composer

func (s *DiscoveryService) Composer() Composer

作曲家返回了基础作曲家.

func (*DiscoveryService) DiscoverAgents

func (s *DiscoveryService) DiscoverAgents(ctx context.Context, filter *DiscoveryFilter) ([]*AgentInfo, error)

发现特工在网络上发现了特工.

func (*DiscoveryService) FindAgent

func (s *DiscoveryService) FindAgent(ctx context.Context, taskDescription string, requiredCapabilities []string) (*AgentInfo, error)

FindAgent 找到任务的最佳代理 。

func (*DiscoveryService) FindAgents

func (s *DiscoveryService) FindAgents(ctx context.Context, req *MatchRequest) ([]*MatchResult, error)

FindAgents发现多个符合标准的代理.

func (*DiscoveryService) FindCapabilities

func (s *DiscoveryService) FindCapabilities(ctx context.Context, capabilityName string) ([]CapabilityInfo, error)

Find Capabilitys 在所有特工中按名称找到能力.

func (*DiscoveryService) GetAgent

func (s *DiscoveryService) GetAgent(ctx context.Context, agentID string) (*AgentInfo, error)

Get Agent通过身份识别找到一个特工.

func (*DiscoveryService) GetCapability

func (s *DiscoveryService) GetCapability(ctx context.Context, agentID, capabilityName string) (*CapabilityInfo, error)

Get Capability通过代理身份和姓名检索能力.

func (*DiscoveryService) ListAgents

func (s *DiscoveryService) ListAgents(ctx context.Context) ([]*AgentInfo, error)

ListAgents列出所有注册代理.

func (*DiscoveryService) Matcher

func (s *DiscoveryService) Matcher() Matcher

匹配者返回基本匹配者 。

func (*DiscoveryService) Protocol

func (s *DiscoveryService) Protocol() Protocol

协议返回基本协议。

func (*DiscoveryService) RecordExecution

func (s *DiscoveryService) RecordExecution(ctx context.Context, agentID, capabilityName string, success bool, latency time.Duration) error

记录 Execution 记录一个执行结果 一个能力。

func (*DiscoveryService) RegisterAgent

func (s *DiscoveryService) RegisterAgent(ctx context.Context, info *AgentInfo) error

代理人在发现处登记。

func (*DiscoveryService) RegisterDependency

func (s *DiscoveryService) RegisterDependency(capability string, dependencies []string)

登记册的依赖性对各种能力之间的依赖性进行登记。

func (*DiscoveryService) RegisterExclusiveGroup

func (s *DiscoveryService) RegisterExclusiveGroup(capabilities []string)

登记小组登记一组相互排斥的能力。

func (*DiscoveryService) RegisterLocalAgent

func (s *DiscoveryService) RegisterLocalAgent(info *AgentInfo) error

注册本地代理 注册本地代理自动心跳。

func (*DiscoveryService) Registry

func (s *DiscoveryService) Registry() Registry

登记册返回基本登记册。

func (*DiscoveryService) Start

func (s *DiscoveryService) Start(ctx context.Context) error

启动发现服务.

func (*DiscoveryService) Stop

func (s *DiscoveryService) Stop(ctx context.Context) error

停止发现服务。

func (*DiscoveryService) Subscribe

func (s *DiscoveryService) Subscribe(handler DiscoveryEventHandler) string

订阅了发现事件。

func (*DiscoveryService) SubscribeToAnnouncements

func (s *DiscoveryService) SubscribeToAnnouncements(handler func(*AgentInfo)) string

订阅通知订阅代理通知 。

func (*DiscoveryService) UnregisterAgent

func (s *DiscoveryService) UnregisterAgent(ctx context.Context, agentID string) error

未注册代理 未经注册的代理 从发现服务。

func (*DiscoveryService) Unsubscribe

func (s *DiscoveryService) Unsubscribe(subscriptionID string)

不订阅来自发现事件的用户 。

func (*DiscoveryService) UnsubscribeFromAnnouncements

func (s *DiscoveryService) UnsubscribeFromAnnouncements(subscriptionID string)

从代理通知中取消订阅 。

func (*DiscoveryService) UpdateLocalAgentLoad

func (s *DiscoveryService) UpdateLocalAgentLoad(load float64) error

更新本地代理Load 更新本地代理的负载 。

type ExecutionResult added in v1.0.0

type ExecutionResult struct {
	// Results maps capability name to its output.
	Results map[string]any
	// Errors maps capability name to its error (if any).
	Errors map[string]error
	// Duration is the total wall-clock time of the execution.
	Duration time.Duration
	// AgentsUsed lists the agent IDs that were actually invoked.
	AgentsUsed []string
	// Completed is true when all capabilities finished without error.
	Completed bool
}

ExecutionResult contains the results of executing a composition.

type HealthCheckResult

type HealthCheckResult struct {
	// 代理ID是代理的身份证明.
	AgentID string `json:"agent_id"`

	// 健康指示剂是否健康.
	Healthy bool `json:"healthy"`

	// 状态是代理状态.
	Status AgentStatus `json:"status"`

	// 短暂性是健康检查的短暂性。
	Latency time.Duration `json:"latency"`

	// 信件是可选信件 。
	Message string `json:"message,omitempty"`

	// 时间戳是进行健康检查的时候。
	Timestamp time.Time `json:"timestamp"`
}

健康检查结果代表健康检查的结果。

type HealthChecker

type HealthChecker struct {
	// contains filtered or unexported fields
}

健康检查员定期对注册的代理人进行健康检查。

func NewHealthChecker

func NewHealthChecker(config *HealthCheckerConfig, registry *CapabilityRegistry, logger *zap.Logger) *HealthChecker

新健康检查器创造了一个新的健康检查器。

func (*HealthChecker) Start

func (h *HealthChecker) Start(ctx context.Context) error

开始体检

func (*HealthChecker) Stop

func (h *HealthChecker) Stop(ctx context.Context) error

停止停止健康检查。

type HealthCheckerConfig

type HealthCheckerConfig struct {
	// 间距是指健康检查之间的间隔.
	Interval time.Duration

	// 暂停是健康检查的暂停。
	Timeout time.Duration

	// 体质不健康 阈值是标记不健康前连续失败的次数.
	UnhealthyThreshold int
}

健康检查员Config拥有健康检查员的配置.

type InMemoryRegistryStore added in v1.0.0

type InMemoryRegistryStore struct {
	// contains filtered or unexported fields
}

InMemoryRegistryStore is a RegistryStore backed by an in-memory map. It preserves the existing default behavior of CapabilityRegistry.

func NewInMemoryRegistryStore added in v1.0.0

func NewInMemoryRegistryStore() *InMemoryRegistryStore

NewInMemoryRegistryStore creates a new InMemoryRegistryStore.

func (*InMemoryRegistryStore) Delete added in v1.0.0

func (*InMemoryRegistryStore) Load added in v1.0.0

func (*InMemoryRegistryStore) LoadAll added in v1.0.0

func (s *InMemoryRegistryStore) LoadAll(_ context.Context) ([]*AgentInfo, error)

func (*InMemoryRegistryStore) Save added in v1.0.0

type IntegrationConfig

type IntegrationConfig struct {
	// 自动登记使代理自动登记成为可能。
	AutoRegister bool `json:"auto_register"`

	// 自动注销记录器允许在代理停止时自动注销登记 。
	AutoUnregister bool `json:"auto_unregister"`

	// 加载报告Interval是报告代理加载的间隔.
	LoadReportInterval time.Duration `json:"load_report_interval"`

	// 默认端点是本地代理的默认端点 。
	DefaultEndpoint string `json:"default_endpoint"`

	// 默认版本是代理的默认版本.
	DefaultVersion string `json:"default_version"`
}

集成Config持有代理发现集成的配置.

func DefaultIntegrationConfig

func DefaultIntegrationConfig() *IntegrationConfig

默认集成Config 返回带有合理默认的集成Config 。

type MatchRequest

type MatchRequest struct {
	// TaskDescription是任务的自然语言描述.
	TaskDescription string `json:"task_description"`

	// 所需能力是所需能力名称的清单。
	RequiredCapabilities []string `json:"required_capabilities,omitempty"`

	// 首选能力是首选能力名列表.
	PreferredCapabilities []string `json:"preferred_capabilities,omitempty"`

	// 需求 标记是需要标记的列表.
	RequiredTags []string `json:"required_tags,omitempty"`

	// 被排除的代理人是被排除的代理人身份列表.
	ExcludedAgents []string `json:"excluded_agents,omitempty"`

	// MinScore是所需的最低能力分数.
	MinScore float64 `json:"min_score,omitempty"`

	// MaxLoad是最大可接受负载.
	MaxLoad float64 `json:"max_load,omitempty"`

	// 限制是返回的最大结果数。
	Limit int `json:"limit,omitempty"`

	// 战略是使用的匹配战略。
	Strategy MatchStrategy `json:"strategy,omitempty"`

	// 超时是匹配操作的超时.
	Timeout time.Duration `json:"timeout,omitempty"`
}

Match Request 是寻找匹配代理的请求 。

type MatchResult

type MatchResult struct {
	// 代理是匹配的代理信息。
	Agent *AgentInfo `json:"agent"`

	// 匹配能力是匹配能力列表.
	MatchedCapabilities []CapabilityInfo `json:"matched_capabilities"`

	// 得分为总比分(0-100).
	Score float64 `json:"score"`

	// 信心是比赛的信心水平 (0-1).
	Confidence float64 `json:"confidence"`

	// 理由就是比赛的原因
	Reason string `json:"reason,omitempty"`
}

MatchResult代表能力匹配的结果.

type MatchStrategy

type MatchStrategy string

MatchStrategy定义了匹配代理的战略.

const (
	// MatchStrategyBestMatch返回最佳匹配代理.
	MatchStrategyBestMatch MatchStrategy = "best_match"
	// MatchStrategyLeastLoaded 返回最小装入的匹配代理 。
	MatchStrategyLeastLoaded MatchStrategy = "least_loaded"
	// MatchStrategy 最高分返回最高分匹配代理.
	MatchStrategyHighestScore MatchStrategy = "highest_score"
	// Match Strategy Round Robin 以圆形Robin顺序返回代理.
	MatchStrategyRoundRobin MatchStrategy = "round_robin"
	// MatchStrategyRandom 返回随机匹配代理.
	MatchStrategyRandom MatchStrategy = "random"
)

type Matcher

type Matcher interface {
	// Match 找到匹配给定请求的代理 。
	Match(ctx context.Context, req *MatchRequest) ([]*MatchResult, error)

	// MatchOne 找到指定请求的最佳匹配代理 。
	MatchOne(ctx context.Context, req *MatchRequest) (*MatchResult, error)

	// 分数根据请求计算代理商的比分。
	Score(ctx context.Context, agent *AgentInfo, req *MatchRequest) (float64, error)
}

Matcher定义了能力匹配操作的接口.

type MatcherConfig

type MatcherConfig struct {
	// 默认策略是默认匹配策略.
	DefaultStrategy MatchStrategy `json:"default_strategy"`

	// 默认限制是匹配结果的默认限制 。
	DefaultLimit int `json:"default_limit"`

	// 默认超时是匹配操作的默认超时.
	DefaultTimeout time.Duration `json:"default_timeout"`

	// MinScore Threershold是比赛的最低得分门槛.
	MinScoreThreshold float64 `json:"min_score_threshold"`

	// 载重是积分(0-1)中载重.
	LoadWeight float64 `json:"load_weight"`

	// 分数(ScoreWight)是分数(0-1)中能力分数的权重.
	ScoreWeight float64 `json:"score_weight"`

	// latencyWight是积分(0-1)中耐久的重量.
	LatencyWeight float64 `json:"latency_weight"`

	// 启用语义匹配可实现语义匹配任务描述.
	EnableSemanticMatching bool `json:"enable_semantic_matching"`

	// 语义相似 阈值是语义相似性的阈值.
	SemanticSimilarityThreshold float64 `json:"semantic_similarity_threshold"`
}

MatcherConfig持有能力匹配器的配置.

func DefaultMatcherConfig

func DefaultMatcherConfig() *MatcherConfig

默认 MatcherConfig 返回带有合理默认的 MatcherConfig 。

type Protocol

type Protocol interface {
	// 启动发现协议 。
	Start(ctx context.Context) error

	// 停止停止发现协议。
	Stop(ctx context.Context) error

	// 公告向网络宣布本地代理.
	Announce(ctx context.Context, info *AgentInfo) error

	// 发现在网络上发现了特工.
	Discover(ctx context.Context, filter *DiscoveryFilter) ([]*AgentInfo, error)

	// 订阅代理通知 。
	Subscribe(handler func(*AgentInfo)) string

	// 从代理通知中取消订阅。
	Unsubscribe(subscriptionID string)
}

协议定义了服务发现协议操作的接口.

type ProtocolConfig

type ProtocolConfig struct {
	// 启用本地启用本地( 正在处理中) 发现 。
	EnableLocal bool `json:"enable_local"`

	// 启用 HTTP 启用基于 HTTP 的远程发现 。
	EnableHTTP bool `json:"enable_http"`

	// HTTPPort是HTTP发现服务器的端口.
	HTTPPort int `json:"http_port"`

	// HTTPHost是HTTP发现服务器的主机.
	HTTPHost string `json:"http_host"`

	// 启用多播可以基于多播的发现.
	EnableMulticast bool `json:"enable_multicast"`

	// 多播Address是多播组地址.
	MulticastAddress string `json:"multicast_address"`

	// 多播口是多播口.
	MulticastPort int `json:"multicast_port"`

	// 公告Interval是定期公告的间隔.
	AnnounceInterval time.Duration `json:"announce_interval"`

	// 发现 超时是发现操作的超时.
	DiscoveryTimeout time.Duration `json:"discovery_timeout"`

	// MaxPeers是跟踪的最大对等者数量.
	MaxPeers int `json:"max_peers"`
}

协议Config持有发现协议的配置.

func DefaultProtocolConfig

func DefaultProtocolConfig() *ProtocolConfig

默认协议 Config 返回带有合理默认的协议 Config 。

type Registry

type Registry interface {
	// 代理人对具有其能力的代理人进行登记。
	RegisterAgent(ctx context.Context, info *AgentInfo) error

	// 未注册代理 未经注册代理。
	UnregisterAgent(ctx context.Context, agentID string) error

	// 更新代理更新一个代理的信息 。
	UpdateAgent(ctx context.Context, info *AgentInfo) error

	// Get Agent通过身份识别找到一个特工.
	GetAgent(ctx context.Context, agentID string) (*AgentInfo, error)

	// ListAgents列出所有注册代理.
	ListAgents(ctx context.Context) ([]*AgentInfo, error)

	// 注册能力登记一种代理的能力。
	RegisterCapability(ctx context.Context, agentID string, cap *CapabilityInfo) error

	// 未注册能力不注册 一种能力。
	UnregisterCapability(ctx context.Context, agentID string, capabilityName string) error

	// 更新能力更新一个能力.
	UpdateCapability(ctx context.Context, agentID string, cap *CapabilityInfo) error

	// Get Capability通过代理身份和姓名检索能力.
	GetCapability(ctx context.Context, agentID string, capabilityName string) (*CapabilityInfo, error)

	// List Capabilitys 列出一个代理的所有能力.
	ListCapabilities(ctx context.Context, agentID string) ([]CapabilityInfo, error)

	// Find Capabilitys 在所有特工中按名称找到能力.
	FindCapabilities(ctx context.Context, capabilityName string) ([]CapabilityInfo, error)

	// 更新代理状态更新代理状态 。
	UpdateAgentStatus(ctx context.Context, agentID string, status AgentStatus) error

	// 更新 AgentLoad 更新一个代理的负载 。
	UpdateAgentLoad(ctx context.Context, agentID string, load float64) error

	// 记录 Execution 记录一个执行结果 一个能力。
	RecordExecution(ctx context.Context, agentID string, capabilityName string, success bool, latency time.Duration) error

	// 订阅了发现事件。
	Subscribe(handler DiscoveryEventHandler) string

	// 不订阅来自发现事件的用户 。
	Unsubscribe(subscriptionID string)

	// 关闭注册 。
	Close() error
}

登记册界定了能力登记册业务的接口。

type RegistryConfig

type RegistryConfig struct {
	// 健康检查Interval是健康检查的间隔.
	HealthCheckInterval time.Duration `json:"health_check_interval"`

	// 健康检查 暂停是健康检查的暂停。
	HealthCheckTimeout time.Duration `json:"health_check_timeout"`

	// 体质不健康 阈值是指在标记不健康之前,健康检查失败的次数.
	UnhealthyThreshold int `json:"unhealthy_threshold"`

	// 移除Unhealty 之后是清除不健康剂的期限。
	RemoveUnhealthyAfter time.Duration `json:"remove_unhealthy_after"`

	// 启用健康检查可以定期进行健康检查。
	EnableHealthCheck bool `json:"enable_health_check"`

	// 默认能力分数是新能力的默认分数.
	DefaultCapabilityScore float64 `json:"default_capability_score"`
}

登记册Config拥有能力登记册的配置。

func DefaultRegistryConfig

func DefaultRegistryConfig() *RegistryConfig

默认 RegistryConfig 返回带有合理默认的注册Config 。

type RegistryOption added in v1.0.0

type RegistryOption func(*CapabilityRegistry)

RegistryOption configures a CapabilityRegistry.

func WithStore added in v1.0.0

func WithStore(store RegistryStore) RegistryOption

WithStore sets a persistence backend for the registry. When set, agent data is persisted through the store in addition to the in-memory map. When not set, the registry operates purely in-memory.

type RegistryStore added in v1.0.0

type RegistryStore interface {
	Save(ctx context.Context, agent *AgentInfo) error
	Load(ctx context.Context, id string) (*AgentInfo, error)
	LoadAll(ctx context.Context) ([]*AgentInfo, error)
	Delete(ctx context.Context, id string) error
}

RegistryStore defines the persistence interface for agent registry data. Implementations can back the registry with different storage backends (in-memory, database, etc.).

type ResourceRequirement

type ResourceRequirement struct {
	// 能力 名称是能力的名称.
	CapabilityName string `json:"capability_name"`

	// CPUCores是所需的CPU核心.
	CPUCores float64 `json:"cpu_cores"`

	// 内存MB是MB中所需的内存.
	MemoryMB int `json:"memory_mb"`

	// GPUrered表示是否需要GPU.
	GPURequired bool `json:"gpu_required"`

	// 专属资源是一份必须专属的资源清单。
	ExclusiveResources []string `json:"exclusive_resources"`
}

资源需求界定了能力所需资源。

type ServiceConfig

type ServiceConfig struct {
	// 书记官处配置
	Registry *RegistryConfig `json:"registry"`

	// 匹配器配置
	Matcher *MatcherConfig `json:"matcher"`

	// 作曲家配置
	Composer *ComposerConfig `json:"composer"`

	// 协议配置
	Protocol *ProtocolConfig `json:"protocol"`

	// 启用自动注册可自动注册本地代理。
	EnableAutoRegistration bool `json:"enable_auto_registration"`

	// Heartbeat Interval是发送心跳的间隔.
	HeartbeatInterval time.Duration `json:"heartbeat_interval"`

	// 启用度量衡启用了度量衡收集 。
	EnableMetrics bool `json:"enable_metrics"`
}

ServiceConfig持有发现服务配置.

func DefaultServiceConfig

func DefaultServiceConfig() *ServiceConfig

默认ServiceConfig 返回带有合理默认的ServiceConfig 。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL