v1.0.4: SYSTEM.md 触发优化(声明 image_in 也能自动兜底读剪贴板);README 新增 Claude Code 安装说明

This commit is contained in:
billowliu2 committed 2026-08-02 13:56:01 +08:00
1 parent 8174e88a52
commit b298b52262
5 files changed
+178 -24

No files matched your search

+84 -5
View File
@@ -82,7 +82,20 @@ MCP 服务器会随会话自动启动。
| --- | --- |
| 多模态模型 | 直接 Alt+V 粘贴图片,原生看图,插件不参与 |
| 非多模态 + 有图片路径 | 输入 `@截图.png` 或直接给路径,模型自动调 `read_image` |
| 非多模态 + 刚截图/复制 | 截图后**不要 Alt+V 粘贴**(CLI 会拒绝非多模态模型粘贴并报 `Current model does not support image input`),直接提问「分析这张截图」,模型自动调 `read_clipboard_image` 读系统剪贴板 |
| 非多模态 + 刚截图/复制 | 直接提问「分析这张截图」,模型自动调 `read_clipboard_image` 读系统剪贴板 |
| 非多模态 + 想用 Alt+V 粘贴 | 需先在 config.toml 给模型声明 `image_in`(见下),粘贴后直接提问即可——模型看不懂图片内容时会自动调 `read_clipboard_image`(剪贴板仍保留原图) |
| 粘贴被拦截 | 直接告诉模型「我粘贴图片被拦截了」,模型会自动改读剪贴板,无需你保存文件 |
#### 想用 Alt+V 粘贴?(给模型声明 `image_in`)
KimiCode 前端默认会拦截「不支持图片输入」模型的粘贴。在 `~/.kimi-code/config.toml` 给对应模型加上 `image_in` 即可放行:
```toml
[models."opencode-go/deepseek-v4-flash"]
capabilities = [ "thinking", "tool_use", "image_in" ] # 追加 image_in
```
> 注意:声明 `image_in` 只是让前端放行粘贴。纯文本模型依然**看不懂**图片内容——这正是插件的用武之地:模型收到图片但看不见内容时,会按 SYSTEM.md 规则自动调 `read_clipboard_image` 从剪贴板读图。**全程零命令、零前缀**。
## 激活与触发
@@ -107,10 +120,11 @@ MCP 服务器会随会话自动启动。
| --- | --- |
| 图片格式路径或 `@` 引用(`.png/.jpg/.jpeg/.webp/.gif/.bmp`) | **硬触发**:无条件调 `read_image(path)`,与提问语料无关 |
| 消息里有你无法解读的媒体内容(如粘贴的图片) | 忽略该媒体 part,自动调 `read_clipboard_image()` 读剪贴板(粘贴后剪贴板仍保留原图) |
| 提问语义涉及图像内容:图 / 截图 / 照片 / 界面 / 图表 / 验证码 / OCR 等,但无路径 | 自动调 `read_clipboard_image()` |
| 模型原生支持 `image_in`(多模态) | 跳过全部规则,原生看图,不调工具 |
| 提问语义涉及图像内容:图 / 截图 / 照片 / 界面 / 图表 / 验证码 / OCR 等,但无路径 | 自动调 `read_clipboard_image()`,**不会要求你重发** |
| 粘贴被拦截(报 `Current model does not support image input`) | 直接告诉模型,它会改调 `read_clipboard_image`(剪贴板仍保留原图) |
| 模型真正能看懂图片内容(多模态) | 跳过全部规则,原生看图,不调工具 |
**触发不依赖固定语料**——用户不需要说「分析这个图片」。图片格式路径是**无条件硬触发**;拿不准时模型会倾向于调工具而不是瞎猜(SYSTEM.md 里的明确规则)。
**触发不依赖固定语料、不依赖任何命令前缀**——用户不需要说「分析这个图片」,也不需要 `/skill` 之类的指令。图片格式路径是**无条件硬触发**;模型判断「自己看不见图片内容」或「用户想看图但消息里没有」时,会自动调工具而不是瞎猜或让你重发(SYSTEM.md 里的明确规则)。
**关于模型能力判断**:KimiCode 不向插件暴露「当前模型是否多模态」的信号,本插件提供两层判断:
@@ -119,6 +133,71 @@ MCP 服务器会随会话自动启动。
两层都是 fail-safe:判断错误最坏只是多一次外部调用(多模态误调)或漏调(文本模型漏调可用路径/语义信号补上)。若想硬性关闭,多模态场景可直接 `/plugins disable kimi-eyes`。
## Claude Code 使用(可选)
kimi-eyes 的 MCP 服务器是标准 MCP,可直接挂载到 Claude Code。**注意:以下命令请在系统终端(PowerShell / Git Bash)执行,不要在 Claude Code 内部的 Bash 工具里执行**(内部环境解析 `--scope` 等参数有差异)。
### 1. 前置要求
- Node.js ≥ 18
- Claude Code CLI(`claude --version`)
- 一个支持视觉的多模态 API(Key 由你自己提供)
### 2. 挂载 MCP 服务器(任选其一)
```bash
# 方式一:全局注册(user scope,所有项目可用)
claude mcp add --scope user kimi-eyes -- node D:\AIGC\Plugin\kimi-eyes\mcp\server.mjs
# 方式二:仅当前项目
claude mcp add kimi-eyes -- node D:\AIGC\Plugin\kimi-eyes\mcp\server.mjs
# 方式三:npx 通用版(不依赖本地路径,任何机器可复制)
claude mcp add --scope user kimi-eyes -- npx --prefer-online -y -p kimi-eyes kimi-eyes-mcp
```
### 3. 配置视觉 API(一次性)
```bash
npx kimi-eyes setup
```
> 复用同一份配置:kimi-eyes 在 KimiCode 和 Claude Code 下共用 `~/.kimi-code/kimi-eyes/config.json`(或环境变量 `VISION_*`)。
### 4. 引导规则(CLAUDE.md)
在项目根目录创建 `CLAUDE.md`(或追加到已有的),内容可参考本仓库根目录的 `CLAUDE.md`。核心规则:
```markdown
# Kimi Eyes — Vision Assist (Claude Code)
Whenever the user's request involves image content and you cannot see it directly:
1. Image path / @ reference → call `mcp__kimi-eyes__read_image` with that path.
2. Just screenshotted/copied, or media you cannot read → call
`mcp__kimi-eyes__read_clipboard_image` (image is almost always still in the clipboard).
3. Wording implies an image but no path → prefer `read_clipboard_image` over guessing.
If your model is multimodal (Claude 3+), you see images natively — ignore these rules.
```
### 5. 验证
```bash
claude mcp list
# kimi-eyes 应显示 √ Connected
```
### 6. 使用
```
有图片文件 → @C:\path\image.png 这个图里有什么?
刚截图 → 直接说「分析这张截图」(模型调 read_clipboard_image 读剪贴板)
```
### 注意
- Claude 3+ 模型原生多模态,Claude Code 大多场景直接看图;插件主要用于文本模型或统一走某个外部 VLM 的场景
- 卸载:`claude mcp remove kimi-eyes`
**首次调用会弹一次审批**(MCP 工具权限):选 *Approve for this session* 本会话免问;想永久免审批,在 `~/.kimi-code/config.toml` 添加:
```toml
@@ -184,7 +263,7 @@ node scripts/sync-models.mjs
## 故障排查
- **Alt+V 粘贴报 `Current model does not support image input`** → 这是 KimiCode CLI 的拦截:非多模态模型不支持粘贴图片。改用 `@图片路径`(`read_image`)或截图后直接提问(`read_clipboard_image` 读剪贴板)
- **Alt+V 粘贴报 `Current model does not support image input`** → KimiCode CLI 的拦截。两种解法:① 在 `config.toml` 给该模型追加 `image_in`(见「想用 Alt+V 粘贴?」)放行粘贴,模型看不懂图片时会自动读剪贴板;② 直接告诉模型「粘贴被拦截」,它会改调 `read_clipboard_image` 从剪贴板取图
- **工具返回「Vision API is not configured」** → 运行 `node setup.mjs`,或设置 `VISION_API_KEY` / `VISION_API_URL` / `VISION_MODEL`
- **模型列表拉取失败**(404/401)→ 向导自动回退手动输入;若服务端不支持 `/models`,直接输入模型名即可
- **视觉验证失败** → 换一个真正支持图片输入的模型(参考服务商文档,如 `qwen-vl-max`、`glm-4v`、`gpt-4o`、`claude-3-5-sonnet` 等)