refactor: simplify reader digest skill
This commit is contained in:
@@ -1,46 +1,27 @@
|
||||
# IMA 凭证链:从 reader `.env` 到 IMA 上传
|
||||
# IMA 凭证与安全边界
|
||||
|
||||
## 凭证来源
|
||||
## 必需配置
|
||||
|
||||
IMA 上传所需的凭证存储在多个位置,优先级如下:
|
||||
- `IMA_OPENAPI_CLIENTID`
|
||||
- `IMA_OPENAPI_APIKEY`
|
||||
- `IMA_DAILY_KNOWLEDGE_BASE_ID`
|
||||
- `IMA_DAILY_KNOWLEDGE_BASE_NAME=daily`
|
||||
|
||||
| 优先级 | 位置 | 说明 |
|
||||
|--------|------|------|
|
||||
| 1 | 环境变量 `IMA_OPENAPI_CLIENTID` / `IMA_OPENAPI_APIKEY` | Hermes session 级 |
|
||||
| 2 | `~/.config/ima/client_id` / `api_key` | ima-skill 的默认检查路径 |
|
||||
| 3 | `/home/ubuntu/zhu/github/reader/.env` | reader 项目配置,含完整的 IMA 凭证和 KB ID |
|
||||
优先使用当前进程环境和 IMA Skill 已支持的凭证加载机制。不要在本 Skill 中复制、迁移或重写密钥文件。
|
||||
|
||||
## 凭证内容(reader .env 中)
|
||||
## 缺失处理
|
||||
|
||||
```
|
||||
IMA_OPENAPI_CLIENTID=<32位hex>
|
||||
IMA_OPENAPI_APIKEY=<base64编码的API密钥>
|
||||
IMA_DAILY_KNOWLEDGE_BASE_ID=<base64编码的KB ID>
|
||||
IMA_DAILY_KNOWLEDGE_BASE_NAME=daily
|
||||
```
|
||||
Preflight 返回凭证缺失或目标知识库无法解析时:
|
||||
|
||||
## 缺失时的处理流程
|
||||
1. 停止上传;
|
||||
2. 只报告缺失的变量名或配置项;
|
||||
3. 等待用户或运行环境补齐配置;
|
||||
4. 配置恢复后重新执行 preflight,不重复生成知识笔记。
|
||||
|
||||
当 IMA 上传失败(`-100` 凭证缺失错误)时:
|
||||
## 安全边界
|
||||
|
||||
1. 从 reader `.env` 读取凭证:
|
||||
```
|
||||
grep -E '^(IMA_OPENAPI_CLIENTID|IMA_OPENAPI_APIKEY)=' /home/ubuntu/zhu/github/reader/.env
|
||||
```
|
||||
2. 同步到 ima-skill 默认检查路径:
|
||||
```
|
||||
echo "<client_id>" > ~/.config/ima/client_id
|
||||
echo "<api_key>" > ~/.config/ima/api_key
|
||||
```
|
||||
3. (可选)追加到 Hermes `.env` 以全局生效:
|
||||
```
|
||||
echo "IMA_OPENAPI_CLIENTID=<client_id>" >> /root/.hermes/.env
|
||||
echo "IMA_OPENAPI_APIKEY=<api_key>" >> /root/.hermes/.env
|
||||
echo "IMA_DAILY_KNOWLEDGE_BASE_ID=<kb_id>" >> /root/.hermes/.env
|
||||
echo "IMA_DAILY_KNOWLEDGE_BASE_NAME=daily" >> /root/.hermes/.env
|
||||
```
|
||||
|
||||
## 执行注意事项
|
||||
|
||||
- **COS 凭证红线**:`create_media` 返回的 `cos_credential` 中的 `token`/`secret_id`/`secret_key` 在 `terminal()` 输出中会被 Hermes 替换为 `***`。必须用 `subprocess.run()` 捕获原始输出,或用 `execute_code` 内联操作。
|
||||
- **凭证格式**:`api_key` 是 base64 字符串(76 字符),`kb_id` 也是 base64 字符串。不要截断或转码。
|
||||
- 不在聊天、日志或命令输出中打印完整 API key、KB ID 或 COS 临时凭证;
|
||||
- `create_media` 返回的 COS 凭证仅在同一受控进程内传给上传工具,不写入磁盘;
|
||||
- 不通过拼接 Shell 字符串传递凭证,使用参数数组或 IMA Skill 的封装;
|
||||
- 不绕过 Hermes 的脱敏机制;若现有工具链无法安全传递凭证,停止并报告;
|
||||
- 上传结束后不持久化 COS 临时凭证。
|
||||
|
||||
Reference in New Issue
Block a user