feat: 增强日历功能并集成 AgentScope 代理服务

This commit is contained in:
qzl
2026-03-11 17:16:11 +08:00
parent e20e7d2a02
commit 85b314cf64
53 changed files with 3642 additions and 297 deletions
@@ -68,6 +68,8 @@ async def _invoke_tool(
else:
text = getattr(first, "text", None)
assert isinstance(text, str)
if text.startswith("Error:"):
raise AssertionError(f"tool {tool_name} failed: {text}")
payload = json.loads(text)
assert isinstance(payload, dict)
return payload
@@ -101,40 +103,45 @@ class _SmokeRunner:
if stage_config.stage == "execution":
assert toolkit is not None
created = await _invoke_tool(
toolkit,
tool_name="calendar.write",
tool_input={
"operation": "create",
"title": "agentscope smoke event",
"description": "agentscope runtime smoke",
"start_at": datetime.now(timezone.utc).isoformat(),
"timezone": "Asia/Shanghai",
},
)
created_data = created.get("data")
assert isinstance(created_data, dict)
created_id = created_data.get("id")
assert isinstance(created_id, str) and created_id
created_id: str | None = None
items: list[object] = []
try:
created = await _invoke_tool(
toolkit,
tool_name="calendar.write",
tool_input={
"operation": "create",
"title": "agentscope smoke event",
"description": "agentscope runtime smoke",
"start_at": datetime.now(timezone.utc).isoformat(),
"timezone": "Asia/Shanghai",
},
)
created_data = created.get("data")
assert isinstance(created_data, dict)
created_id = created_data.get("id")
assert isinstance(created_id, str) and created_id
read_payload = await _invoke_tool(
toolkit,
tool_name="calendar.read",
tool_input={"page": 1, "page_size": 10},
)
read_data = read_payload.get("data")
assert isinstance(read_data, dict)
items = read_data.get("items")
assert isinstance(items, list)
deleted = await _invoke_tool(
toolkit,
tool_name="calendar.write",
tool_input={"operation": "delete", "event_id": created_id},
)
deleted_data = deleted.get("data")
assert isinstance(deleted_data, dict)
assert deleted_data.get("ok") is True
read_payload = await _invoke_tool(
toolkit,
tool_name="calendar.read",
tool_input={"page": 1, "page_size": 10},
)
read_data = read_payload.get("data")
assert isinstance(read_data, dict)
parsed_items = read_data.get("items")
assert isinstance(parsed_items, list)
items = parsed_items
finally:
if created_id:
deleted = await _invoke_tool(
toolkit,
tool_name="calendar.write",
tool_input={"operation": "delete", "event_id": created_id},
)
deleted_data = deleted.get("data")
assert isinstance(deleted_data, dict)
assert deleted_data.get("ok") is True
return {
"task_id": "smoke-task-1",