# University Playwright Codegen Agent 构建于 [Agno](https://docs.agno.com/) 的自动化代码生成代理:输入海外大学官网的根地址,即可生成一份使用 **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. **创建虚拟环境并安装依赖** ```bash 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_PROVIDER` 在 `openai` 与 `anthropic` 之间切换。 3. **运行 CLI 生成脚本** ```bash 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 检查** ```bash 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! 🎓🤖