Metadata-Version: 2.4
Name: vendor-guard-course
Version: 0.1.0
Summary: Deep Agents 供应商准入尽调教学项目
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: deepagents>=0.5.4
Requires-Dist: langchain-openai>=1.0
Requires-Dist: langsmith>=0.4
Requires-Dist: python-dotenv>=1.0

# VendorGuard 供应商准入尽调战情室

这是《Deep Agents 核心理论与能力边界》的配套代码项目。

项目使用 Supervisor Agent（主管智能体）协调安全、法务、财务和舆情四个 Subagent（子智能体），读取本地资料室，生成证据可追溯的供应商准入报告，并在提交决定前触发 Human-in-the-loop（人在回路）审批。LangSmith 用于追踪执行过程和运行离线评估。

## 环境要求

- Python 3.11+
- 支持 Tool Calling（工具调用）的模型
- 对应模型供应商的 API Key
- LangSmith 账户与 API Key（仅在启用 Trace 或评估实验时需要）

## 安装

```powershell
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e .
Copy-Item .env.example .env
```

编辑 `.env`，填写模型名称和 API Key。需要开启 LangSmith 时配置：

```dotenv
LANGSMITH_TRACING=true
LANGSMITH_API_KEY=你的LangSmith密钥
LANGSMITH_PROJECT=vendor-guard-course
APP_ENV=local
```

## 运行

```powershell
vendor-guard ACME
```

也可以直接运行模块：

```powershell
python -m vendor_guard.cli ACME
```

CLI 会显示 Trace 是否开启。开启后，根运行名为 `vendor-guard-interactive`，并带有供应商、线程、环境和工作流元数据。

## LangSmith 数据集与离线实验

首次创建教学数据集：

```powershell
vendor-guard-create-dataset
```

运行离线回归实验：

```powershell
vendor-guard-evaluate --experiment-prefix vendor-guard-baseline
```

实验默认串行执行，避免多个样例同时写入同一报告路径。评估在 HITL 中断处停止，不会自动批准提交工具。

## 纯业务层测试

测试不调用模型，也不需要 API Key：

```powershell
$env:PYTHONPATH="src"
python -m unittest discover -s tests -v
```

## 教学限制

- 外部查询使用本地 Fixture（固定测试数据），不是生产接口。
- `InMemoryStore` 与 `InMemorySaver` 仅适合本地演示。
- `FilesystemBackend` 只适合受控本地环境，不应用于面向公网的 Web 服务。
- 异步子 Agent 当前不在主流程中，避免把 Preview（预览能力）引入基础实验。
- 教学材料全部为虚构数据。真实合同、财务和个人信息进入 Trace 前必须按组织策略脱敏，必要时关闭输入输出记录或条件追踪。

## 配套文档

- [VendorGuard 项目实战讲解](../02-VendorGuard项目实战讲解.md)
- [LangSmith 基础与 VendorGuard 可观测评估实战](../03-VendorGuard项目的LangSmith可观测与评估.md)
