添加了langgraph-vivado-install 这个skill

This commit is contained in:
Myfro9
2026-05-14 15:07:40 -05:00
parent 3562ea9093
commit c7e4723d85
+229
View File
@@ -0,0 +1,229 @@
---
name: langgraph-vivado-install
description: 在 Windows 原生环境下自动化配置基于 Conda 的 LangGraph 开发环境,并强制完成 Vivado 链路的闭环验证。当用户提到"配置langgraph"、"安装langgraph"、"LangGraph环境"、"langgraph vivado"、"配置开发环境 langgraph"、"LangGraph+Vivado"、"搭建langgraph"时,必须触发此技能。即使用户未明确说"用这个技能",只要涉及在 Windows 上安装或配置 LangGraph(含与 Vivado 集成),都应触发。
---
# LangGraph + Vivado 环境配置技能
本技能在 Windows 原生环境(Git Bash / 命令提示符)中自动完成以下工作:
1. 检测并安装 Conda
2. 创建 `langgraph` 虚拟环境并安装所需包
3. 迭代检测 Vivado 链路直至成功
4. 写出配置文件与冒烟测试脚本并运行验证
---
## 整体流程
```
Step 1: Conda 检测与安装
Step 2: 创建 langgraph 环境,安装依赖
Step 3: Vivado 链路迭代检测(循环直到成功)
Step 4: 写出 env_config.json,提示持久化
Step 5: 生成并运行 smoke_test.py
```
---
## Step 1 — Conda 检测与安装
运行:
```bash
conda --version
```
- **若成功**:记录版本,进入 Step 2。
- **若失败**:执行安装命令:
```bash
winget install -e --id Anaconda.Miniconda3
```
安装完成后,提示用户:
> "Miniconda 安装完成。请重启 Shell 或运行 `conda init bash` 使 conda 命令生效,然后重新触发本技能。"
**在用户确认 conda 可用之前,不继续执行后续步骤。**
---
## Step 2 — 创建 langgraph Conda 环境
### 2a. 检查环境是否已存在
```bash
conda env list | grep "^langgraph"
```
- 若已存在:跳过创建,直接进入 2b。
- 若不存在:
```bash
conda create -n langgraph python=3.11 -y
```
### 2b. 安装所需 Python 包
```bash
conda run -n langgraph pip install langgraph langchain-anthropic pandas
```
验证安装:
```bash
conda run -n langgraph python -c "import langgraph; print('LangGraph OK:', langgraph.__version__)"
```
若导入失败,报告错误并停止,请用户检查网络或 pip 源配置。
---
## Step 3 — Vivado 链路迭代检测循环
这是本技能的核心环节。目标是确保在 `langgraph` 环境中可以调用 Vivado。
### Step A:首次尝试检测
```bash
conda run -n langgraph vivado -version
```
### Step B:若成功
- 打印版本信息(取输出第一行)。
- 进入 Step 4。
### Step C:若失败(命令未找到)— 交互式路径收集
**停止自动化**,向用户提问:
> "未能检测到 Vivado 环境。请输入 Vivado 的 bin 文件夹完整路径(例如:`C:\Xilinx\Vivado\2023.2\bin`):"
**收到用户输入后执行:**
1. **验证路径有效性** — 检查该目录下 `vivado.bat` 是否存在:
```bash
# 将用户输入的 Windows 路径转换为 bash 路径后检查
# 例:C:\Xilinx\Vivado\2023.2\bin → /c/Xilinx/Vivado/2023.2/bin
ls "<converted_path>/vivado.bat"
```
- 若不存在:提示 "路径无效或找不到 vivado.bat,请重新输入。" 并**重复 Step C**。
- 若存在:继续。
2. **将路径临时加入当前会话 PATH**(Windows 反斜杠转为正斜杠):
```bash
export PATH="<converted_path>:$PATH"
```
3. **记录该路径**供后续 Step 4/5 使用(内部变量 `VIVADO_BIN_PATH`)。
4. **重试检测**:
```bash
vivado -version
```
- 若成功:打印版本,进入 Step 4。
- 若再次失败:回到 Step C 顶部,重新向用户询问路径。
> **循环逻辑**:重复 Step C 直到 `vivado -version` 执行成功为止。不要跳过,不要假设路径正确。
---
## Step 4 — 持久化配置
`vivado -version` 成功后:
### 4a. 提示用户持久化
向用户说明:
> "为了在每次新开 Shell 时自动识别 Vivado,建议将该路径永久添加到 Windows 系统环境变量 PATH 中。操作方法:系统属性 → 高级 → 环境变量 → 编辑 PATH → 新建,粘贴路径。"
### 4b. 写出 env_config.json
在当前工作目录创建:
```json
{
"VIVADO_BIN_PATH": "<Step 3 确认的 Windows 格式路径>",
"conda_env": "langgraph",
"python_version": "3.11",
"packages": ["langgraph", "langchain-anthropic", "pandas"]
}
```
---
## Step 5 — 生成冒烟测试脚本并运行
在当前工作目录创建 `smoke_test.py`,内容如下:
```python
import subprocess
import sys
import json
import os
def test_langgraph():
try:
import langgraph
import importlib.metadata
version = importlib.metadata.version("langgraph")
print(f"[OK] LangGraph import OK, version: {version}")
return True
except ImportError as e:
print(f"[FAIL] LangGraph import failed: {e}")
return False
def test_vivado():
config_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "env_config.json")
env = os.environ.copy()
vivado_bin = ""
if os.path.exists(config_path):
with open(config_path, encoding="utf-8") as f:
config = json.load(f)
vivado_bin = config.get("VIVADO_BIN_PATH", "").strip()
if vivado_bin:
env["PATH"] = vivado_bin + os.pathsep + env["PATH"]
# On Windows use the full path to vivado.bat to avoid shell PATH issues
if vivado_bin and (os.name == "nt" or sys.platform == "win32"):
cmd = [os.path.join(vivado_bin, "vivado.bat"), "-version"]
else:
cmd = ["vivado", "-version"]
try:
result = subprocess.run(cmd, capture_output=True, text=True, timeout=30, env=env)
if result.returncode == 0:
first_line = (result.stdout.strip().splitlines() or ["(no output)"])[0]
print(f"[OK] Vivado detected: {first_line}")
return True
else:
print(f"[FAIL] vivado -version non-zero exit: {result.stderr.strip()}")
return False
except FileNotFoundError:
print(f"[FAIL] vivado not found. CMD tried: {cmd}")
return False
except subprocess.TimeoutExpired:
print("[FAIL] vivado -version timed out (30s)")
return False
if __name__ == "__main__":
print("=" * 50)
print("LangGraph + Vivado smoke test")
print("=" * 50)
ok_lg = test_langgraph()
ok_vv = test_vivado()
print("=" * 50)
if ok_lg and ok_vv:
print("[PASS] All checks passed. LangGraph + Vivado pipeline OK!")
sys.exit(0)
else:
print("[FAIL] Some checks failed. See above.")
sys.exit(1)
```
### 运行冒烟测试
```bash
conda run -n langgraph python smoke_test.py
```
- **全部通过**:向用户报告"环境配置完成,LangGraph + Vivado 链路闭环成功。"
- **有失败项**:读取具体错误,向用户说明原因(路径问题、包未安装等),并提供修复建议。
---
## 注意事项
- Windows 路径转换规则:`C:\Xilinx\Vivado\2023.2\bin` → `/c/Xilinx/Vivado/2023.2/bin`(首字母小写,冒号去掉,反斜杠换正斜杠)。
- `conda run -n langgraph vivado -version` 需要 PATH 在 conda 激活前已包含 Vivado bin 目录,若不行则用 `export PATH=... && conda run ...` 形式或直接用绝对路径调用。
- 本技能产生的文件:`env_config.json`、`smoke_test.py`(均在调用时的当前目录)。