Fix that agent cannot be the same name (#16192)

Fix that agent cannot be the same name
This commit is contained in:
Wang Qi
2026-06-18 19:10:21 +08:00
committed by GitHub
parent eb5fcce1ca
commit 5ca1686ac7
2 changed files with 10 additions and 9 deletions

View File

@@ -715,12 +715,10 @@ async def create_agent(tenant_id):
)
req["title"] = req["title"].strip()
if UserCanvasService.query(
user_id=tenant_id,
title=req["title"],
canvas_category=req["canvas_category"],
):
return get_data_error_result(message=f"{req['title']} already exists.")
for canvas in UserCanvasService.query(user_id=tenant_id, canvas_category=req["canvas_category"]):
canvas_title = getattr(canvas, "title", req["title"])
if canvas_title and canvas_title.lower() == req["title"].lower():
return get_data_error_result(message=f"{req['title']} already exists.")
req["id"] = get_uuid()
if not UserCanvasService.save(**req):
@@ -956,10 +954,15 @@ async def update_agent(agent_id, tenant_id):
code=RetCode.ARGUMENT_ERROR,
)
_, current_agent = UserCanvasService.get_by_id(agent_id)
if req.get("title") is not None:
req["title"] = req["title"].strip()
canvas_category_for_duplicate_check = req.get("canvas_category") or (current_agent.canvas_category if current_agent else CanvasCategory.Agent)
for canvas in UserCanvasService.query(user_id=tenant_id, canvas_category=canvas_category_for_duplicate_check):
canvas_title = getattr(canvas, "title", "")
if getattr(canvas, "id", None) != agent_id and canvas_title and canvas_title.lower() == req["title"].lower():
return get_data_error_result(message=f"{req['title']} already exists.")
_, current_agent = UserCanvasService.get_by_id(agent_id)
agent_title_for_version = req.get("title") or (current_agent.title if current_agent else "")
canvas_category = (
req.get("canvas_category")