University Playwright Codegen Agent

构建于 Agno 的自动化代码生成代理:输入海外大学官网的根地址,即可生成一份使用 Playwright 的 Python 脚本,脚本会抓取各学院/研究生院下的硕士项目网址以及项目中列出的导师Supervisor/Faculty个人信息页面。本项目使用 uv 进行依赖管理,ruff 做静态检查,ty 负责类型检查,并提供了一个基于 Typer 的 CLI。

Features

  • Agno Agent:利用 output_schema 强制结构化输出,里程碑式地生成 ScriptPlan 并将其渲染为可执行脚本。
  • Playwright sampling:计划生成前会用 Playwright 对站点进行轻量抓取,帮助 Agent 找到关键词与导航策略。
  • Deterministic script template:脚本模板包含 BFS 爬取、关键词过滤、JSON 输出等逻辑,确保满足“硕士项目 + 导师”需求。
  • uv + ruff + ty workflow:开箱即用的现代 Python 工具链。

Getting started

  1. 创建虚拟环境并安装依赖

    uv venv --python 3.12
    uv pip install -r pyproject.toml
    playwright install  # 安装浏览器内核
    
  2. 配置大模型 API key

    • OpenAI: export OPENAI_API_KEY=...
    • Anthropic: export ANTHROPIC_API_KEY=...
    • 可通过环境变量 CODEGEN_MODEL_PROVIDERopenaianthropic 之间切换。
  3. 运行 CLI 生成脚本

    uv run university-agent generate \
      "https://www.example.edu" \
      --campus "Example Campus" \
      --language "English" \
      --max-depth 2 \
      --max-pages 60
    

    运行完成后会在 artifacts/ 下看到生成的 Playwright 脚本,并在终端展示自动规划的关键词与验证步骤。

  4. 执行 Ruff & Ty 检查

    uv run ruff check
    uvx ty check
    

Project structure

├── README.md
├── pyproject.toml
├── src/university_agent
│   ├── agent.py               # Agno Agent 配置
│   ├── cli.py                 # Typer CLI
│   ├── config.py              # pydantic Settings
│   ├── generator.py           # Orchestration 引擎
│   ├── models.py              # 数据模型(请求/计划/结果)
│   ├── renderer.py            # ScriptPlan -> Playwright script
│   ├── sampler.py             # Playwright 采样
│   ├── templates/
│   │   └── playwright_script.py.jinja
│   └── writer.py              # 将脚本写入 artifacts/
└── 任务1.txt

Tips

  • university-agent generate --help 查看所有 CLI 选项,可选择跳过采样或导出规划 JSON。
  • 如果 Agno Agent 需使用其他工具,可在 agent.py 中自行扩展自定义 tool
  • Playwright 采样在某些环境中需要额外的浏览器依赖,请根据官方提示执行 playwright install

Happy building! 🎓🤖

Description
这是一个自动化生成代码的agent,给定一个海外大学官网的网址,即可生成python脚本,爬取这个大学各级学院下的所有硕士项目的网址和硕士项目中各导师个人信息的网址。
Readme MIT 313 KiB
Languages
Python 89.8%
TypeScript 6.4%
Jinja 3.2%
Batchfile 0.2%
Dockerfile 0.2%
Other 0.1%