#!/usr/bin/env python3 # -*- coding: utf-8 -*- """作业 1 · 步骤 3:创建带工具调用的 Agent 空壳(mode=agent)。""" from __future__ import annotations import sys import _bootstrap # noqa: F401 import _config as C from dify_api import Dify, pp def main() -> int: d = Dify(C.DIFY_EMAIL, C.DIFY_PASSWORD) try: d.login() # 若同名已存在,打印 ID 供后续步骤用,不重复创建 r_list = d.get("/agent?page=1&limit=50") data = (r_list.get("json") or {}).get("data") or [] for item in data: if item.get("name") == C.HOMEWORK1_APP_NAME: print("already exists app_id=", item.get("id"), "agent_id=", item.get("agent_id") or item.get("id")) print("下一步:运行 作业1_04_查ID并挂工具.py") return 0 # Dify 1.16 新 Agent 用 POST /agent(不是 /apps + mode=agent) body = { "name": C.HOMEWORK1_APP_NAME, "description": "作业 1:带 HTTP 工具的运维巡检 Agent(查询服务器状态)", "icon_type": "emoji", "icon": "🖥️", "icon_background": "#E8F5E9", "role": "ops", } r = d.post("/agent", body) pp("create agent", r) j = r.get("json") or {} print("app_id", j.get("id")) print("agent_id", j.get("agent_id") or j.get("id")) if r.get("code") not in ("200", "201"): return 1 print("下一步:运行 作业1_04_查ID并挂工具.py") return 0 finally: d.close() if __name__ == "__main__": sys.exit(main())