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.
48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
from hello_agents.protocols.a2a.implementation import A2AServer, A2A_AVAILABLE
|
|
|
|
def create_custom_agent():
|
|
"""创建自定义智能体"""
|
|
if not A2A_AVAILABLE:
|
|
print("请先安装 A2A SDK: pip install a2a-sdk")
|
|
return None
|
|
|
|
# 创建智能体
|
|
agent = A2AServer(
|
|
name="my-custom-agent",
|
|
description="我的自定义智能体",
|
|
capabilities={"custom": ["skill1", "skill2"]}
|
|
)
|
|
|
|
# 添加技能
|
|
@agent.skill("greet")
|
|
def greet_user(name: str) -> str:
|
|
"""问候用户"""
|
|
return f"你好,{name}!我是自定义智能体。"
|
|
|
|
@agent.skill("calculate")
|
|
def simple_calculate(expression: str) -> str:
|
|
"""简单计算"""
|
|
try:
|
|
# 安全的计算(仅支持基本运算)
|
|
allowed_chars = set('0123456789+-*/(). ')
|
|
if all(c in allowed_chars for c in expression):
|
|
result = eval(expression)
|
|
return f"计算结果: {expression} = {result}"
|
|
else:
|
|
return "错误: 只支持基本数学运算"
|
|
except Exception as e:
|
|
return f"计算错误: {e}"
|
|
|
|
return agent
|
|
|
|
# 创建并测试自定义智能体
|
|
custom_agent = create_custom_agent()
|
|
if custom_agent:
|
|
# 测试技能
|
|
print("测试问候技能:")
|
|
result1 = custom_agent.skills["greet"]("张三")
|
|
print(result1)
|
|
|
|
print("\n测试计算技能:")
|
|
result2 = custom_agent.skills["calculate"]("10 + 5 * 2")
|
|
print(result2) |