docs: standardize skill requirements declaration
This commit is contained in:
@@ -103,6 +103,7 @@ your-skill/
|
||||
├─ tests/
|
||||
├─ .gitignore
|
||||
├─ README.md
|
||||
├─ requirements.txt
|
||||
├─ release.ps1
|
||||
└─ SKILL.md
|
||||
```
|
||||
@@ -154,6 +155,20 @@ scripts/
|
||||
作用:运行时环境与统一日志副本
|
||||
一般按现有规范技能复制,不要自己乱改结构
|
||||
|
||||
### 3.1 `requirements.txt` 依赖规范
|
||||
|
||||
技能根目录的 `requirements.txt` 是**标准文件**,用于声明本技能特有的 Python 三方依赖。
|
||||
|
||||
- 匠厂宿主安装/更新技能后,会将其安装到共享 venv:`{JIANGCHANG_DATA_ROOT}/python-runtime/.venv`。
|
||||
- **不要**在业务代码中 `subprocess` / `pip install`;缺依赖由 `health` 报错,由宿主负责安装。
|
||||
- **版本约束尽量收窄**,降低多技能共享 venv 时的冲突风险。推荐范围写法:
|
||||
- `pkg>=1.2.0,<2`
|
||||
- 对**原生扩展 / 高风险依赖**(如 `chromadb`、`onnxruntime`)建议 pin 或窄范围,避免无上限:
|
||||
- 不推荐:`chromadb>=0.5.0`
|
||||
- 推荐:`chromadb>=0.5.23,<0.6`
|
||||
- **不要**把系统组件(VC++ Runtime、浏览器安装包等)写进 `requirements.txt`;这类前置条件写在 `health` / preflight 文档与错误提示中。
|
||||
- 若技能无额外 Python 依赖,可保留仅含注释的 `requirements.txt`(宿主会识别为 empty 并跳过安装)。
|
||||
|
||||
## 4. 开发一个新 skill 的标准步骤
|
||||
|
||||
下面这套顺序建议严格按步骤做,不要一上来就直接写 `service`。
|
||||
|
||||
@@ -164,6 +164,18 @@
|
||||
- `【平台名】`:作用是 `【用途】`
|
||||
- `【浏览器 / API / 第三方服务】`:作用是 `【用途】`
|
||||
|
||||
### Python 包依赖(requirements.txt)
|
||||
|
||||
- 本技能若需额外 Python 三方包,写入根目录 `requirements.txt`。
|
||||
- 匠厂宿主安装/更新技能后,会安装到 `{JIANGCHANG_DATA_ROOT}/python-runtime/.venv`。
|
||||
- 版本须尽量收窄(如 `requests>=2.31.0,<3`),避免共享 venv 冲突。
|
||||
- **不要**把系统运行时组件(如 Microsoft Visual C++ Redistributable)写进 requirements.txt。
|
||||
|
||||
### 系统运行时前置条件(preflight / health)
|
||||
|
||||
- 若依赖 Windows 原生 DLL、本机浏览器 channel 等**系统级**能力,在 `health` / preflight 中检测并提示用户自行安装。
|
||||
- 此类依赖**不**通过 pip / requirements.txt 由宿主自动安装。
|
||||
|
||||
示例:
|
||||
|
||||
### 兄弟技能依赖
|
||||
|
||||
Reference in New Issue
Block a user