You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.5 KiB
Python
52 lines
1.5 KiB
Python
|
6 months ago
|
from hello_agents.protocols import ANPDiscovery, register_service
|
||
|
|
|
||
|
|
# 创建服务发现中心
|
||
|
|
discovery = ANPDiscovery()
|
||
|
|
|
||
|
|
# 注册Agent服务
|
||
|
|
register_service(
|
||
|
|
discovery=discovery,
|
||
|
|
service_id="nlp_agent_1",
|
||
|
|
service_name="NLP处理专家A",
|
||
|
|
service_type="nlp",
|
||
|
|
capabilities=["text_analysis", "sentiment_analysis", "ner"],
|
||
|
|
endpoint="http://localhost:8001",
|
||
|
|
metadata={"load": 0.3, "price": 0.01, "version": "1.0.0"}
|
||
|
|
)
|
||
|
|
|
||
|
|
register_service(
|
||
|
|
discovery=discovery,
|
||
|
|
service_id="nlp_agent_2",
|
||
|
|
service_name="NLP处理专家B",
|
||
|
|
service_type="nlp",
|
||
|
|
capabilities=["text_analysis", "translation"],
|
||
|
|
endpoint="http://localhost:8002",
|
||
|
|
metadata={"load": 0.7, "price": 0.02, "version": "1.1.0"}
|
||
|
|
)
|
||
|
|
|
||
|
|
print("✅ 服务注册完成")
|
||
|
|
|
||
|
|
from hello_agents.protocols import discover_service
|
||
|
|
|
||
|
|
# 按类型查找
|
||
|
|
nlp_services = discover_service(discovery, service_type="nlp")
|
||
|
|
print(f"找到 {len(nlp_services)} 个NLP服务")
|
||
|
|
|
||
|
|
# 选择负载最低的服务
|
||
|
|
best_service = min(nlp_services, key=lambda s: s.metadata.get("load", 1.0))
|
||
|
|
print(f"最佳服务:{best_service.service_name} (负载: {best_service.metadata['load']})")
|
||
|
|
|
||
|
|
from hello_agents.protocols import ANPNetwork
|
||
|
|
|
||
|
|
# 创建网络
|
||
|
|
network = ANPNetwork(network_id="ai_cluster")
|
||
|
|
|
||
|
|
# 添加节点
|
||
|
|
for service in discovery.list_all_services():
|
||
|
|
network.add_node(service.service_id, service.endpoint)
|
||
|
|
|
||
|
|
# 建立连接(根据能力匹配)
|
||
|
|
network.connect_nodes("nlp_agent_1", "nlp_agent_2")
|
||
|
|
|
||
|
|
stats = network.get_network_stats()
|
||
|
|
print(f"✅ 网络构建完成,共 {stats['total_nodes']} 个节点")
|