Files
patchy631--ai-engineering-hub/agent2agent-demo/agent3.py
T
2026-07-13 12:37:47 +08:00

44 lines
1.2 KiB
Python

from python_a2a import A2AServer, skill, agent, run_server, TaskStatus, TaskState
import math
import re
@agent(
name="Tangent Agent",
description="Provides the tangent of a number",
version="1.0.0"
)
class TangentAgent(A2AServer):
@skill(
name="Get Tangent",
description="Get the tangent of a number",
tags=["tangent", "tan"]
)
def get_tangent(self, number):
"""Get the tangent of a number."""
# Mock implementation
return f"The tangent of {number} is {math.tan(number)}"
def handle_task(self, task):
# Extract location from message
input_message = task.message["content"]["text"]
# regex to extract the number from the text
match = re.search(r"([-+]?[0-9]*\.?[0-9]+)", input_message)
number = float(match.group(1))
print("number", number)
# Get weather and create response
tangent_output = self.get_tangent(number)
task.artifacts = [{
"parts": [{"type": "text", "text": tangent_output}]
}]
task.status = TaskStatus(state=TaskState.COMPLETED)
return task
# Run the server
if __name__ == "__main__":
agent = TangentAgent()
run_server(agent, port=4739)