# VendorGuard 供应商准入尽调战情室(作业) 这是《Deep Agents 核心理论与能力边界》的配套代码项目。 项目使用 Supervisor Agent(主管智能体)协调安全、法务、财务和舆情四个 Subagent(子智能体),读取本地资料室,生成证据可追溯的供应商准入报告,并在提交决定前触发 Human-in-the-loop(人在回路)审批。LangSmith 用于追踪执行过程和运行离线评估。 Novapay 供应商续约复审 ## 环境要求 - Python 3.11+ - UV - 支持 Tool Calling(工具调用)的模型 - 对应模型供应商的 API Key - LangSmith 账户与 API Key(仅在启用 Trace 或评估实验时需要) ## 安装 ### Windows PowerShell ```powershell uv sync ``` ### Linux / macOS ```bash uv sync touch .env ``` 编辑 `.env`,填写 DeepSeek API Key。模型和 LangSmith 的所有凭证都由项目根目录的 `.env` 加载,不在代码中硬编码: ```dotenv DEEPSEEK_API_KEY=你的DeepSeek密钥 DEEPSEEK_BASE_URL=https://api.deepseek.com DEEPSEEK_MODEL_NAME=deepseek-v4-flash DEEPSEEK_ANSWER_THINKING=true LANGSMITH_TRACING=true LANGSMITH_API_KEY=你的LangSmith密钥 LANGSMITH_PROJECT=vendor-guard-course APP_ENV=local ``` ## 运行 以下命令在 Windows、Linux 和 macOS 中相同: ```bash uv run vendor-guard NOVAPAY ``` 也可以直接运行模块: ```bash uv run python -m vendor_guard.cli NOVAPAY ``` CLI 会显示 Trace 是否开启。开启后,根运行名为 `vendor-guard-interactive`,并带有供应商、线程、环境和工作流元数据。示例配置默认隐藏重复的输入状态、保留输出,避免 DeepAgents Trace 过大。 ## 测试 测试不调用模型,也不需要 API Key: ```bash uv run python -m unittest discover -s tests -v ``` 运行结果如下: ![alt text](image.png) ## LangSmith 数据集与离线实验 首次创建教学数据集(代码中数据集名称为 vendor-guard-onboarding-v2 ): ```bash uv run vendor-guard-create-dataset ``` 运行离线回归实验(experiment名称为vendor-guard-after-change): ```bash uv run vendor-guard-evaluate --dataset vendor-guard-onboarding-v2 --experiment-prefix vendor-guard-after-change ```