Update from Sync Service
This commit is contained in:
425
wiki/sources/ChromeDevTools与CDP协议完全指南
Executable file
425
wiki/sources/ChromeDevTools与CDP协议完全指南
Executable file
@@ -0,0 +1,425 @@
|
|||||||
|
# Chrome DevTools 与 CDP 协议完全指南
|
||||||
|
|
||||||
|
> Chrome DevTools 开发者工具 + Chrome DevTools Protocol (CDP) 协议深度研究
|
||||||
|
>
|
||||||
|
> 归档:2026-04-25
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 生态概览
|
||||||
|
|
||||||
|
| 项目 | Stars | 定位 |
|
||||||
|
|------|-------|------|
|
||||||
|
| **Puppeteer** | 94,185 | Google 官方 Node.js CDP 库 |
|
||||||
|
| **Playwright** | 87,219 | 微软多浏览器自动化框架 |
|
||||||
|
| **go-rod/rod** | 6,881 | Go 语言 CDP 驱动 |
|
||||||
|
| **CDP 协议仓库** | 1,476 | 官方协议定义 |
|
||||||
|
| **cdpnetool** | 336 | CDP 网络调试工具 |
|
||||||
|
| **ichrome** | 259 | Python CDP 控制器 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 Chrome DevTools 是什么
|
||||||
|
|
||||||
|
**Chrome DevTools** 是 Chrome/Chromium 浏览器内置的**开发者调试工具集**,提供:
|
||||||
|
- DOM/CSS 检查与编辑
|
||||||
|
- JavaScript 调试与性能分析
|
||||||
|
- 网络请求监控与拦截
|
||||||
|
- 内存泄漏检测
|
||||||
|
- 移动端模拟
|
||||||
|
|
||||||
|
**底层协议:CDP(Chrome DevTools Protocol)**
|
||||||
|
|
||||||
|
CDP 是 DevTools 的**通信协议**,允许外部工具通过 WebSocket 与浏览器交互,实现:
|
||||||
|
- 自动化测试
|
||||||
|
- 网页爬取
|
||||||
|
- 性能监控
|
||||||
|
- 安全审计
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔌 CDP 协议架构
|
||||||
|
|
||||||
|
### 核心概念
|
||||||
|
|
||||||
|
```
|
||||||
|
外部工具(Puppeteer/Playwright/自定义)
|
||||||
|
↓ WebSocket
|
||||||
|
Chrome DevTools Protocol (CDP)
|
||||||
|
↓
|
||||||
|
Chromium 浏览器内核
|
||||||
|
```
|
||||||
|
|
||||||
|
- **Domain(域)**:功能分类(Network、DOM、Page 等)
|
||||||
|
- **Command(命令)**:工具→浏览器的请求
|
||||||
|
- **Event(事件)**:浏览器→工具的通知
|
||||||
|
- **Type(类型)**:数据结构定义
|
||||||
|
|
||||||
|
### 协议版本
|
||||||
|
|
||||||
|
| 版本 | 说明 | 适用场景 |
|
||||||
|
|------|------|---------|
|
||||||
|
| **latest (tot)** | 最新版本,频繁变更 | 最新功能探索 |
|
||||||
|
| **v8-inspector** | Node.js 调试专用 | Node.js 调试 |
|
||||||
|
| **stable 1.3** | Chrome 64 锁定,向后兼容 | 生产环境 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📦 45+ 核心 Domain 分类
|
||||||
|
|
||||||
|
### 🔍 页面与 DOM
|
||||||
|
|
||||||
|
| Domain | 核心能力 |
|
||||||
|
|--------|---------|
|
||||||
|
| **Page** | 页面导航、截图、打印、生命周期管理 |
|
||||||
|
| **DOM** | DOM 树查询、修改、监听变化 |
|
||||||
|
| **DOMSnapshot** | 获取完整 DOM 快照 |
|
||||||
|
| **DOMDebugger** | DOM 事件断点 |
|
||||||
|
| **DOMStorage** | localStorage/sessionStorage 操作 |
|
||||||
|
|
||||||
|
### 🌐 网络
|
||||||
|
|
||||||
|
| Domain | 核心能力 |
|
||||||
|
|--------|---------|
|
||||||
|
| **Network** | 请求/响应拦截、修改、性能分析 |
|
||||||
|
| **Fetch** | 请求级拦截与修改(Mock API) |
|
||||||
|
| **Security** | 证书、HTTPS、安全状态 |
|
||||||
|
| **ServiceWorker** | SW 注册/注销/调试 |
|
||||||
|
|
||||||
|
### ⚡ 调试与性能
|
||||||
|
|
||||||
|
| Domain | 核心能力 |
|
||||||
|
|--------|---------|
|
||||||
|
| **Runtime** | JS 执行、对象检查、异常捕获 |
|
||||||
|
| **Debugger** | 断点、单步执行、调用栈 |
|
||||||
|
| **Profiler** | CPU 性能分析 |
|
||||||
|
| **HeapProfiler** | 内存堆分析、泄漏检测 |
|
||||||
|
| **Performance** | 性能指标采集 |
|
||||||
|
| **Tracing** | 底层追踪数据 |
|
||||||
|
|
||||||
|
### 📱 模拟与仿真
|
||||||
|
|
||||||
|
| Domain | 核心能力 |
|
||||||
|
|--------|---------|
|
||||||
|
| **Emulation** | 设备模拟、屏幕尺寸、地理位置 |
|
||||||
|
| **Input** | 模拟鼠标/键盘/触摸输入 |
|
||||||
|
| **DeviceOrientation** | 模拟设备方向 |
|
||||||
|
|
||||||
|
### 🎨 样式与渲染
|
||||||
|
|
||||||
|
| Domain | 核心能力 |
|
||||||
|
|--------|---------|
|
||||||
|
| **CSS** | 样式表查询、修改、计算样式 |
|
||||||
|
| **Overlay** | 高亮元素、网格线、滚动条 |
|
||||||
|
| **LayerTree** | 渲染层分析 |
|
||||||
|
| **Animation** | 动画检查与控制 |
|
||||||
|
|
||||||
|
### 🔧 其他
|
||||||
|
|
||||||
|
| Domain | 核心能力 |
|
||||||
|
|--------|---------|
|
||||||
|
| **Browser** | 浏览器级操作(版本、窗口管理) |
|
||||||
|
| **Target** | Tab/Worker 管理 |
|
||||||
|
| **Log** | 控制台日志捕获 |
|
||||||
|
| **Console** | 控制台消息 |
|
||||||
|
| **IO** | 流式数据读写 |
|
||||||
|
| **Storage** | Cookie、IndexedDB、Cache |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💻 常用 CDP 命令速查
|
||||||
|
|
||||||
|
### 页面操作
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// 导航到页面
|
||||||
|
Page.navigate({ url: 'https://example.com' })
|
||||||
|
|
||||||
|
// 截图
|
||||||
|
Page.captureScreenshot({ format: 'png' })
|
||||||
|
|
||||||
|
// 打印为 PDF
|
||||||
|
Page.printToPDF({
|
||||||
|
landscape: false,
|
||||||
|
displayHeaderFooter: true
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
### 网络拦截
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// 启用网络域
|
||||||
|
Network.enable()
|
||||||
|
|
||||||
|
// 拦截并修改请求
|
||||||
|
Fetch.enable({
|
||||||
|
patterns: [{ urlPattern: '*', requestStage: 'Request' }]
|
||||||
|
})
|
||||||
|
|
||||||
|
// 修改请求头
|
||||||
|
Fetch.continueRequest({
|
||||||
|
requestId,
|
||||||
|
headers: [{ name: 'User-Agent', value: 'Custom' }]
|
||||||
|
})
|
||||||
|
|
||||||
|
// Mock 响应
|
||||||
|
Fetch.fulfillRequest({
|
||||||
|
requestId,
|
||||||
|
responseCode: 200,
|
||||||
|
body: btoa(JSON.stringify({ mock: true }))
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
### JS 执行
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// 执行 JS
|
||||||
|
Runtime.evaluate({
|
||||||
|
expression: 'document.title'
|
||||||
|
})
|
||||||
|
|
||||||
|
// 设置断点
|
||||||
|
Debugger.enable()
|
||||||
|
Debugger.setBreakpoint({
|
||||||
|
location: {
|
||||||
|
scriptId: '1',
|
||||||
|
lineNumber: 10
|
||||||
|
}
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
### 设备模拟
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// 模拟 iPhone
|
||||||
|
Emulation.setDeviceMetricsOverride({
|
||||||
|
width: 375,
|
||||||
|
height: 812,
|
||||||
|
deviceScaleFactor: 3,
|
||||||
|
mobile: true
|
||||||
|
})
|
||||||
|
|
||||||
|
// 模拟地理位置
|
||||||
|
Emulation.setGeolocationOverride({
|
||||||
|
latitude: 39.9042,
|
||||||
|
longitude: 116.4074
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
### DOM 操作
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// 获取 DOM 树
|
||||||
|
DOM.getDocument({ depth: 2 })
|
||||||
|
|
||||||
|
// 查询元素
|
||||||
|
DOM.querySelector({
|
||||||
|
nodeId: 1,
|
||||||
|
selector: '.my-class'
|
||||||
|
})
|
||||||
|
|
||||||
|
// 修改属性
|
||||||
|
DOM.setAttributeValue({
|
||||||
|
nodeId: 42,
|
||||||
|
name: 'class',
|
||||||
|
value: 'new-class'
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🛠️ 主流 CDP 库对比
|
||||||
|
|
||||||
|
### Puppeteer(官方推荐)
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
const puppeteer = require('puppeteer');
|
||||||
|
|
||||||
|
const browser = await puppeteer.launch();
|
||||||
|
const page = await browser.newPage();
|
||||||
|
await page.goto('https://example.com');
|
||||||
|
await page.screenshot({ path: 'example.png' });
|
||||||
|
await browser.close();
|
||||||
|
```
|
||||||
|
|
||||||
|
| 特性 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| **语言** | Node.js |
|
||||||
|
| **维护** | Google 官方 |
|
||||||
|
| **Stars** | 94k+ |
|
||||||
|
| **适合** | 爬虫、截图、自动化测试 |
|
||||||
|
|
||||||
|
### Playwright(多浏览器)
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
const { chromium } = require('playwright');
|
||||||
|
|
||||||
|
const browser = await chromium.launch();
|
||||||
|
const page = await browser.newPage();
|
||||||
|
await page.goto('https://example.com');
|
||||||
|
// 同时支持 Chromium / Firefox / WebKit
|
||||||
|
```
|
||||||
|
|
||||||
|
| 特性 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| **语言** | JS/Python/Java/.NET |
|
||||||
|
| **维护** | 微软 |
|
||||||
|
| **Stars** | 87k+ |
|
||||||
|
| **适合** | 跨浏览器 E2E 测试 |
|
||||||
|
|
||||||
|
### go-rod(Go 语言)
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "github.com/go-rod/rod"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
page := rod.New().MustConnect().MustPage("https://example.com")
|
||||||
|
page.MustElement("input").MustInput("hello")
|
||||||
|
page.MustScreenshot("example.png")
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
| 特性 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| **语言** | Go |
|
||||||
|
| **Stars** | 6.8k |
|
||||||
|
| **适合** | Go 生态、高性能爬虫 |
|
||||||
|
|
||||||
|
### ichrome(Python)
|
||||||
|
|
||||||
|
```python
|
||||||
|
import asyncio
|
||||||
|
from ichrome import AsyncChrome
|
||||||
|
|
||||||
|
async def main():
|
||||||
|
async with AsyncChrome() as chrome:
|
||||||
|
tab = await chrome.connect_tab(0)
|
||||||
|
await tab.goto('https://example.com')
|
||||||
|
await tab.screenshot(path='example.png')
|
||||||
|
|
||||||
|
asyncio.run(main())
|
||||||
|
```
|
||||||
|
|
||||||
|
| 特性 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| **语言** | Python |
|
||||||
|
| **Stars** | 259 |
|
||||||
|
| **适合** | Python 爬虫、自动化 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 典型应用场景
|
||||||
|
|
||||||
|
### 1. 网页自动化
|
||||||
|
|
||||||
|
```
|
||||||
|
场景:自动填写表单、点击按钮、爬取数据
|
||||||
|
方案:Puppeteer / Playwright
|
||||||
|
关键 API:Page.navigate, Page.click, Page.type
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 网络请求拦截
|
||||||
|
|
||||||
|
```
|
||||||
|
场景:Mock API 响应、修改请求头
|
||||||
|
方案:Fetch Domain
|
||||||
|
关键 API:Fetch.enable, Fetch.fulfillRequest
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 性能分析
|
||||||
|
|
||||||
|
```
|
||||||
|
场景:检测页面加载性能、内存泄漏
|
||||||
|
方案:Performance + HeapProfiler Domain
|
||||||
|
关键 API:Performance.getMetrics, HeapProfiler.takeHeapSnapshot
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. 移动端测试
|
||||||
|
|
||||||
|
```
|
||||||
|
场景:模拟手机设备访问
|
||||||
|
方案:Emulation Domain
|
||||||
|
关键 API:Emulation.setDeviceMetricsOverride
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. 安全审计
|
||||||
|
|
||||||
|
```
|
||||||
|
场景:检测 XSS、检查 HTTPS
|
||||||
|
方案:Security + DOMDebugger Domain
|
||||||
|
关键 API:Security.getSecurityState, DOMDebugger.setDOMBreakpoint
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔧 开发调试技巧
|
||||||
|
|
||||||
|
### 启用 Protocol Monitor
|
||||||
|
|
||||||
|
1. 打开 DevTools → 设置 ⚙️
|
||||||
|
2. Experiments → 启用 "Protocol Monitor"
|
||||||
|
3. More Tools → Protocol monitor
|
||||||
|
4. 查看所有 CDP 命令和响应
|
||||||
|
|
||||||
|
### 直接发送 CDP 命令
|
||||||
|
|
||||||
|
```
|
||||||
|
# 截图
|
||||||
|
Page.captureScreenshot
|
||||||
|
|
||||||
|
# 带参数
|
||||||
|
{"cmd":"Page.captureScreenshot","args":{"format":"jpeg"}}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 远程调试
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 启动 Chrome 远程调试
|
||||||
|
chrome --remote-debugging-port=9222
|
||||||
|
|
||||||
|
# 连接 WebSocket
|
||||||
|
ws://localhost:9222/devtools/page/<pageId>
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 CDP 在 AI 编程中的应用
|
||||||
|
|
||||||
|
| 场景 | CDP 的作用 |
|
||||||
|
|------|-----------|
|
||||||
|
| **Superpowers 代码审查** | 通过 CDP 检查页面实际渲染效果 |
|
||||||
|
| **AI 自动化测试** | 控制浏览器执行 E2E 测试 |
|
||||||
|
| **网页爬取** | 动态渲染页面的内容提取 |
|
||||||
|
| **性能优化建议** | CDP 采集真实性能数据 |
|
||||||
|
| **安全扫描** | 自动检测前端安全问题 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 资源
|
||||||
|
|
||||||
|
| 资源 | 链接 |
|
||||||
|
|------|------|
|
||||||
|
| **CDP 官方文档** | https://chromedevtools.github.io/devtools-protocol/ |
|
||||||
|
| **Getting Started with CDP** | https://github.com/aslushnikov/getting-started-with-cdp |
|
||||||
|
| **awesome-chrome-devtools** | https://github.com/ChromeDevTools/awesome-chrome-devtools |
|
||||||
|
| **Puppeteer** | https://github.com/puppeteer/puppeteer |
|
||||||
|
| **Playwright** | https://github.com/microsoft/playwright |
|
||||||
|
| **go-rod** | https://github.com/go-rod/rod |
|
||||||
|
| **cdpnetool** | https://github.com/241x/cdpnetool |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 与 OpenClaw 的结合点
|
||||||
|
|
||||||
|
| 结合方式 | 说明 |
|
||||||
|
|---------|------|
|
||||||
|
| **Browser 工具** | OpenClaw 已通过 Playwright 集成 CDP |
|
||||||
|
| **网页自动化** | 可通过 CDP 控制浏览器完成任务 |
|
||||||
|
| **性能监控** | CDP 采集数据 → AI 分析建议 |
|
||||||
|
| **安全审计** | CDP 检测 → AI 生成报告 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*整理:知识库管理员 | 归档:2026-04-25*
|
||||||
191
wiki/sources/ClaudeHaiku完全研究
Executable file
191
wiki/sources/ClaudeHaiku完全研究
Executable file
@@ -0,0 +1,191 @@
|
|||||||
|
# Claude Haiku 完全研究
|
||||||
|
|
||||||
|
> Anthropic 轻量级大模型家族:速度与成本的平衡艺术
|
||||||
|
>
|
||||||
|
> 归档:2026-04-25
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 生态概览
|
||||||
|
|
||||||
|
**Haiku** 是 Anthropic Claude 家族中的**轻量级模型**,定位为"速度最快、成本最低"的选择。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🏆 Haiku 家族三代对比
|
||||||
|
|
||||||
|
| 特性 | Claude 3 Haiku | Claude 3.5 Haiku | Claude Haiku 4.5 |
|
||||||
|
|------|---------------|-----------------|-----------------|
|
||||||
|
| **发布时间** | 2024 年 3 月 | 2024 年 11 月 | 2025 年 10 月 |
|
||||||
|
| **上下文窗口** | 200K | 200K | 200K |
|
||||||
|
| **输入价格** | $0.25/M | $0.80/M | $1.00/M |
|
||||||
|
| **输出价格** | $1.25/M | $4.00/M | $5.00/M |
|
||||||
|
| **缓存读取** | $0.03/M | $0.08/M | $0.10/M |
|
||||||
|
| **缓存写入** | $0.30/M | $1.00/M | $1.25/M |
|
||||||
|
| **联网搜索** | - | $0.01/次 | $0.01/次 |
|
||||||
|
|
||||||
|
### 定价对比(全家族)
|
||||||
|
|
||||||
|
| 模型 | 输入价格 | 输出价格 | 倍数关系 |
|
||||||
|
|------|---------|---------|---------|
|
||||||
|
| **Haiku 4.5** | $1/M | $5/M | 基准 |
|
||||||
|
| **Sonnet 4.6** | $3/M | $15/M | 3x |
|
||||||
|
| **Opus 4.7** | $5/M | $25/M | 5x |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 核心定位
|
||||||
|
|
||||||
|
```
|
||||||
|
Opus ───→ 最强大,适合复杂推理和编码
|
||||||
|
Sonnet ──→ 平衡选择,日常生产力
|
||||||
|
Haiku ───→ 最快最便宜,简单任务首选
|
||||||
|
```
|
||||||
|
|
||||||
|
**Haiku = 速度优先 + 成本优先**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💪 典型应用场景
|
||||||
|
|
||||||
|
| 场景 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| **数据提取** | 从文本/表格中提取结构化数据 |
|
||||||
|
| **内容审核** | 快速判断内容是否合规 |
|
||||||
|
| **分类任务** | 文本分类、情感分析 |
|
||||||
|
| **简单问答** | 常见问题解答 |
|
||||||
|
| **格式转换** | 数据格式转换、JSON 输出 |
|
||||||
|
| **子代理** | 多代理架构中的轻量执行者 |
|
||||||
|
| **网页读取** | 网页内容摘要和提取 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🤖 与 Opus/Sonnet 的协作模式
|
||||||
|
|
||||||
|
### 子代理模式(推荐)
|
||||||
|
|
||||||
|
```
|
||||||
|
Opus(主代理)
|
||||||
|
↓ 拆分任务
|
||||||
|
Haiku(子代理)→ 处理简单任务(分类、提取、格式化)
|
||||||
|
↓ 返回结果
|
||||||
|
Opus 汇总
|
||||||
|
```
|
||||||
|
|
||||||
|
**优势**:
|
||||||
|
- 80% 的简单任务用 Haiku(便宜 5 倍)
|
||||||
|
- 20% 的复杂任务用 Opus
|
||||||
|
- 整体成本降低 60%+
|
||||||
|
|
||||||
|
### 分类路由模式
|
||||||
|
|
||||||
|
```
|
||||||
|
用户请求 → 路由器(Haiku)
|
||||||
|
↓ 简单任务 → Haiku 处理
|
||||||
|
↓ 复杂任务 → Sonnet/Opus 处理
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔧 API 使用示例
|
||||||
|
|
||||||
|
### Python
|
||||||
|
|
||||||
|
```python
|
||||||
|
import anthropic
|
||||||
|
|
||||||
|
client = anthropic.Anthropic(api_key="your_api_key")
|
||||||
|
|
||||||
|
message = client.messages.create(
|
||||||
|
model="claude-haiku-4-5-20251001-v1:0",
|
||||||
|
max_tokens=1024,
|
||||||
|
messages=[
|
||||||
|
{"role": "user", "content": "提取以下文本中的关键信息:..."}
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
print(message.content[0].text)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Node.js
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
const { Anthropic } = require('@anthropic-ai/sdk');
|
||||||
|
|
||||||
|
const client = new Anthropic({
|
||||||
|
apiKey: process.env.ANTHROPIC_API_KEY
|
||||||
|
});
|
||||||
|
|
||||||
|
const message = await client.messages.create({
|
||||||
|
model: 'claude-haiku-4-5-20251001-v1:0',
|
||||||
|
max_tokens: 1024,
|
||||||
|
messages: [
|
||||||
|
{ role: 'user', content: '提取以下文本中的关键信息:...' }
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(message.content[0].text);
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 性能对比(相对排名)
|
||||||
|
|
||||||
|
| 能力 | Haiku 4.5 | Sonnet 4.6 | Opus 4.7 |
|
||||||
|
|------|-----------|-----------|---------|
|
||||||
|
| **数学推理** | ★★★☆☆ | ★★★★☆ | ★★★★★ |
|
||||||
|
| **编码能力** | ★★★☆☆ | ★★★★☆ | ★★★★★ |
|
||||||
|
| **创意写作** | ★★★☆☆ | ★★★★☆ | ★★★★★ |
|
||||||
|
| **数据分析** | ★★★★☆ | ★★★★☆ | ★★★★★ |
|
||||||
|
| **响应速度** | ★★★★★ | ★★★★☆ | ★★★☆☆ |
|
||||||
|
| **成本效率** | ★★★★★ | ★★★★☆ | ★★★☆☆ |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 获取渠道
|
||||||
|
|
||||||
|
| 平台 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| **Anthropic API** | 官方渠道 |
|
||||||
|
| **AWS Bedrock** | 企业集成 |
|
||||||
|
| **Google Vertex AI** | GCP 生态 |
|
||||||
|
| **OpenRouter** | 多模型聚合 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 最佳实践
|
||||||
|
|
||||||
|
| 实践 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| **简单任务用 Haiku** | 分类、提取、格式化等任务首选 |
|
||||||
|
| **提示词精简** | Haiku 上下文窗口虽大,但精简提示词效果更好 |
|
||||||
|
| **批量处理** | 大量简单任务批量用 Haiku,成本极低 |
|
||||||
|
| **缓存利用** | 系统提示词缓存可进一步降低成本 |
|
||||||
|
| **分级路由** | 用 Haiku 做任务分类器,再路由到更强模型 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📝 选型建议
|
||||||
|
|
||||||
|
| 你的需求 | 选它 |
|
||||||
|
|---------|------|
|
||||||
|
| 复杂推理、编码、深度分析 | Opus |
|
||||||
|
| 日常对话、文档生成 | Sonnet |
|
||||||
|
| 分类、提取、简单问答、批量处理 | **Haiku** |
|
||||||
|
| 成本控制优先 | **Haiku** |
|
||||||
|
| 速度优先 | **Haiku** |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 资源
|
||||||
|
|
||||||
|
| 资源 | 链接 |
|
||||||
|
|------|------|
|
||||||
|
| **Anthropic 官方** | https://www.anthropic.com |
|
||||||
|
| **Claude Cookbook** | https://github.com/anthropics/claude-cookbooks |
|
||||||
|
| **Anthropic Discord** | https://www.anthropic.com/discord |
|
||||||
|
| **OpenRouter** | https://openrouter.ai |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*整理:知识库管理员 | 归档:2026-04-25*
|
||||||
322
wiki/sources/GitButler完全研究
Executable file
322
wiki/sources/GitButler完全研究
Executable file
@@ -0,0 +1,322 @@
|
|||||||
|
# GitButler 完全研究
|
||||||
|
|
||||||
|
> Git 的现代替代品:堆叠分支 + AI 集成 + 无限撤销
|
||||||
|
>
|
||||||
|
> 归档:2026-04-25
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 项目概览
|
||||||
|
|
||||||
|
| 属性 | 值 |
|
||||||
|
|------|------|
|
||||||
|
| **仓库** | gitbutlerapp/gitbutler |
|
||||||
|
| **Stars** | 20,643 |
|
||||||
|
| **语言** | Rust (后端) + Svelte/TypeScript (前端) |
|
||||||
|
| **框架** | Tauri |
|
||||||
|
| **创建** | 2023-01-31 |
|
||||||
|
| **许可** | Fair Source(2 年后转 MIT) |
|
||||||
|
| **下载** | gitbutler.com/downloads |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 核心定位
|
||||||
|
|
||||||
|
```
|
||||||
|
GitButler = Git 的现代 GUI + CLI 替代品
|
||||||
|
↓
|
||||||
|
底层依然是 Git
|
||||||
|
↓
|
||||||
|
但体验更简单、更强大
|
||||||
|
```
|
||||||
|
|
||||||
|
**一句话**:在现有 Git 仓库上直接运行,提供更友好、更强大的版本控制体验。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🏗️ 技术架构
|
||||||
|
|
||||||
|
```
|
||||||
|
┌──────────────────────────────────┐
|
||||||
|
│ 用户界面 │
|
||||||
|
│ ┌──────────┐ ┌──────────────┐ │
|
||||||
|
│ │ GUI │ │ CLI │ │
|
||||||
|
│ │ (Svelte) │ │ (but) │ │
|
||||||
|
│ └────┬─────┘ └──────┬───────┘ │
|
||||||
|
└───────┼───────────────┼──────────┘
|
||||||
|
│ │
|
||||||
|
┌───────┴───────────────┴──────────┐
|
||||||
|
│ Rust 后端引擎 │
|
||||||
|
│ (版本控制逻辑 + Git 操作) │
|
||||||
|
└───────────────┬──────────────────┘
|
||||||
|
│
|
||||||
|
┌───────────────┴──────────────────┐
|
||||||
|
│ Git │
|
||||||
|
│ (底层存储) │
|
||||||
|
└──────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
| 组件 | 技术 |
|
||||||
|
|------|------|
|
||||||
|
| **GUI** | Tauri + Svelte + TypeScript |
|
||||||
|
| **CLI** | Rust (but 命令) |
|
||||||
|
| **后端** | Rust |
|
||||||
|
| **底层** | Git(直接操作现有仓库) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 七大核心特性
|
||||||
|
|
||||||
|
### 1. 堆叠分支(Stacked Branches)
|
||||||
|
|
||||||
|
```
|
||||||
|
main
|
||||||
|
└── feature-a
|
||||||
|
└── feature-b ← 基于 feature-a
|
||||||
|
└── fix-c ← 基于 feature-b
|
||||||
|
```
|
||||||
|
|
||||||
|
**解决的问题**:
|
||||||
|
- 在开发功能 B 时,需要基于还没合并的功能 A
|
||||||
|
- 传统 Git 需要频繁 cherry-pick 或 rebase
|
||||||
|
- GitButler 自动处理堆叠和重新堆叠
|
||||||
|
|
||||||
|
**编辑任何提交**:修改堆叠中间的提交,上方分支自动重新堆叠。
|
||||||
|
|
||||||
|
### 2. 并行分支(Parallel Branches)
|
||||||
|
|
||||||
|
```
|
||||||
|
同时工作:
|
||||||
|
- feature-a (branch-1)
|
||||||
|
- bug-fix (branch-2)
|
||||||
|
- experiment (branch-3)
|
||||||
|
|
||||||
|
不需要切换分支!
|
||||||
|
```
|
||||||
|
|
||||||
|
**解决的问题**:
|
||||||
|
- 传统 Git 需要在不同分支间频繁 `checkout`
|
||||||
|
- GitButler 允许同时工作,各自提交
|
||||||
|
|
||||||
|
### 3. 提交管理(Commit Management)
|
||||||
|
|
||||||
|
| 操作 | 传统 Git | GitButler |
|
||||||
|
|------|---------|----------|
|
||||||
|
| 修改提交 | `git commit --amend` | 拖拽 |
|
||||||
|
| 拆分提交 | `git rebase -i` | 拖拽 |
|
||||||
|
| 移动提交 | `git cherry-pick` | 拖拽 |
|
||||||
|
| 重命名提交 | `git rebase -i` | 点击重命名 |
|
||||||
|
| 撤销提交 | `git revert` | 点击撤销 |
|
||||||
|
|
||||||
|
**忘掉 `git rebase -i`**:拖拽就够了。
|
||||||
|
|
||||||
|
### 4. 无限撤销(Undo Timeline)
|
||||||
|
|
||||||
|
```
|
||||||
|
操作日志:
|
||||||
|
09:00 - 创建了提交 "fix: bug"
|
||||||
|
09:15 - 合并到 main
|
||||||
|
09:30 - 推送
|
||||||
|
10:00 - 发现错误 → 一键撤销!
|
||||||
|
```
|
||||||
|
|
||||||
|
**解决的问题**:
|
||||||
|
- Git 的 `git reflog` 很难用
|
||||||
|
- GitButler 记录所有操作和变更
|
||||||
|
- 一键撤销或回退任何操作
|
||||||
|
|
||||||
|
### 5. 冲突处理(Conflict Resolution)
|
||||||
|
|
||||||
|
```
|
||||||
|
rebase 永远成功!
|
||||||
|
|
||||||
|
提交可以标记为"冲突中"
|
||||||
|
随时以任何顺序解决冲突
|
||||||
|
```
|
||||||
|
|
||||||
|
**解决的问题**:
|
||||||
|
- Git rebase 冲突时会中断
|
||||||
|
- GitButler 允许冲突存在,标记后继续工作
|
||||||
|
- 随时解决冲突,不阻塞其他操作
|
||||||
|
|
||||||
|
### 6. 代码托管集成(Forge Integration)
|
||||||
|
|
||||||
|
| 平台 | 功能 |
|
||||||
|
|------|------|
|
||||||
|
| **GitHub** | PR 创建/更新、CI 状态、分支列表 |
|
||||||
|
| **GitLab** | MR 创建/更新、Pipeline 状态 |
|
||||||
|
| **Bitbucket** | 支持中 |
|
||||||
|
|
||||||
|
**认证一次**,就能:
|
||||||
|
- 一键创建/更新 PR
|
||||||
|
- 查看 CI 状态
|
||||||
|
- 管理远程分支
|
||||||
|
|
||||||
|
### 7. AI 集成(AI Tooling)
|
||||||
|
|
||||||
|
| AI 功能 | 说明 |
|
||||||
|
|---------|------|
|
||||||
|
| 提交信息 | AI 自动生成 commit message |
|
||||||
|
| 分支命名 | AI 建议分支名 |
|
||||||
|
| PR 描述 | AI 生成 PR 描述 |
|
||||||
|
| Agent Hooks | 支持 Claude Code、Cursor 等 AI 编程工具 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🤖 CLI:but 命令
|
||||||
|
|
||||||
|
### 安装
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# macOS
|
||||||
|
brew install gitbutler
|
||||||
|
|
||||||
|
# 或从 releases 下载
|
||||||
|
```
|
||||||
|
|
||||||
|
### 常用命令
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 初始化项目
|
||||||
|
but init
|
||||||
|
|
||||||
|
# 创建分支
|
||||||
|
but branch create feature-abc
|
||||||
|
|
||||||
|
# 提交变更
|
||||||
|
but commit -m "fix: bug"
|
||||||
|
|
||||||
|
# 查看状态
|
||||||
|
but status
|
||||||
|
|
||||||
|
# AI 生成提交信息
|
||||||
|
but ai commit-message
|
||||||
|
|
||||||
|
# 创建 PR
|
||||||
|
but pr create
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🆚 与 Git GUI 工具对比
|
||||||
|
|
||||||
|
| 特性 | GitButler | SourceTree | GitKraken | GitHub Desktop |
|
||||||
|
|------|-----------|-----------|----------|---------------|
|
||||||
|
| 堆叠分支 | ✅ | ❌ | ❌ | ❌ |
|
||||||
|
| 并行分支 | ✅ | ❌ | ❌ | ❌ |
|
||||||
|
| 拖拽提交管理 | ✅ | ❌ | 部分 | ❌ |
|
||||||
|
| 无限撤销 | ✅ | ❌ | ❌ | ❌ |
|
||||||
|
| 冲突标记 | ✅ | ❌ | ❌ | ❌ |
|
||||||
|
| AI 集成 | ✅ | ❌ | ❌ | ❌ |
|
||||||
|
| CLI | ✅ | ❌ | ❌ | ❌ |
|
||||||
|
| 跨平台 | ✅ | ✅ | ✅ | ✅ |
|
||||||
|
| 开源 | Fair Source | ❌ | ❌ | ✅ |
|
||||||
|
| 价格 | 免费 | 免费 | 付费 | 免费 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 典型工作流
|
||||||
|
|
||||||
|
### 场景一:功能开发
|
||||||
|
|
||||||
|
```
|
||||||
|
1. gitbutler open .
|
||||||
|
2. 创建分支 "feature-user-auth"
|
||||||
|
3. 编写代码 → 拖拽文件到暂存区
|
||||||
|
4. AI 生成提交信息 → 提交
|
||||||
|
5. 推送 → 一键创建 PR
|
||||||
|
6. 查看 CI 状态 → 合并
|
||||||
|
```
|
||||||
|
|
||||||
|
### 场景二:多任务并行
|
||||||
|
|
||||||
|
```
|
||||||
|
1. 同时在 3 个分支工作:
|
||||||
|
- bug-fix (紧急)
|
||||||
|
- feature-a (计划内)
|
||||||
|
- experiment (探索)
|
||||||
|
2. 不需要切换分支
|
||||||
|
3. 各自提交,互不干扰
|
||||||
|
```
|
||||||
|
|
||||||
|
### 场景三:AI 编程助手
|
||||||
|
|
||||||
|
```
|
||||||
|
1. Claude Code 生成代码
|
||||||
|
2. GitButler 自动检测变更
|
||||||
|
3. AI 生成提交信息和分支名
|
||||||
|
4. 一键创建 PR
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔧 安装
|
||||||
|
|
||||||
|
### GUI
|
||||||
|
|
||||||
|
| 平台 | 方式 |
|
||||||
|
|------|------|
|
||||||
|
| **macOS** | Homebrew / DMG |
|
||||||
|
| **Windows** | MSI / Winget |
|
||||||
|
| **Linux** | AppImage / Deb |
|
||||||
|
|
||||||
|
### CLI
|
||||||
|
|
||||||
|
```bash
|
||||||
|
brew install gitbutler
|
||||||
|
# 或
|
||||||
|
cargo install gitbutler-cli
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📝 许可说明
|
||||||
|
|
||||||
|
| 条款 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| **当前** | Fair Source License |
|
||||||
|
| **含义** | 可以使用、查看源码、贡献,但不能构建竞品 |
|
||||||
|
| **2 年后** | 自动转为 MIT License |
|
||||||
|
| **实际** | MIT + 2 年非竞争条款 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 评价
|
||||||
|
|
||||||
|
### 优点
|
||||||
|
- ✅ **堆叠分支**:复杂分支管理变得简单
|
||||||
|
- ✅ **拖拽操作**:告别 rebase -i
|
||||||
|
- ✅ **无限撤销**:不怕误操作
|
||||||
|
- ✅ **并行分支**:多任务不切换
|
||||||
|
- ✅ **AI 集成**:自动化提交信息、PR 描述
|
||||||
|
- ✅ **CLI 支持**:适合终端用户和 AI 代理
|
||||||
|
- ✅ **现有仓库直接使用**:不需要迁移
|
||||||
|
|
||||||
|
### 注意点
|
||||||
|
- ⚠️ Fair Source 许可(非严格开源)
|
||||||
|
- ⚠️ 相对较新(2023 年创建)
|
||||||
|
- ⚠️ 部分高级 Git 操作仍需命令行
|
||||||
|
- ⚠️ Bitbucket 支持还在开发中
|
||||||
|
|
||||||
|
### 适用场景
|
||||||
|
- 日常需要管理多个分支的开发者
|
||||||
|
- 使用 AI 编程工具(Claude Code/Cursor)的团队
|
||||||
|
- 希望简化 Git 操作的团队
|
||||||
|
- 需要频繁 rebase/变基的场景
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 资源
|
||||||
|
|
||||||
|
| 资源 | 链接 |
|
||||||
|
|------|------|
|
||||||
|
| **官网** | https://gitbutler.com |
|
||||||
|
| **GitHub** | https://github.com/gitbutlerapp/gitbutler |
|
||||||
|
| **文档** | https://docs.gitbutler.com |
|
||||||
|
| **下载** | https://gitbutler.com/downloads |
|
||||||
|
| **Discord** | https://discord.gg/MmFkmaJ42D |
|
||||||
|
| **博客** | https://blog.gitbutler.com |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*整理:知识库管理员 | 归档:2026-04-25*
|
||||||
252
wiki/sources/HarnessEngineering研究总结
Executable file
252
wiki/sources/HarnessEngineering研究总结
Executable file
@@ -0,0 +1,252 @@
|
|||||||
|
# Harness Engineering in AI Coding 研究总结
|
||||||
|
|
||||||
|
> 探索在 AI 编程中的 Harness Engineering,确保 AI 编程可约束、可评估、可追溯
|
||||||
|
>
|
||||||
|
> 归档:2026-04-24
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 项目概览
|
||||||
|
|
||||||
|
| 属性 | 值 |
|
||||||
|
|------|---|
|
||||||
|
| **仓库** | [2361485765/harness-engineering-in-ai-coding](https://github.com/2361485765/harness-engineering-in-ai-coding) |
|
||||||
|
| **语言** | Shell |
|
||||||
|
| **创建时间** | 2026-04-23(极新项目) |
|
||||||
|
| **License** | MIT |
|
||||||
|
| **定位** | AI 编程约束框架(Harness Engineering) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 核心理念
|
||||||
|
|
||||||
|
**Harness Engineering** = 在 AI 编程工具(Claude Code/Cursor/Copilot)之上,构建一套完整的**约束框架**,覆盖软件研发全生命周期。
|
||||||
|
|
||||||
|
### 四大目标
|
||||||
|
|
||||||
|
| 目标 | 说明 | 手段 |
|
||||||
|
|------|------|------|
|
||||||
|
| **可约束** | AI 输出符合团队规范 | Skill 体系 + 上下文注入 |
|
||||||
|
| **可评估** | 产物质量可度量 | 质量门禁 + 评估机制 |
|
||||||
|
| **可追溯** | 过程透明可审计 | 记录 + 日志 + Hook |
|
||||||
|
| **可扩展** | 持续扩展能力边界 | 可插拔 Skill 体系 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🏗️ 架构设计
|
||||||
|
|
||||||
|
```
|
||||||
|
需求 → 技术方案 → 编码 → 研发自测 → QA 测试
|
||||||
|
↑ ↑ ↑ ↑ ↑
|
||||||
|
└────────┴─────────┴────────┴─────────┘
|
||||||
|
Harness(约束·评估·追溯)
|
||||||
|
↕
|
||||||
|
可插拔 Skill 体系
|
||||||
|
```
|
||||||
|
|
||||||
|
### 五大研发阶段
|
||||||
|
|
||||||
|
| 阶段 | 目录 | 核心能力 |
|
||||||
|
|------|------|---------|
|
||||||
|
| **01 需求引入** | 01-requirements/ | brainstorming + openspec 管理 |
|
||||||
|
| **02 技术方案** | 02-technical-design/ | harness-init 扫描项目 + 设计生成 |
|
||||||
|
| **03 编码** | 03-coding/ | 约束感知编码 + 自动 Code Review |
|
||||||
|
| **04 研发自测** | 04-dev-testing/ | Subagent 并行测试(单元+API) |
|
||||||
|
| **05 QA 测试** | 05-qa-testing/ | E2E 测试(Playwright) |
|
||||||
|
|
||||||
|
### 两个横切关注点
|
||||||
|
|
||||||
|
| 关注点 | 目录 | 功能 |
|
||||||
|
|--------|------|------|
|
||||||
|
| **任务进度管理** | 06-task-progress/ | 状态模型 + 看板 + 自动更新 |
|
||||||
|
| **Debug 与纠错** | 07-debug-and-correction/ | 质量门禁 + 失败分析 + 修复流程 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚙️ 核心机制
|
||||||
|
|
||||||
|
### 1. Hook 机制(执行保障层)
|
||||||
|
|
||||||
|
**核心原则**:确定性规则 → shell 脚本;语义理解 → Skill
|
||||||
|
|
||||||
|
| 事件 | 触发时机 | 典型用途 |
|
||||||
|
|------|----------|----------|
|
||||||
|
| `PreToolUse` | AI 调用工具**前** | 拦截、校验、注入前置约束 |
|
||||||
|
| `PostToolUse` | AI 调用工具**后** | 检查输出、触发后续动作 |
|
||||||
|
|
||||||
|
#### Hook 全景
|
||||||
|
|
||||||
|
| 阶段 | Hook 名称 | 触发 | 目的 |
|
||||||
|
|------|-----------|------|------|
|
||||||
|
| 需求 | `requirement-guard` | PreToolUse( Skill=openspec) | 拦截散乱需求,强制完整性 |
|
||||||
|
| 需求 | `p0-constraint-writer` | PostToolUse(Skill=openspec) | P0 bug 写回代码约束 |
|
||||||
|
| 编码 | `post-edit-lint` | PostToolUse(Edit) | 修改后自动 lint |
|
||||||
|
| 编码 | `pre-commit-review` | PreToolUse(git commit) | commit 前自动 review |
|
||||||
|
| 自测 | `post-implementation-test` | 实现完成后 | 触发 subagent 自测 |
|
||||||
|
| QA | `post-dev-test-qa` | 自测通过后 | 生成 QA 测试用例 |
|
||||||
|
|
||||||
|
#### Hook 返回码约定
|
||||||
|
|
||||||
|
| 返回码 | 含义 |
|
||||||
|
|--------|------|
|
||||||
|
| `0` | 通过,继续 |
|
||||||
|
| `非 0` | 拦截,反馈原因 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2. Skill 体系(能力扩展层)
|
||||||
|
|
||||||
|
| Skill | 用途 |
|
||||||
|
|-------|------|
|
||||||
|
| **harness-init** | 初始化项目 Harness 文档结构(扫描代码库 → 生成 CLAUDE.md/ARCHITECTURE.md 等) |
|
||||||
|
| **design-generator** | 技术方案生成 |
|
||||||
|
| **progress-tracker** | 任务进度跟踪与看板 |
|
||||||
|
| **constraint-extractor** | 从 bug 描述提取代码约束 |
|
||||||
|
| **design-arch-validator** | 设计方案架构校验 |
|
||||||
|
| **requirement-semantic-check** | 需求语义完整性检查 |
|
||||||
|
|
||||||
|
### 3. Agent 体系(执行层)
|
||||||
|
|
||||||
|
| Agent | 职责 |
|
||||||
|
|-------|------|
|
||||||
|
| **code-reviewer** | 自动化代码审查 |
|
||||||
|
| **api-tester** | API 集成测试 |
|
||||||
|
| **qa-tester** | QA 端到端测试 |
|
||||||
|
| **debug-analyst** | 调试与根因分析 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔧 关键技术实现
|
||||||
|
|
||||||
|
### harness-init 工作流
|
||||||
|
|
||||||
|
```
|
||||||
|
1. 检测项目状态(已有文件 vs 新项目)
|
||||||
|
2. 扫描代码库:
|
||||||
|
- 技术栈识别(package.json/go.mod/...)
|
||||||
|
- 项目结构(3 层目录)
|
||||||
|
- 最近提交(git log -20)
|
||||||
|
- 关键代码模式(入口/配置/测试)
|
||||||
|
3. 创建文档结构(CLAUDE.md / AGENTS.md / ARCHITECTURE.md / docs/)
|
||||||
|
4. 填充内容(已有项目)或占位符(新项目)
|
||||||
|
5. 输出完成报告
|
||||||
|
```
|
||||||
|
|
||||||
|
### 生成的文档清单
|
||||||
|
|
||||||
|
| 文件 | 内容 |
|
||||||
|
|------|------|
|
||||||
|
| `CLAUDE.md` | Claude 专用项目指令 |
|
||||||
|
| `AGENTS.md` | AI 代理协作指南 |
|
||||||
|
| `ARCHITECTURE.md` | 系统架构概述 |
|
||||||
|
| `docs/DESIGN.md` | 设计原则 |
|
||||||
|
| `docs/SECURITY.md` | 安全规范 |
|
||||||
|
| `docs/RELIABILITY.md` | 可靠性标准 |
|
||||||
|
| `docs/QUALITY_SCORE.md` | 质量度量定义 |
|
||||||
|
| `docs/PLANS.md` | 路线图 |
|
||||||
|
| `docs/PRODUCT_SENSE.md` | 产品哲学 |
|
||||||
|
|
||||||
|
### 代码约束写回流程
|
||||||
|
|
||||||
|
```
|
||||||
|
P0 bug 创建 → constraint-extractor 语义提炼 → 写入 docs/code-constraints.md
|
||||||
|
→ 追加到 CLAUDE.md 的 "Do Not" 区块 → 后续 AI 编码自动遵守
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🆚 与已有框架的对比
|
||||||
|
|
||||||
|
| 维度 | Harness Engineering | Superpowers | ClaudeForge |
|
||||||
|
|------|-------------------|-------------|-------------|
|
||||||
|
| **定位** | 全流程约束框架 | 开发方法论 | CLAUDE.md 生成 |
|
||||||
|
| **覆盖范围** | 需求→测试→QA 全链路 | 编码阶段为主 | 文档生成 |
|
||||||
|
| **Hook 机制** | ✅ Pre/Post 双事件 | ❌ | ❌ |
|
||||||
|
| **openspec 集成** | ✅ 需求管理核心 | ❌ | ❌ |
|
||||||
|
| **代码约束写回** | ✅ P0 bug → 自动禁止项 | ❌ | ❌ |
|
||||||
|
| **多 Agent 并行** | ✅ 测试阶段 | ✅ | ❌ |
|
||||||
|
| **成熟度** | 新项目(2026-04-23) | 159k ⭐ | 353 ⭐ |
|
||||||
|
| **语言** | 中文 | 英文 | 英文 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 独特价值
|
||||||
|
|
||||||
|
### 1. 需求管理闭环
|
||||||
|
|
||||||
|
```
|
||||||
|
散乱想法 → requirement-guard 拦截 → AI 反问引导 → 结构化需求
|
||||||
|
→ openspec 管理(proposal → design → spec → task)
|
||||||
|
→ P0 bug 自动提炼代码约束 → 写回项目
|
||||||
|
```
|
||||||
|
|
||||||
|
这是**首个**将需求管理与代码约束自动关联的框架。
|
||||||
|
|
||||||
|
### 2. 代码约束自动化
|
||||||
|
|
||||||
|
```
|
||||||
|
P0 bug 发现 → 语义提炼"AI 编码禁止项" → 写入约束文档
|
||||||
|
→ CLAUDE.md "Do Not" 区块 → AI 后续编码自动遵守
|
||||||
|
→ pre-commit-review 自动检查
|
||||||
|
```
|
||||||
|
|
||||||
|
**Bug → 约束 → 预防**的自动闭环,减少重复错误。
|
||||||
|
|
||||||
|
### 3. 中文优先 + 开箱即用
|
||||||
|
|
||||||
|
- 全中文文档,降低国内团队学习门槛
|
||||||
|
- 完整的 Hook 脚本 + Skill + Agent 配置
|
||||||
|
- 可直接复制 `hooks/` 目录到目标项目
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📋 接入新项目步骤
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. 复制 hooks 目录
|
||||||
|
cp -r hooks/ /your/project/
|
||||||
|
|
||||||
|
# 2. 合并 hook 配置
|
||||||
|
# 将 .claude/settings.json 中的 hooks 配置合并到目标项目
|
||||||
|
|
||||||
|
# 3. 根据技术栈调整 lint 命令
|
||||||
|
# 编辑 hooks/scripts/post-edit-lint.sh
|
||||||
|
|
||||||
|
# 4. 验证脚本可执行
|
||||||
|
bash hooks/scripts/requirement-guard.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 相关资源
|
||||||
|
|
||||||
|
| 资源 | 链接 |
|
||||||
|
|------|------|
|
||||||
|
| 仓库 | https://github.com/2361485765/harness-engineering-in-ai-coding |
|
||||||
|
| Superpowers | https://github.com/obra/superpowers |
|
||||||
|
| openspec | https://github.com/anthropics/openspec |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 评价
|
||||||
|
|
||||||
|
### 优点
|
||||||
|
- ✅ **全流程覆盖**:从需求到 QA,不只是编码辅助
|
||||||
|
- ✅ **Hook 机制完善**:Pre/Post 双事件 + shell/Skill 分层
|
||||||
|
- ✅ **代码约束自动关联**:P0 bug → 自动禁止项,减少重复错误
|
||||||
|
- ✅ **中文友好**:降低国内团队门槛
|
||||||
|
- ✅ **不重复造轮子**:复用 superpowers、openspec 等成熟工具
|
||||||
|
|
||||||
|
### 注意点
|
||||||
|
- ⚠️ **极新项目**(2026-04-23 创建),0 stars,仍在建设中
|
||||||
|
- ⚠️ 目前主要面向 Claude Code,其他工具适配待补充
|
||||||
|
- ⚠️ 文档完成度约 70%,部分章节待填充
|
||||||
|
|
||||||
|
### 适用场景
|
||||||
|
- 团队想系统性引入 AI 编程工具(而非零散使用)
|
||||||
|
- 需要对 AI 产物建立质量门禁和审计记录
|
||||||
|
- 希望沉淀 AI 编程最佳实践为工程规范
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*整理:知识库管理员 | 归档:2026-04-24*
|
||||||
170
wiki/sources/IMX219_vs_OG05B10对比研究
Executable file
170
wiki/sources/IMX219_vs_OG05B10对比研究
Executable file
@@ -0,0 +1,170 @@
|
|||||||
|
# IMX219 vs OG05B10 深度对比研究
|
||||||
|
|
||||||
|
> 索尼 IMX219(树莓派 V2)vs 豪威 OG05B10
|
||||||
|
>
|
||||||
|
> 归档:2026-04-24
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 核心参数对比
|
||||||
|
|
||||||
|
| 维度 | **索尼 IMX219** | **豪威 OG05B10** |
|
||||||
|
|------|----------------|-----------------|
|
||||||
|
| **厂商** | Sony Semiconductor | OmniVision(豪威科技) |
|
||||||
|
| **分辨率** | **8MP**(3280×2464) | 5MP(2592×1944) |
|
||||||
|
| **传感器尺寸** | **1/4 英寸** | **1/2.53 英寸**(更大!) |
|
||||||
|
| **像素大小** | ~1.12 μm(估算) | **2.2 μm**(大 2 倍!) |
|
||||||
|
| **快门类型** | 卷帘快门(Rolling) | **全局快门(Global)** |
|
||||||
|
| **视频帧率** | 1080P@30 / 720P@60 | 1080P@**90** / 5MP@53 |
|
||||||
|
| **HDR** | ❌ 不支持 | ✅ 支持 |
|
||||||
|
| **LED 闪烁抑制** | ❌ 无 | ✅ LFM 支持 |
|
||||||
|
| **车规认证** | ❌ 消费级 | ✅ AEC-Q100 |
|
||||||
|
| **接口** | MIPI CSI-2(2 通道) | MIPI CSI-2(**4 通道**) |
|
||||||
|
| **目标市场** | 消费/教育/原型 | **车载/工业/ADAS** |
|
||||||
|
| **树莓派兼容** | ✅ 官方 V2 | ✅ 第三方模块(Arducam) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 核心差异解读
|
||||||
|
|
||||||
|
### 1. 分辨率 vs 像素质量
|
||||||
|
|
||||||
|
| 指标 | IMX219 | OG05B10 | 胜出 |
|
||||||
|
|------|--------|---------|------|
|
||||||
|
| 像素数 | 800 万 | 500 万 | IMX219 |
|
||||||
|
| 单个像素面积 | ~1.25 μm² | ~4.84 μm² | **OG05B10(大 3.9 倍)** |
|
||||||
|
| 低光灵敏度 | 差(像素小) | **好(像素大)** | **OG05B10** |
|
||||||
|
| 信噪比 | 较低 | **较高** | **OG05B10** |
|
||||||
|
|
||||||
|
**结论**:IMX219 分辨率更高,但 OG05B10 像素质量更好。在车载/工业场景中,**图像质量比分辨率更重要**。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2. 卷帘快门 vs 全局快门 ⭐
|
||||||
|
|
||||||
|
| 场景 | IMX219(卷帘) | OG05B10(全局) |
|
||||||
|
|------|---------------|----------------|
|
||||||
|
| **静止拍摄** | ✅ 清晰 | ✅ 清晰 |
|
||||||
|
| **高速运动** | ❌ 果冻效应 | ✅ 无畸变 |
|
||||||
|
| **交通信号灯** | ❌ 频闪问题 | ✅ LFM 抑制 |
|
||||||
|
| **多相机同步** | ❌ 难以同步 | ✅ 完美同步 |
|
||||||
|
| **360° 环视** | ❌ 拼接畸变 | ✅ 无畸变拼接 |
|
||||||
|
| **条码扫描** | ❌ 运动模糊 | ✅ 清晰识别 |
|
||||||
|
|
||||||
|
**这是最关键差异!** 全局快门是 OG05B10 的核心竞争力。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3. 帧率对比
|
||||||
|
|
||||||
|
| 分辨率 | IMX219 | OG05B10 | 胜出 |
|
||||||
|
|--------|--------|---------|------|
|
||||||
|
| 1080P | 30 FPS | **90 FPS** | **OG05B10(3 倍)** |
|
||||||
|
| 720P | 60 FPS | - | - |
|
||||||
|
| 全分辨率 | 3280×2464@~15 | 2592×1944@**53** | **OG05B10** |
|
||||||
|
| 640×480 | 90 FPS | - | - |
|
||||||
|
|
||||||
|
**OG05B10 在 1080P 下帧率是 IMX219 的 3 倍**,对高速运动检测至关重要。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4. 传感器尺寸对比
|
||||||
|
|
||||||
|
```
|
||||||
|
IMX219: 1/4" ≈ 4.5×3.4 mm
|
||||||
|
OG05B10: 1/2.53" ≈ 5.7×4.3 mm
|
||||||
|
|
||||||
|
OG05B10 感光面积比 IMX219 大 68%
|
||||||
|
```
|
||||||
|
|
||||||
|
**更大的传感器 = 更好的低光性能 + 更少的噪点**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 5. 应用场景对比
|
||||||
|
|
||||||
|
| 场景 | 推荐 | 原因 |
|
||||||
|
|------|------|------|
|
||||||
|
| **树莓派学习/原型** | IMX219 | 官方支持,社区成熟 |
|
||||||
|
| **静态图像采集** | IMX219 | 分辨率更高 |
|
||||||
|
| **ADAS 车载** | **OG05B10** | 车规 + 全局快门 + LFM |
|
||||||
|
| **工业机器视觉** | **OG05B10** | 无畸变 + 高帧率 |
|
||||||
|
| **360° 环视** | **OG05B10** | 多相机同步无畸变 |
|
||||||
|
| **交通监控** | **OG05B10** | LFM 抑制信号灯频闪 |
|
||||||
|
| **高速运动检测** | **OG05B10** | 全局快门无果冻 |
|
||||||
|
| **夜视/低光** | **OG05B10** | 像素大,进光多 |
|
||||||
|
| **视频会议** | IMX219 | 成本低,够用 |
|
||||||
|
| **无人机航拍** | IMX219 | 轻量化,分辨率高 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📋 产品宣传亮点提取
|
||||||
|
|
||||||
|
### IMX219 宣传点
|
||||||
|
- ✅ **800 万像素**:静态图像清晰度高
|
||||||
|
- ✅ **官方树莓派兼容**:即插即用,社区支持好
|
||||||
|
- ✅ **成熟生态**:OpenCV/ROS 完美支持
|
||||||
|
- ✅ **低成本**:树莓派 V2 模块约 ¥100-150
|
||||||
|
- ❌ 卷帘快门、无 HDR、无车规认证
|
||||||
|
|
||||||
|
### OG05B10 宣传点
|
||||||
|
- ✅ **全局快门**:运动无畸变,ADAS 必备
|
||||||
|
- ✅ **LED 闪烁抑制**:交通信号灯清晰可辨
|
||||||
|
- ✅ **高帧率**:1080P@90FPS,高速场景利器
|
||||||
|
- ✅ **大像素**:2.2μm,低光性能好
|
||||||
|
- ✅ **车规认证**:AEC-Q100,安全可靠
|
||||||
|
- ✅ **多相机同步**:360° 环视/立体视觉
|
||||||
|
- ❌ 分辨率 5MP(低于 IMX219 的 8MP)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 选型决策树
|
||||||
|
|
||||||
|
```
|
||||||
|
需要拍摄静态图像?
|
||||||
|
├── 是 → IMX219(分辨率高)
|
||||||
|
└── 否 ↓
|
||||||
|
需要拍摄运动物体?
|
||||||
|
├── 慢速运动 → IMX219
|
||||||
|
└── 高速运动 → OG05B10(全局快门)
|
||||||
|
↓
|
||||||
|
需要车载/工业应用?
|
||||||
|
├── 是 → OG05B10(车规+LFM)
|
||||||
|
└── 否 → IMX219(成本低)
|
||||||
|
↓
|
||||||
|
需要多相机同步?
|
||||||
|
├── 是 → OG05B10(全局同步)
|
||||||
|
└── 否 → 看分辨率需求
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 资源
|
||||||
|
|
||||||
|
| 资源 | 链接 |
|
||||||
|
|------|------|
|
||||||
|
| IMX219 产品页 | https://www.sony-semicon.com/en/products/is/industry/imx219.html |
|
||||||
|
| OG05B10 产品页 | https://www.ovt.com/products/og05b/ |
|
||||||
|
| 树莓派 V2 | https://www.raspberrypi.com/products/camera-module-v2/ |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 总结
|
||||||
|
|
||||||
|
| 维度 | 胜出 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| 分辨率 | IMX219 | 8MP vs 5MP |
|
||||||
|
| 像素质量 | **OG05B10** | 2.2μm vs 1.12μm |
|
||||||
|
| 低光性能 | **OG05B10** | 传感器大 68% |
|
||||||
|
| 运动畸变 | **OG05B10** | 全局快门 vs 卷帘 |
|
||||||
|
| 帧率 | **OG05B10** | 1080P@90 vs @30 |
|
||||||
|
| LED 频闪 | **OG05B10** | LFM vs 无 |
|
||||||
|
| 车规认证 | **OG05B10** | AEC-Q100 vs 无 |
|
||||||
|
| 成本 | IMX219 | ¥100-150 vs ¥300-500 |
|
||||||
|
| 生态成熟度 | IMX219 | 官方+社区 vs 第三方 |
|
||||||
|
|
||||||
|
**一句话**:IMX219 适合学习/原型/静态采集;OG05B10 适合车载/工业/高速运动场景。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*整理:知识库管理员 | 归档:2026-04-24*
|
||||||
309
wiki/sources/LLMWiki与Obsidian结合指南
Executable file
309
wiki/sources/LLMWiki与Obsidian结合指南
Executable file
@@ -0,0 +1,309 @@
|
|||||||
|
# LLM Wiki 与 Obsidian 结合运用完全指南
|
||||||
|
|
||||||
|
> 从 Karpathy 原始模式到现代 Obsidian AI 生态
|
||||||
|
>
|
||||||
|
> 归档:2026-04-25
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 生态全景
|
||||||
|
|
||||||
|
LLM Wiki 的核心思想源自 **Andrej Karpathy** 的个人知识管理模式:让 LLM 持续读取、整理、更新你的笔记,形成一个自我演进的知识库。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🏆 主流项目对比
|
||||||
|
|
||||||
|
| 项目 | Stars | 定位 | 适合场景 |
|
||||||
|
|------|-------|------|---------|
|
||||||
|
| **claude-obsidian** | 3,296 | Claude + Obsidian 知识引擎 | Claude Code 用户 |
|
||||||
|
| **khoj** | 34,245 | AI 第二大脑(RAG) | 全平台、多模型 |
|
||||||
|
| **Understand-Anything** | 8,886 | 知识图谱教学 | 可视化学习 |
|
||||||
|
| **swarmvault** | 264 | 本地 RAG 编译器 | 本地优先 |
|
||||||
|
| **llm-wiki-skill** | 401 | Karpathy 模式 Skill | OpenClaw/Codex |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 Karpathy LLM Wiki 原始模式
|
||||||
|
|
||||||
|
### 核心理念
|
||||||
|
|
||||||
|
```
|
||||||
|
你提供资料 → LLM 读取、提取概念、建立关联
|
||||||
|
↓
|
||||||
|
形成结构化 Wiki
|
||||||
|
↓
|
||||||
|
知识像利息一样复利增长
|
||||||
|
```
|
||||||
|
|
||||||
|
### 关键特征
|
||||||
|
|
||||||
|
| 特征 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| **零手动归档** | LLM 自动整理、分类、链接 |
|
||||||
|
| **热缓存** | 每次会话结束更新上下文,下次直接继续 |
|
||||||
|
| **交叉引用** | 自动发现概念间的关联 |
|
||||||
|
| **持续编译** | 资料越多,知识库越有价值 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔥 推荐方案一:claude-obsidian(⭐3,296)
|
||||||
|
|
||||||
|
### 核心能力
|
||||||
|
|
||||||
|
```
|
||||||
|
你投放资料源 → Claude 读取 → 提取实体和概念
|
||||||
|
↓
|
||||||
|
更新交叉引用 → 归档到 Obsidian Vault
|
||||||
|
↓
|
||||||
|
每次摄入,知识库更丰富
|
||||||
|
```
|
||||||
|
|
||||||
|
| 能力 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| 自动整理 | 创建实体、概念、交叉引用 |
|
||||||
|
| 矛盾标记 | `[!contradiction]` 标注冲突 |
|
||||||
|
| 会话记忆 | 热缓存在对话间持续 |
|
||||||
|
| 知识维护 | 8 类健康检查(孤儿、死链、缺口) |
|
||||||
|
| 自主研究 | 3 轮网络研究 + 缺口填补 |
|
||||||
|
| 多模型 | Claude / Gemini / Codex / Cursor |
|
||||||
|
|
||||||
|
### 命令体系
|
||||||
|
|
||||||
|
| 命令 | 功能 |
|
||||||
|
|------|------|
|
||||||
|
| `/wiki` | 初始化 Vault |
|
||||||
|
| `ingest [file]` | 读取源文件,创建 8-15 页 Wiki |
|
||||||
|
| `what do you know about X?` | 索引→相关页→综合回答 |
|
||||||
|
| `/save` | 保存当前对话为 Wiki 笔记 |
|
||||||
|
| `/autoresearch [topic]` | 自主研究循环 |
|
||||||
|
| `lint the wiki` | 健康检查 |
|
||||||
|
|
||||||
|
### Wiki 结构
|
||||||
|
|
||||||
|
```
|
||||||
|
wiki/
|
||||||
|
├── index.md # 主目录
|
||||||
|
├── log.md # 操作日志
|
||||||
|
├── hot.md # 近期上下文缓存
|
||||||
|
├── overview.md # 执行摘要
|
||||||
|
├── concepts/ # 概念页
|
||||||
|
├── entities/ # 实体页
|
||||||
|
├── sources/ # 源文件
|
||||||
|
└── meta/
|
||||||
|
├── dashboard.base # Bases 仪表盘
|
||||||
|
└── dashboard.md # Dataview 仪表盘
|
||||||
|
```
|
||||||
|
|
||||||
|
### 安装
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/AgriciDaniel/claude-obsidian
|
||||||
|
cd claude-obsidian
|
||||||
|
bash bin/setup-vault.sh
|
||||||
|
|
||||||
|
# Claude Code 中
|
||||||
|
claude plugin marketplace add AgriciDaniel/claude-obsidian
|
||||||
|
claude plugin install claude-obsidian@claude-obsidian-marketplace
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔥 推荐方案二:khoj(⭐34,245)
|
||||||
|
|
||||||
|
### 核心能力
|
||||||
|
|
||||||
|
```
|
||||||
|
本地/云端 LLM + 你的文档 → RAG 语义搜索 → 智能回答
|
||||||
|
```
|
||||||
|
|
||||||
|
| 能力 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| 多文档支持 | PDF / Markdown / Notion / Word |
|
||||||
|
| 多模型 | llama3 / qwen / gemma / gpt / claude |
|
||||||
|
| 多平台 | 浏览器 / Obsidian / Emacs / 桌面 / 手机 |
|
||||||
|
| 自定义 Agent | persona + 知识库 + 工具 |
|
||||||
|
| 自动化 | 个人通讯稿 + 智能通知 |
|
||||||
|
| 自托管 | Docker / 本地 |
|
||||||
|
|
||||||
|
### 与 Obsidian 集成
|
||||||
|
|
||||||
|
```
|
||||||
|
Obsidian Vault → Khoj 索引 → 语义搜索 → LLM 回答
|
||||||
|
```
|
||||||
|
|
||||||
|
### 安装
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Docker
|
||||||
|
docker run -d -p 42110:42110 khojai/khoj
|
||||||
|
|
||||||
|
# 或云应用
|
||||||
|
# https://app.khoj.dev
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🆚 方案对比
|
||||||
|
|
||||||
|
| 维度 | claude-obsidian | khoj | Understand-Anything |
|
||||||
|
|------|----------------|------|-------------------|
|
||||||
|
| 核心方法 | 知识引擎(创建+维护) | RAG 搜索+回答 | 知识图谱 |
|
||||||
|
| 自动整理 | ✅ | 部分 | ✅ |
|
||||||
|
| 会话记忆 | ✅ | ✅ | ✅ |
|
||||||
|
| 知识维护 | 8 类检查 | ❌ | ❌ |
|
||||||
|
| 自主研究 | 3 轮循环 | ✅ | ❌ |
|
||||||
|
| 可视化 | Canvas | ❌ | ✅ 图谱 |
|
||||||
|
| 多模型 | 多 | 多 | 多 |
|
||||||
|
| 本地优先 | ✅ | ✅ | ✅ |
|
||||||
|
| 安装难度 | 中 | 低 | 中 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📐 Obsidian + LLM Wiki 架构模式
|
||||||
|
|
||||||
|
### 模式一:Agent 驱动(claude-obsidian)
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────┐
|
||||||
|
│ AI Agent (Claude) │
|
||||||
|
│ /wiki /ingest /query /lint │
|
||||||
|
└──────────────┬──────────────────┘
|
||||||
|
│ MCP / 文件系统
|
||||||
|
┌──────────────┴──────────────────┐
|
||||||
|
│ Obsidian Vault │
|
||||||
|
│ wiki/ │
|
||||||
|
│ ├── index.md │
|
||||||
|
│ ├── concepts/ │
|
||||||
|
│ ├── entities/ │
|
||||||
|
│ ├── sources/ │
|
||||||
|
│ └── meta/ │
|
||||||
|
└─────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
### 模式二:RAG 驱动(khoj)
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────┐
|
||||||
|
│ Khoj Server │
|
||||||
|
│ 索引 + 语义搜索 + LLM │
|
||||||
|
└──────────────┬──────────────────┘
|
||||||
|
│ API
|
||||||
|
┌──────────────┴──────────────────┐
|
||||||
|
│ Obsidian Vault │
|
||||||
|
│ (只读索引,不修改) │
|
||||||
|
└─────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
### 模式三:图谱驱动(Understand-Anything)
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────┐
|
||||||
|
│ Understand-Anything │
|
||||||
|
│ 知识图谱 + 交互式探索 │
|
||||||
|
└──────────────┬──────────────────┘
|
||||||
|
│
|
||||||
|
┌──────────────┴──────────────────┐
|
||||||
|
│ Obsidian Vault │
|
||||||
|
│ (Karpathy LLM Wiki 格式) │
|
||||||
|
└─────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 典型工作流
|
||||||
|
|
||||||
|
### 工作流一:知识沉淀
|
||||||
|
|
||||||
|
```
|
||||||
|
1. 投放资料(文章/笔记/对话)
|
||||||
|
2. Claude 自动读取、提取概念
|
||||||
|
3. 创建 Wiki 页面,建立交叉引用
|
||||||
|
4. 更新索引和热缓存
|
||||||
|
5. 下次会话自动加载上下文
|
||||||
|
```
|
||||||
|
|
||||||
|
### 工作流二:知识查询
|
||||||
|
|
||||||
|
```
|
||||||
|
1. 提问:"你知道 X 吗?"
|
||||||
|
2. Claude 读取热缓存(近期上下文)
|
||||||
|
3. 扫描索引,找到相关页
|
||||||
|
4. 深入阅读相关页
|
||||||
|
5. 综合回答,引用具体页面
|
||||||
|
```
|
||||||
|
|
||||||
|
### 工作流三:知识维护
|
||||||
|
|
||||||
|
```
|
||||||
|
1. 运行 lint the wiki
|
||||||
|
2. 发现孤儿页、死链、缺口
|
||||||
|
3. 自动修复或提示修复
|
||||||
|
4. 更新健康状态
|
||||||
|
```
|
||||||
|
|
||||||
|
### 工作流四:自主研究
|
||||||
|
|
||||||
|
```
|
||||||
|
1. /autoresearch [主题]
|
||||||
|
2. 搜索网络资料
|
||||||
|
3. 3 轮研究循环
|
||||||
|
4. 提取概念、创建页面
|
||||||
|
5. 归档到 Wiki
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔧 与 Obsidian 插件的协同
|
||||||
|
|
||||||
|
| Obsidian 插件 | 与 LLM Wiki 的关系 |
|
||||||
|
|--------------|-------------------|
|
||||||
|
| **Bases** | 原生数据库视图,替代 Dataview |
|
||||||
|
| **Templater** | 自动填充笔记模板 |
|
||||||
|
| **Obsidian Git** | 每 15 分钟自动提交 |
|
||||||
|
| **Calendar** | 日历视图 + 字数统计 |
|
||||||
|
| **Excalidraw** | 画布绘图、标注 |
|
||||||
|
| **Local REST API** | MCP 连接 |
|
||||||
|
| **Web Clipper** | 一键导入网页 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 选型建议
|
||||||
|
|
||||||
|
| 你的需求 | 选它 |
|
||||||
|
|---------|------|
|
||||||
|
| Claude Code 用户,想自动维护知识库 | **claude-obsidian** |
|
||||||
|
| 多模型、多平台、自托管 | **khoj** |
|
||||||
|
| 可视化知识图谱学习 | **Understand-Anything** |
|
||||||
|
| OpenClaw/Codex 环境 | **llm-wiki-skill** |
|
||||||
|
| 本地 RAG + MCP | **swarmvault** |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📝 与现有 OpenClaw 的结合
|
||||||
|
|
||||||
|
你已经有的基础:
|
||||||
|
|
||||||
|
| 已有 | 可用 |
|
||||||
|
|------|------|
|
||||||
|
| Obsidian Vault (`/obsidian`) | ✅ 可直接作为 Wiki 底座 |
|
||||||
|
| BRAT 插件 | ✅ 可安装 claude-obsidian |
|
||||||
|
| obs 命令行工具 | ✅ 可管理笔记 |
|
||||||
|
| MiniMax + 百炼 API | ✅ 可驱动 LLM |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 资源
|
||||||
|
|
||||||
|
| 资源 | 链接 |
|
||||||
|
|------|------|
|
||||||
|
| **Karpathy 原始模式** | https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f |
|
||||||
|
| **claude-obsidian** | https://github.com/AgriciDaniel/claude-obsidian |
|
||||||
|
| **khoj** | https://github.com/khoj-ai/khoj |
|
||||||
|
| **Understand-Anything** | https://github.com/Lum1104/Understand-Anything |
|
||||||
|
| **swarmvault** | https://github.com/swarmclawai/swarmvault |
|
||||||
|
| **llm-wiki-skill** | https://github.com/lewislulu/llm-wiki-skill |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*整理:知识库管理员 | 归档:2026-04-25*
|
||||||
265
wiki/sources/ObsidianWebClipper研究
Executable file
265
wiki/sources/ObsidianWebClipper研究
Executable file
@@ -0,0 +1,265 @@
|
|||||||
|
# Obsidian Web Clipper 完全研究
|
||||||
|
|
||||||
|
> Obsidian 官方网页剪存插件:高亮与捕获网页内容
|
||||||
|
>
|
||||||
|
> 归档:2026-04-25
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 项目概览
|
||||||
|
|
||||||
|
| 属性 | 值 |
|
||||||
|
|------|---|
|
||||||
|
| **仓库** | obsidianmd/obsidian-clipper |
|
||||||
|
| **定位** | Obsidian 官方网页剪存浏览器扩展 |
|
||||||
|
| **技术栈** | TypeScript + Web Extension |
|
||||||
|
| **许可** | 官方开源 |
|
||||||
|
| **安装** | Chrome / Firefox / Safari / Edge |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 核心定位
|
||||||
|
|
||||||
|
```
|
||||||
|
网页内容 → Web Clipper 浏览器扩展 → 转换为 Markdown → 保存到 Obsidian Vault
|
||||||
|
```
|
||||||
|
|
||||||
|
**关键特点**:
|
||||||
|
- 存储为**持久的 Markdown 文件**,可离线阅读
|
||||||
|
- 长期保存,不受网站变更影响
|
||||||
|
- 支持高亮标注
|
||||||
|
- 支持模板自定义
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🌐 浏览器支持
|
||||||
|
|
||||||
|
| 浏览器 | 安装渠道 |
|
||||||
|
|--------|---------|
|
||||||
|
| **Chrome / Brave / Arc** | Chrome Web Store |
|
||||||
|
| **Firefox / Firefox Mobile** | Firefox Add-Ons |
|
||||||
|
| **Safari (macOS/iOS/iPadOS)** | App Store |
|
||||||
|
| **Microsoft Edge** | Edge Add-Ons |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔧 核心功能
|
||||||
|
|
||||||
|
### 1. 内容捕获
|
||||||
|
|
||||||
|
- 提取网页正文内容
|
||||||
|
- 自动转换为 Markdown
|
||||||
|
- 保留链接和图片引用
|
||||||
|
|
||||||
|
### 2. 高亮标注
|
||||||
|
|
||||||
|
- 在网页上直接选中文本高亮
|
||||||
|
- 高亮内容保存为笔记的一部分
|
||||||
|
- 可添加注释
|
||||||
|
|
||||||
|
### 3. 模板系统
|
||||||
|
|
||||||
|
- 自定义剪存笔记格式
|
||||||
|
- 支持变量(日期、标题、URL 等)
|
||||||
|
- 模板压缩存储(lz-string)
|
||||||
|
|
||||||
|
### 4. 过滤器
|
||||||
|
|
||||||
|
- 按 CSS 选择器过滤页面元素
|
||||||
|
- 排除不需要的内容
|
||||||
|
- 精确控制捕获范围
|
||||||
|
|
||||||
|
### 5. 本地图片保存
|
||||||
|
|
||||||
|
- Obsidian 1.8.0+ 支持
|
||||||
|
- 网页图片自动下载到本地
|
||||||
|
- 不依赖外部链接
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🏗️ 技术架构
|
||||||
|
|
||||||
|
### 核心依赖
|
||||||
|
|
||||||
|
| 依赖 | 用途 |
|
||||||
|
|------|------|
|
||||||
|
| **webextension-polyfill** | 跨浏览器兼容 |
|
||||||
|
| **defuddle** | 内容提取 + Markdown 转换 |
|
||||||
|
| **dayjs** | 日期解析和格式化 |
|
||||||
|
| **lz-string** | 模板压缩,减少存储空间 |
|
||||||
|
| **lucide** | 图标库 |
|
||||||
|
| **dompurify** | HTML 清理,安全防护 |
|
||||||
|
|
||||||
|
### 构建输出
|
||||||
|
|
||||||
|
```
|
||||||
|
npm run build
|
||||||
|
↓
|
||||||
|
dist/ → Chromium 版本
|
||||||
|
dist_firefox/ → Firefox 版本
|
||||||
|
dist_safari/ → Safari 版本
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🆚 与其他剪存工具对比
|
||||||
|
|
||||||
|
| 工具 | 输出格式 | 离线可用 | 开源 | 生态 |
|
||||||
|
|------|---------|---------|------|------|
|
||||||
|
| **Obsidian Web Clipper** | Markdown | ✅ | ✅ | Obsidian |
|
||||||
|
| **Evernote Web Clipper** | 专有格式 | ❌ | ❌ | Evernote |
|
||||||
|
| **Notion Web Clipper** | Notion Block | ✅ | ❌ | Notion |
|
||||||
|
| **Joplin Web Clipper** | Markdown | ✅ | ✅ | Joplin |
|
||||||
|
| **Logseq Web Clipper** | Markdown | ✅ | ✅ | Logseq |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 使用场景
|
||||||
|
|
||||||
|
| 场景 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| 研究资料收集 | 保存网页文章到知识库 |
|
||||||
|
| 读书笔记 | 保存在线书籍内容 |
|
||||||
|
| 代码片段 | 保存技术博客和教程 |
|
||||||
|
| 灵感收集 | 快速捕获灵感网页 |
|
||||||
|
| 长期存档 | 防止网页内容失效 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 与 Obsidian Desktop/Mobile 的区别
|
||||||
|
|
||||||
|
| 特性 | Web Clipper | Obsidian App |
|
||||||
|
|------|------------|-------------|
|
||||||
|
| **平台** | 浏览器扩展 | 桌面/手机应用 |
|
||||||
|
| **用途** | 从网页捕获内容 | 编辑和管理笔记 |
|
||||||
|
| **存储** | 直接写入 Vault | 本地文件系统 |
|
||||||
|
| **同步** | 依赖 Vault 同步 | 支持多端同步 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📝 模板示例
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
title: {{title}}
|
||||||
|
url: {{url}}
|
||||||
|
date: {{date}}
|
||||||
|
tags:
|
||||||
|
---
|
||||||
|
|
||||||
|
# {{title}}
|
||||||
|
|
||||||
|
{{content}}
|
||||||
|
|
||||||
|
---
|
||||||
|
*Clipped from {{url}}*
|
||||||
|
```
|
||||||
|
|
||||||
|
### 可用变量
|
||||||
|
|
||||||
|
| 变量 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| `{{title}}` | 网页标题 |
|
||||||
|
| `{{url}}` | 网页 URL |
|
||||||
|
| `{{date}}` | 剪存日期 |
|
||||||
|
| `{{content}}` | 网页内容 |
|
||||||
|
| `{{selection}}` | 选中的文本 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔧 本地开发
|
||||||
|
|
||||||
|
### 安装步骤
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 克隆仓库
|
||||||
|
git clone https://github.com/obsidianmd/obsidian-clipper.git
|
||||||
|
cd obsidian-clipper
|
||||||
|
|
||||||
|
# 安装依赖
|
||||||
|
npm install
|
||||||
|
|
||||||
|
# 构建
|
||||||
|
npm run build
|
||||||
|
|
||||||
|
# 测试
|
||||||
|
npm test
|
||||||
|
```
|
||||||
|
|
||||||
|
### Chrome 加载
|
||||||
|
|
||||||
|
1. 打开 `chrome://extensions`
|
||||||
|
2. 启用开发者模式
|
||||||
|
3. 点击"加载已解压的扩展程序"
|
||||||
|
4. 选择 `dist/` 目录
|
||||||
|
|
||||||
|
### Firefox 加载
|
||||||
|
|
||||||
|
1. 打开 `about:debugging#/runtime/this-firefox`
|
||||||
|
2. 点击"临时加载附加组件"
|
||||||
|
3. 选择 `dist_firefox/manifest.json`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 路线图(待开发功能)
|
||||||
|
|
||||||
|
| 功能 | 状态 |
|
||||||
|
|------|------|
|
||||||
|
| 高亮注释 | ✅ 已完成 |
|
||||||
|
| 模板目录 | ✅ 已完成 |
|
||||||
|
| 本地图片保存 | ✅ 已完成 (Obsidian 1.8.0+) |
|
||||||
|
| 模板验证 | 计划中 |
|
||||||
|
| 模板逻辑 (if/for) | 计划中 |
|
||||||
|
| 更多语言翻译 | 进行中 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 与 Obsidian 插件的区别
|
||||||
|
|
||||||
|
| 维度 | Web Clipper | Obsidian 插件 |
|
||||||
|
|------|------------|-------------|
|
||||||
|
| **运行位置** | 浏览器 | Obsidian 应用内 |
|
||||||
|
| **功能** | 网页→笔记 | 增强笔记编辑 |
|
||||||
|
| **安装** | 浏览器扩展商店 | Obsidian 社区插件市场 |
|
||||||
|
| **依赖** | 独立运行 | 依赖 Obsidian |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 资源
|
||||||
|
|
||||||
|
| 资源 | 链接 |
|
||||||
|
|------|------|
|
||||||
|
| **GitHub** | https://github.com/obsidianmd/obsidian-clipper |
|
||||||
|
| **官方下载** | https://obsidian.md/clipper |
|
||||||
|
| **帮助文档** | https://help.obsidian.md/web-clipper |
|
||||||
|
| **Chrome 安装** | https://chromewebstore.google.com/detail/obsidian-web-clipper/cnjifjpddelmedmihgijeibhnjfabmlf |
|
||||||
|
| **Firefox 安装** | https://addons.mozilla.org/en-US/firefox/addon/web-clipper-obsidian/ |
|
||||||
|
| **Safari 安装** | https://apps.apple.com/us/app/obsidian-web-clipper/id6720708363 |
|
||||||
|
| **Edge 安装** | https://microsoftedge.microsoft.com/addons/detail/obsidian-web-clipper/eigdjhmgnaaeaonimdklocfekkaanfme |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 评价
|
||||||
|
|
||||||
|
### 优点
|
||||||
|
- ✅ **官方出品**:与 Obsidian 深度集成
|
||||||
|
- ✅ **Markdown 优先**:输出持久化、可离线
|
||||||
|
- ✅ **多浏览器支持**:Chrome / Firefox / Safari / Edge
|
||||||
|
- ✅ **高亮标注**:网页内容直接标记
|
||||||
|
- ✅ **模板自定义**:灵活控制笔记格式
|
||||||
|
- ✅ **开源**:社区可贡献
|
||||||
|
|
||||||
|
### 注意点
|
||||||
|
- ⚠️ 需要配合 Obsidian 桌面端使用
|
||||||
|
- ⚠️ 模板功能相对简单(不支持 if/for)
|
||||||
|
- ⚠️ 移动端支持有限(仅 Safari iOS/iPadOS)
|
||||||
|
|
||||||
|
### 适用场景
|
||||||
|
- 需要将网页内容保存到 Obsidian 知识库
|
||||||
|
- 希望内容以 Markdown 格式长期保存
|
||||||
|
- 需要高亮标注功能
|
||||||
|
- 跨浏览器使用场景
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*整理:知识库管理员 | 归档:2026-04-25*
|
||||||
229
wiki/sources/PromptOptimizer生态研究
Executable file
229
wiki/sources/PromptOptimizer生态研究
Executable file
@@ -0,0 +1,229 @@
|
|||||||
|
# Prompt Optimizer 生态完全研究
|
||||||
|
|
||||||
|
> 提示词优化器工具生态:从用户产品到自动优化框架
|
||||||
|
>
|
||||||
|
> 归档:2026-04-25
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 生态全景
|
||||||
|
|
||||||
|
Prompt Optimizer 生态分为两大方向:
|
||||||
|
|
||||||
|
| 方向 | 代表项目 | 定位 |
|
||||||
|
|------|---------|------|
|
||||||
|
| **用户工具** | linshenkx/prompt-optimizer | 交互式提示词优化产品 |
|
||||||
|
| **自动优化框架** | GEPA / PromptWizard / prompt-ops | AI 自动迭代优化 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🏆 主流项目对比
|
||||||
|
|
||||||
|
| 项目 | Stars | 语言 | 定位 | 维护方 |
|
||||||
|
|------|-------|------|------|--------|
|
||||||
|
| **prompt-optimizer** | 26,823 | TypeScript | 用户端优化工具 | 个人开发者 |
|
||||||
|
| **Context-Engineering** | 8,773 | Markdown | Prompt Engineering 手册 | 社区 |
|
||||||
|
| **GEPA** | 3,980 | Python | 反射式文本进化框架 | gepa-ai |
|
||||||
|
| **PromptWizard** | 3,839 | Python | Agent 驱动的自动优化 | Microsoft |
|
||||||
|
| **auto-prompt** | 764 | TypeScript | AI 提示词优化平台 | AIDotNet |
|
||||||
|
| **prompt-ops** | 804 | Python | LLM 提示词优化工具 | Meta |
|
||||||
|
| **SAMMO** | 753 | Python | 多目标元提示词优化 | Microsoft |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 linshenkx/prompt-optimizer(⭐26,823)
|
||||||
|
|
||||||
|
### 项目概览
|
||||||
|
|
||||||
|
| 属性 | 值 |
|
||||||
|
|------|---|
|
||||||
|
| **创建时间** | 2025-02-12 |
|
||||||
|
| **语言** | TypeScript |
|
||||||
|
| **Forks** | 3,167 |
|
||||||
|
| **许可** | 开源 |
|
||||||
|
| **在线体验** | https://prompt.always200.com |
|
||||||
|
|
||||||
|
### 核心能力
|
||||||
|
|
||||||
|
```
|
||||||
|
用户输入原始提示词 → AI 优化引擎 → 输出优化后提示词
|
||||||
|
↕ ↓
|
||||||
|
多轮迭代优化 ←── 评估对比 ←── 多模型生成
|
||||||
|
```
|
||||||
|
|
||||||
|
| 能力 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| 🎯 智能优化 | 一键优化 + 多轮迭代优化 |
|
||||||
|
| 📝 双模式 | 系统提示词优化 + 用户提示词优化 |
|
||||||
|
| 🔄 评估对比 | 单结果评估 + 多结果对比评估 |
|
||||||
|
| 🤖 多模型 | OpenAI / Gemini / DeepSeek / 智谱 / 硅基流动 |
|
||||||
|
| 🖼️ 图片生成 | T2I 文生图 + I2I 图生图 |
|
||||||
|
| 📊 高级模式 | 变量管理 + 多轮对话测试 + Function Calling |
|
||||||
|
| 🔒 安全架构 | 纯前端 + 数据本地存储 |
|
||||||
|
| 🧩 MCP 协议 | 集成 Claude Desktop 等 MCP 应用 |
|
||||||
|
|
||||||
|
### 四种使用方式
|
||||||
|
|
||||||
|
| 方式 | 特点 |
|
||||||
|
|------|------|
|
||||||
|
| **Web 应用** | 在线即用,数据存浏览器 |
|
||||||
|
| **桌面应用** | 无 CORS 限制,支持自动更新 |
|
||||||
|
| **Chrome 扩展** | 浏览器内嵌使用 |
|
||||||
|
| **Docker 部署** | 自托管,支持密码保护 |
|
||||||
|
|
||||||
|
### 部署方案
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Docker 快速部署
|
||||||
|
docker run -d -p 8081:80 --restart unless-stopped \
|
||||||
|
--name prompt-optimizer linshen/prompt-optimizer
|
||||||
|
|
||||||
|
# Docker Compose 完整部署
|
||||||
|
git clone https://github.com/linshenkx/prompt-optimizer.git
|
||||||
|
cd prompt-optimizer
|
||||||
|
cat > .env << EOF
|
||||||
|
VITE_OPENAI_API_KEY=your_key
|
||||||
|
VITE_GEMINI_API_KEY=your_key
|
||||||
|
VITE_DEEPSEEK_API_KEY=your_key
|
||||||
|
ACCESS_PASSWORD=your_password
|
||||||
|
EOF
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### MCP 集成
|
||||||
|
|
||||||
|
```json
|
||||||
|
// Claude Desktop 配置 (~/.config/Claude/services/services.json)
|
||||||
|
{
|
||||||
|
"services": [
|
||||||
|
{
|
||||||
|
"name": "Prompt Optimizer",
|
||||||
|
"url": "http://localhost:8081/mcp"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**暴露的 3 个 MCP 工具**:
|
||||||
|
- `optimize-user-prompt`:优化用户提示词
|
||||||
|
- `optimize-system-prompt`:优化系统提示词
|
||||||
|
- `iterate-prompt`:迭代优化成熟提示词
|
||||||
|
|
||||||
|
### 三大经典场景
|
||||||
|
|
||||||
|
| 场景 | 效果 |
|
||||||
|
|------|------|
|
||||||
|
| 严厉审稿人 | 从泛泛附和 → 结构化批评,指出假设薄弱点、证据缺口 |
|
||||||
|
| 讨价还价回复 | 单模板变量化,不同商品/价格/语调复用 |
|
||||||
|
| 文生图优化 | 一句话想法 → 主体 + 空间关系 + 情绪锚点的专业提示词 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🤖 自动优化框架对比
|
||||||
|
|
||||||
|
### GEPA(⭐3,980)
|
||||||
|
|
||||||
|
```
|
||||||
|
提示词 → 反射式进化 → 评估 → 再进化 → 最优提示词
|
||||||
|
```
|
||||||
|
|
||||||
|
| 特性 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| **方法** | Reflective Text Evolution |
|
||||||
|
| **适用** | 提示词、代码、任何文本 |
|
||||||
|
| **特点** | AI 驱动的自动迭代优化 |
|
||||||
|
|
||||||
|
### Microsoft PromptWizard(⭐3,839)
|
||||||
|
|
||||||
|
```
|
||||||
|
任务 → Agent 分析 → 生成候选提示词 → 评估 → 选择最优
|
||||||
|
```
|
||||||
|
|
||||||
|
| 特性 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| **方法** | Task-Aware Agent-driven |
|
||||||
|
| **适用** | 特定任务感知的自动优化 |
|
||||||
|
| **特点** | Agent 驱动,任务适配 |
|
||||||
|
|
||||||
|
### Meta prompt-ops(⭐804)
|
||||||
|
|
||||||
|
| 特性 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| **方法** | 系统化提示词优化 |
|
||||||
|
| **适用** | LLM 应用场景 |
|
||||||
|
| **特点** | Meta 官方出品 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📐 提示词优化的方法论
|
||||||
|
|
||||||
|
### 从 Prompt Engineering 到 Context Engineering
|
||||||
|
|
||||||
|
| 维度 | Prompt Engineering | Context Engineering |
|
||||||
|
|------|-------------------|-------------------|
|
||||||
|
| **范围** | 单条提示词优化 | 上下文窗口全局设计 |
|
||||||
|
| **方法** | 人工迭代 | 系统性架构 |
|
||||||
|
| **关注点** | 文字表达 | 信息填充、编排、优化 |
|
||||||
|
|
||||||
|
> "Context engineering is the delicate art and science of filling the context window with just the right information for the next step." — Andrej Karpathy
|
||||||
|
|
||||||
|
### 优化流程
|
||||||
|
|
||||||
|
```
|
||||||
|
1. 明确任务目标 → 2. 编写初始提示词 → 3. 测试效果
|
||||||
|
↕
|
||||||
|
7. 持续监控 ← 6. 部署使用 ← 5. 评估对比 ← 4. 迭代优化
|
||||||
|
```
|
||||||
|
|
||||||
|
### 关键技巧
|
||||||
|
|
||||||
|
| 技巧 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| **角色扮演** | 赋予 AI 专家角色 |
|
||||||
|
| **结构化输出** | 要求 JSON/表格/特定格式 |
|
||||||
|
| **少样本示例** | 提供 1-3 个示例 |
|
||||||
|
| **思维链** | 要求逐步推理 |
|
||||||
|
| **边界条件** | 明确处理范围和限制 |
|
||||||
|
| **变量化** | 可复用模板 + 变量替换 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🆚 三选一指南
|
||||||
|
|
||||||
|
| 你的需求 | 推荐方案 |
|
||||||
|
|---------|---------|
|
||||||
|
| **想交互式优化提示词** | linshenkx/prompt-optimizer |
|
||||||
|
| **想自动批量优化** | GEPA / PromptWizard |
|
||||||
|
| **想学习方法论** | Context-Engineering 手册 |
|
||||||
|
| **想在 Claude Desktop 中集成** | prompt-optimizer + MCP |
|
||||||
|
| **想自托管** | prompt-optimizer Docker |
|
||||||
|
| **Meta 生态用户** | Meta prompt-ops |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 与 OpenClaw 的结合
|
||||||
|
|
||||||
|
| 结合方式 | 说明 |
|
||||||
|
|---------|------|
|
||||||
|
| **MCP 集成** | prompt-optimizer 通过 MCP 暴露优化能力 |
|
||||||
|
| **Claude Desktop** | 可在 Claude Desktop 调用优化服务 |
|
||||||
|
| **提示词模板** | 优化后的提示词可用于 OpenClaw Agent 配置 |
|
||||||
|
| **SOUL.md 优化** | 可用工具优化 Agent 人格提示词 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 资源
|
||||||
|
|
||||||
|
| 资源 | 链接 |
|
||||||
|
|------|------|
|
||||||
|
| **prompt-optimizer** | https://github.com/linshenkx/prompt-optimizer |
|
||||||
|
| **在线体验** | https://prompt.always200.com |
|
||||||
|
| **GEPA** | https://github.com/gepa-ai/gepa |
|
||||||
|
| **PromptWizard** | https://github.com/microsoft/PromptWizard |
|
||||||
|
| **Context-Engineering** | https://github.com/davidkimai/Context-Engineering |
|
||||||
|
| **Meta prompt-ops** | https://github.com/meta-llama/prompt-ops |
|
||||||
|
| **auto-prompt** | https://github.com/AIDotNet/auto-prompt |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*整理:知识库管理员 | 归档:2026-04-25*
|
||||||
331
wiki/sources/Rclone管理WebDAV笔记
Executable file
331
wiki/sources/Rclone管理WebDAV笔记
Executable file
@@ -0,0 +1,331 @@
|
|||||||
|
# Rclone 管理 WebDAV 笔记
|
||||||
|
|
||||||
|
> 使用 rclone 命令行工具管理 Obsidian WebDAV 服务器
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ 实测成功!
|
||||||
|
|
||||||
|
**rclone 可以连接你的 WebDAV 服务器!**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 安装 rclone
|
||||||
|
|
||||||
|
### Linux/macOS/Windows
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 下载最新版本
|
||||||
|
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
|
||||||
|
unzip rclone-current-linux-amd64.zip
|
||||||
|
sudo mv rclone-*-linux-amd64/rclone /usr/local/bin/
|
||||||
|
sudo chmod +x /usr/local/bin/rclone
|
||||||
|
rm -rf rclone-*-linux-amd64*
|
||||||
|
|
||||||
|
# 验证安装
|
||||||
|
rclone --version
|
||||||
|
```
|
||||||
|
|
||||||
|
### Docker 环境(无需安装)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 直接下载二进制文件
|
||||||
|
wget https://downloads.rclone.org/rclone-current-linux-amd64.zip
|
||||||
|
unzip rclone-current-linux-amd64.zip
|
||||||
|
./rclone-v*-linux-amd64/rclone --version
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 配置 WebDAV 远程
|
||||||
|
|
||||||
|
### 1. 交互式配置
|
||||||
|
|
||||||
|
```bash
|
||||||
|
rclone config
|
||||||
|
|
||||||
|
# 步骤:
|
||||||
|
# n) 新建远程
|
||||||
|
# name: obsidian-webdav
|
||||||
|
# Storage: webdav
|
||||||
|
# URL: http://8.134.220.229:13803/实践积累
|
||||||
|
# vendor: other
|
||||||
|
# user: admin
|
||||||
|
# password: blackhill
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 手动创建配置文件
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir -p ~/.config/rclone
|
||||||
|
|
||||||
|
cat > ~/.config/rclone/rclone.conf << 'EOF'
|
||||||
|
[obsidian-webdav]
|
||||||
|
type = webdav
|
||||||
|
url = http://8.134.220.229:13803/实践积累
|
||||||
|
vendor = other
|
||||||
|
user = admin
|
||||||
|
pass = blackhill
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
⚠️ **注意**:某些 WebDAV 服务器不支持 Digest 认证,需要用 Basic 认证。
|
||||||
|
|
||||||
|
### 3. 测试连接
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 列出所有文件
|
||||||
|
rclone ls obsidian-webdav: --max-depth 5
|
||||||
|
|
||||||
|
# 列出所有文件夹
|
||||||
|
rclone lsd obsidian-webdav:
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 常用命令
|
||||||
|
|
||||||
|
### 查看文件
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 列出根目录
|
||||||
|
rclone ls obsidian-webdav:
|
||||||
|
|
||||||
|
# 列出指定目录
|
||||||
|
rclone ls obsidian-webdav:AI工程
|
||||||
|
|
||||||
|
# 递归列出所有文件
|
||||||
|
rclone ls obsidian-webdav: --max-depth 10
|
||||||
|
|
||||||
|
# 按大小排序显示
|
||||||
|
rclone ls obsidian-webdav: --max-depth 1 | sort -k1 -n
|
||||||
|
```
|
||||||
|
|
||||||
|
### 上传文件
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 上传单个文件
|
||||||
|
rclone copy /path/to/file.md obsidian-webdav:目标文件夹/
|
||||||
|
|
||||||
|
# 上传整个目录
|
||||||
|
rclone copy /path/to/folder obsidian-webdav:目标文件夹/
|
||||||
|
|
||||||
|
# 示例:上传到 AI工程 文件夹
|
||||||
|
rclone copy ~/笔记/AI工程.md obsidian-webdav:AI工程/
|
||||||
|
```
|
||||||
|
|
||||||
|
### 下载文件
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 下载单个文件
|
||||||
|
rclone copy obsidian-webdav:AI工程/code-reviewer技能.md /tmp/
|
||||||
|
|
||||||
|
# 下载整个文件夹
|
||||||
|
rclone copy obsidian-webdav:AI工程 /tmp/ai-folder/
|
||||||
|
```
|
||||||
|
|
||||||
|
### 同步本地与远程
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 同步本地文件夹到 WebDAV(单向)
|
||||||
|
rclone sync /path/to/local obsidian-webdav:remote --progress
|
||||||
|
|
||||||
|
# 双向同步(需要小心使用)
|
||||||
|
rclone bisync /path/to/local obsidian-webdav:remote --progress
|
||||||
|
```
|
||||||
|
|
||||||
|
### 删除文件
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 删除远程文件
|
||||||
|
rclone delete obsidian-webdav:文件夹/文件名.md
|
||||||
|
|
||||||
|
# 删除空文件夹
|
||||||
|
rclone rmdir obsidian-webdav:空文件夹/
|
||||||
|
```
|
||||||
|
|
||||||
|
### 搜索文件
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 搜索文件名包含关键字的文件
|
||||||
|
rclone ls obsidian-webdav: | grep "关键字"
|
||||||
|
|
||||||
|
# 搜索多个关键词
|
||||||
|
rclone ls obsidian-webdav: | grep -E "关键词1|关键词2"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 挂载为本地目录(可选)
|
||||||
|
|
||||||
|
将 WebDAV 挂载为本地文件夹,像操作本地文件一样使用。
|
||||||
|
|
||||||
|
### 需要 FUSE 支持
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Debian/Ubuntu 安装 fuse
|
||||||
|
sudo apt-get install fuse
|
||||||
|
|
||||||
|
# 检查 FUSE 可用
|
||||||
|
cat /proc/filesystems | grep fuse
|
||||||
|
```
|
||||||
|
|
||||||
|
### 挂载命令
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 创建挂载点
|
||||||
|
mkdir -p ~/obsidian-webdav
|
||||||
|
|
||||||
|
# 前台运行(测试用)
|
||||||
|
rclone mount obsidian-webdav: ~/obsidian-webdav --vv
|
||||||
|
|
||||||
|
# 后台运行
|
||||||
|
rclone mount obsidian-webdav: ~/obsidian-webdav \
|
||||||
|
--daemon \
|
||||||
|
--vfs-cache-mode writes \
|
||||||
|
--allow-other
|
||||||
|
|
||||||
|
# 查看挂载状态
|
||||||
|
df -h | grep obsidian
|
||||||
|
|
||||||
|
# 卸载
|
||||||
|
fusermount -uz ~/obsidian-webdav
|
||||||
|
```
|
||||||
|
|
||||||
|
### 开机自启(systemd)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cat > ~/.config/systemd/user/rclone-obsidian.service << 'EOF'
|
||||||
|
[Unit]
|
||||||
|
Description=rclone mount for Obsidian WebDAV
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/local/bin/rclone mount obsidian-webdav: %h/obsidian-webdav \
|
||||||
|
--vfs-cache-mode writes \
|
||||||
|
--allow-other
|
||||||
|
ExecStop=/bin/fusermount -uz %h/obsidian-webdav
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# 启用服务
|
||||||
|
systemctl --user enable rclone-obsidian.service
|
||||||
|
systemctl --user start rclone-obsidian.service
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 与 Obsidian Headless 配合使用
|
||||||
|
|
||||||
|
安装 rclone 后,可以配合 obsidian-headless 使用:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. 挂载 WebDAV 为本地目录
|
||||||
|
rclone mount obsidian-webdav: ~/obsidian-webdav --daemon --vfs-cache-mode writes
|
||||||
|
|
||||||
|
# 2. 配置 obsidian-headless 使用该目录
|
||||||
|
echo "~/obsidian-webdav" > ~/.config/obsidian-headless/vault-path
|
||||||
|
|
||||||
|
# 3. 使用自然语言管理笔记
|
||||||
|
obs创建笔记 新想法
|
||||||
|
obs搜索笔记 关键字
|
||||||
|
obs列出所有
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 你的服务器配置
|
||||||
|
|
||||||
|
```
|
||||||
|
服务器: http://8.134.220.229:13803
|
||||||
|
路径: /实践积累
|
||||||
|
用户名: admin
|
||||||
|
密码: blackhill
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 常见问题
|
||||||
|
|
||||||
|
### Q: 连接返回 401 Unauthorized
|
||||||
|
|
||||||
|
**原因**:某些 WebDAV 服务器不支持 Digest 认证
|
||||||
|
|
||||||
|
**解决**:在配置文件中使用明文密码(rclone 会自动处理)
|
||||||
|
|
||||||
|
```
|
||||||
|
pass = blackhill # 不要加密
|
||||||
|
```
|
||||||
|
|
||||||
|
### Q: 文件名中文乱码
|
||||||
|
|
||||||
|
**解决**:确保终端编码为 UTF-8
|
||||||
|
|
||||||
|
```bash
|
||||||
|
export LANG=zh_CN.UTF-8
|
||||||
|
export LC_ALL=zh_CN.UTF-8
|
||||||
|
```
|
||||||
|
|
||||||
|
### Q: 挂载后访问很慢
|
||||||
|
|
||||||
|
**解决**:使用 VFS 缓存模式
|
||||||
|
|
||||||
|
```bash
|
||||||
|
rclone mount obsidian-webdav: ~/obsidian-webdav \
|
||||||
|
--vfs-cache-mode writes \
|
||||||
|
--vfs-cache-max-age 168h \
|
||||||
|
--vfs-write-back 5s
|
||||||
|
```
|
||||||
|
|
||||||
|
### Q: 挂载占用大量内存
|
||||||
|
|
||||||
|
**解决**:限制缓存大小
|
||||||
|
|
||||||
|
```bash
|
||||||
|
rclone mount obsidian-webdav: ~/obsidian-webdav \
|
||||||
|
--vfs-cache-mode writes \
|
||||||
|
--buffer-size 256M
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 完整工作流示例
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. 配置远程
|
||||||
|
rclone config << 'EOF'
|
||||||
|
n
|
||||||
|
obsidian-webdav
|
||||||
|
webdav
|
||||||
|
http://8.134.220.229:13803/实践积累
|
||||||
|
other
|
||||||
|
admin
|
||||||
|
blackhill
|
||||||
|
y
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# 2. 查看文件结构
|
||||||
|
rclone lsd obsidian-webdav:
|
||||||
|
|
||||||
|
# 3. 挂载为本地目录
|
||||||
|
mkdir -p ~/obsidian-webdav
|
||||||
|
rclone mount obsidian-webdav: ~/obsidian-webdav --daemon --vfs-cache-mode writes
|
||||||
|
|
||||||
|
# 4. 在 Obsidian 中直接使用
|
||||||
|
# 文件会自动同步到 WebDAV
|
||||||
|
|
||||||
|
# 5. 卸载
|
||||||
|
fusermount -uz ~/obsidian-webdav
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 参考链接
|
||||||
|
|
||||||
|
- [rclone 官网](https://rclone.org)
|
||||||
|
- [rclone WebDAV 配置](https://rclone.org/webdav/)
|
||||||
|
- [obsidian-headless GitHub](https://github.com/imakid/obsidian-headless)
|
||||||
307
wiki/sources/WPSNoteSkills研究
Executable file
307
wiki/sources/WPSNoteSkills研究
Executable file
@@ -0,0 +1,307 @@
|
|||||||
|
# WPS Note Skills 完全研究
|
||||||
|
|
||||||
|
> WPS 笔记的 AI Agent Skill 生态:让 Agent 替你打理记忆层
|
||||||
|
>
|
||||||
|
> 归档:2026-04-25
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 项目概览
|
||||||
|
|
||||||
|
| 属性 | 值 |
|
||||||
|
|------|------|
|
||||||
|
| **仓库** | wpsnote/wpsnote-skills |
|
||||||
|
| **Stars** | 119 |
|
||||||
|
| **创建** | 2026-03-11(极新项目) |
|
||||||
|
| **定位** | WPS 笔记的 AI Agent Skill 生态 |
|
||||||
|
| **支持平台** | Claude Code / Cursor / OpenClaw |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 核心定位
|
||||||
|
|
||||||
|
```
|
||||||
|
WPS 笔记 + AI Agent Skills
|
||||||
|
↓
|
||||||
|
Agent 读取 → 编辑 → 搜索 → 管理 → 创作 → 灵感
|
||||||
|
↓
|
||||||
|
笔记不再是你自己整理的地方
|
||||||
|
而是 Agent 替你打理的记忆层
|
||||||
|
```
|
||||||
|
|
||||||
|
**一句话**:以 WPS 笔记为底座,让 Claude Code/Cursor/OpenClaw 等 AI Agent 直接驱动笔记系统。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🏗️ 架构设计
|
||||||
|
|
||||||
|
```
|
||||||
|
┌──────────────────────────────────────┐
|
||||||
|
│ AI Agent │
|
||||||
|
│ Claude Code / Cursor / OpenClaw │
|
||||||
|
└──────────────┬───────────────────────┘
|
||||||
|
│ MCP / CLI
|
||||||
|
┌──────────────┴───────────────────────┐
|
||||||
|
│ wpsnote-skills 生态 │
|
||||||
|
│ 30+ Skills 按功能分组 │
|
||||||
|
└──────────────┬───────────────────────┘
|
||||||
|
│
|
||||||
|
┌──────────────┴───────────────────────┐
|
||||||
|
│ WPS 笔记底层 │
|
||||||
|
│ 读取 / 编辑 / 搜索 / 管理 │
|
||||||
|
└──────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📦 七大 Skill 分组(30+ Skills)
|
||||||
|
|
||||||
|
### 1. 基础层(Core Skills)
|
||||||
|
|
||||||
|
| Skill | 功能 |
|
||||||
|
|-------|------|
|
||||||
|
| **wps-note** | 基础能力:读取、编辑、搜索、管理笔记(所有 Skill 的依赖) |
|
||||||
|
| **wpsnote-beautifier** | 智能美化:优化标题、高亮块、分栏、统一配色 |
|
||||||
|
| **note-copilot** | 协作打磨:处理援助标记、发现逻辑错误着色提醒 |
|
||||||
|
| **tag-organize** | 标签整理:清理混乱标签、重构体系(MCP 版) |
|
||||||
|
| **tag-organize-cli** | 同上(CLI 版) |
|
||||||
|
| **skill-creator** | Skill 创建、迭代与评估工具 |
|
||||||
|
|
||||||
|
### 2. 内容创作(Content Skills)
|
||||||
|
|
||||||
|
| Skill | 功能 |
|
||||||
|
|-------|------|
|
||||||
|
| **content-creator** | 完整创作流:风格画像→需求→大纲→研究→文章→定稿 |
|
||||||
|
| **wechat-publisher** | 笔记→微信公众号 HTML,多模板风格 |
|
||||||
|
| **short-video-copywriter** | 原稿→短视频口播文案,分镜脚本+AI 配图 |
|
||||||
|
| **xiaohongshu-note-creator** | 笔记/文章→小红书图文方案 |
|
||||||
|
| **image-gen** | AI 图像生成(文生图+图生图),对接多平台 |
|
||||||
|
|
||||||
|
### 3. 搜索阅读(Capture Skills)
|
||||||
|
|
||||||
|
| Skill | 功能 |
|
||||||
|
|-------|------|
|
||||||
|
| **content-digest** | 万能内容提炼:URL/图片/PDF/文本→结构化笔记 |
|
||||||
|
| **news-to-note** | 新闻智能解读,关联笔记库产出洞察 |
|
||||||
|
| **wps-note-intelligent-search** | 深度搜索,跨笔记关联+知识图谱 |
|
||||||
|
| **literature-reader** | 学术文献阅读:元信息+方法论+多篇对比 |
|
||||||
|
| **paper-researcher** | 论文全流程:搜索→下载→精读→存入笔记 |
|
||||||
|
|
||||||
|
### 4. 信息捕获(Capture Skills)
|
||||||
|
|
||||||
|
| Skill | 功能 |
|
||||||
|
|-------|------|
|
||||||
|
| **live-transcript-summary** | 实时音频转写监听+自动总结(会议/听课/播客) |
|
||||||
|
| **doc-importer** | 批量导入本地文档(Obsidian/思源/PDF/Word) |
|
||||||
|
| **web-importer** | 网页无损导入(公众号/推文/通用网页) |
|
||||||
|
| **coding-assistant** | 多平台编码助手,生成技术文档 |
|
||||||
|
| **note-calendar** | WPS 笔记与 macOS 日历双向联动 |
|
||||||
|
|
||||||
|
### 5. 灵感引擎(Creative Skills)
|
||||||
|
|
||||||
|
| Skill | 功能 |
|
||||||
|
|-------|------|
|
||||||
|
| **ie-engine** | 统一入口:完整灵感生成流水线 |
|
||||||
|
| **ie-retrieve-memory** | 记忆层:从历史笔记检索 |
|
||||||
|
| **ie-connect-dots** | 推理层:语义聚类+发现隐含关联 |
|
||||||
|
| **ie-generate-insight** | 洞见层:转化为启发性内容 |
|
||||||
|
| **ie-recall-memory** | 选择性召回:当前最该想起的旧笔记 |
|
||||||
|
|
||||||
|
### 6. 学习(Learning Skills)
|
||||||
|
|
||||||
|
| Skill | 功能 |
|
||||||
|
|-------|------|
|
||||||
|
| **class-note-builder** | 课堂逐字稿/OCR→结构化主笔记 |
|
||||||
|
| **lecture-focus-extractor** | 长篇笔记→提取复习重点 |
|
||||||
|
| **misconception-finder** | 检查理解错误/概念混淆/逻辑跳步 |
|
||||||
|
| **notes-to-flashcards** | 笔记→主动回忆复习卡片 |
|
||||||
|
| **notes-to-lesson-plan** | 笔记→teach-back 提纲 |
|
||||||
|
| **prerequisite-gap-finder** | 找出学习卡点与缺失前置知识 |
|
||||||
|
| **study-note-linker** | 新笔记关联旧笔记,构建知识网络 |
|
||||||
|
|
||||||
|
### 7. 长篇创作(Creative Skills)
|
||||||
|
|
||||||
|
| Skill | 功能 |
|
||||||
|
|-------|------|
|
||||||
|
| **novel-writer** | AI 陪伴式长篇小说创作(有记忆、不穿帮) |
|
||||||
|
| **novel-writer-cli** | 同上(CLI 版) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔧 两种驱动方式
|
||||||
|
|
||||||
|
### CLI 模式
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 安装:WPS 笔记桌面端 MCP 设置页点击安装 CLI
|
||||||
|
wpsnote-cli status # 检查连接
|
||||||
|
wpsnote-cli list # 列出笔记
|
||||||
|
wpsnote-cli read --help # 查看用法
|
||||||
|
```
|
||||||
|
|
||||||
|
适合:Claude Code / Cursor / OpenClaw 等终端型 Agent
|
||||||
|
|
||||||
|
### MCP 模式
|
||||||
|
|
||||||
|
图形化配置,开箱即用,20+ 工具与 CLI 命令一一对应。
|
||||||
|
|
||||||
|
适合:Cherry Studio 等图形化 Agent
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📋 核心操作模式
|
||||||
|
|
||||||
|
```
|
||||||
|
定位(outline/search)→ 读取(read)→ 编辑(edit)
|
||||||
|
```
|
||||||
|
|
||||||
|
| 操作 | CLI 命令 | MCP 工具 |
|
||||||
|
|------|---------|---------|
|
||||||
|
| 获取大纲 | `wpsnote-cli outline` | `get_note_outline` |
|
||||||
|
| 读取全文 | `wpsnote-cli read` | `read_note_content` |
|
||||||
|
| 按章节读 | `wpsnote-cli section` | `read_section` |
|
||||||
|
| 搜索 | `wpsnote-cli search` | `search_note_content` |
|
||||||
|
| 编辑 | `wpsnote-cli edit` | `edit_block` |
|
||||||
|
| 批量编辑 | `wpsnote-cli batch-edit` | `batch_edit` |
|
||||||
|
| 创建笔记 | `wpsnote-cli create` | `create_note` |
|
||||||
|
| 搜索笔记 | `wpsnote-cli find` | `search_notes` |
|
||||||
|
| 标签管理 | `wpsnote-cli tags` | `list_tags` |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 安装与使用
|
||||||
|
|
||||||
|
### 在 Claude Code 中
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 注册为插件市场
|
||||||
|
/plugin marketplace add wpsnote/wpsnote-skills
|
||||||
|
|
||||||
|
# 安装 Skill 组
|
||||||
|
/plugin install core-skills@wpsnote-skills
|
||||||
|
/plugin install content-skills@wpsnote-skills
|
||||||
|
/plugin install capture-skills@wpsnote-skills
|
||||||
|
/plugin install creative-skills@wpsnote-skills
|
||||||
|
/plugin install learning-skills@wpsnote-skills
|
||||||
|
```
|
||||||
|
|
||||||
|
### 创建自定义 Skill
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
name: my-skill-name
|
||||||
|
description: 一句话描述功能和触发时机
|
||||||
|
---
|
||||||
|
|
||||||
|
# Skill 名称
|
||||||
|
|
||||||
|
[Agent 执行指令]
|
||||||
|
|
||||||
|
## 示例
|
||||||
|
- 使用场景 1
|
||||||
|
- 使用场景 2
|
||||||
|
|
||||||
|
## 规则
|
||||||
|
- 规则 1
|
||||||
|
- 规则 2
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧪 评测系统
|
||||||
|
|
||||||
|
内置三态评测骨架(只看结果,不看过程):
|
||||||
|
|
||||||
|
| 状态 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| **original_state** | 执行前的真实基线 |
|
||||||
|
| **expected_state** | 期望达到的目标状态 |
|
||||||
|
| **final_state** | 执行后的真实观测状态 |
|
||||||
|
|
||||||
|
首版覆盖:doc-importer / tag-organize / web-importer / wps-deep-search
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🆚 与 Obsidian 生态对比
|
||||||
|
|
||||||
|
| 维度 | WPS Note Skills | Obsidian 插件 |
|
||||||
|
|------|-----------------|--------------|
|
||||||
|
| 底层 | WPS 笔记 | 本地 Markdown |
|
||||||
|
| AI Agent 驱动 | ✅ 原生支持 | 需额外配置 |
|
||||||
|
| 技能市场 | ✅ 插件式安装 | ✅ 社区市场 |
|
||||||
|
| 多平台 | WPS 全平台 | 桌面+移动 |
|
||||||
|
| 团队协作 | ✅ WPS 内置 | 需同步服务 |
|
||||||
|
| 学习工作流 | ✅ 完整 | 部分 |
|
||||||
|
| 灵感引擎 | ✅ 四层流水线 | ❌ |
|
||||||
|
| 开源 | ✅ | ✅ |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 典型场景
|
||||||
|
|
||||||
|
### 场景一:知识管理
|
||||||
|
|
||||||
|
```
|
||||||
|
网页导入 → 内容提炼 → 标签整理 → 知识图谱 → 灵感关联
|
||||||
|
```
|
||||||
|
|
||||||
|
### 场景二:内容创作
|
||||||
|
|
||||||
|
```
|
||||||
|
风格画像 → 需求确认 → 大纲 → 深度研究 → 文章 → 多平台发布
|
||||||
|
↓
|
||||||
|
微信公众号 / 小红书 / 短视频文案
|
||||||
|
```
|
||||||
|
|
||||||
|
### 场景三:学习笔记
|
||||||
|
|
||||||
|
```
|
||||||
|
课堂录音 → 转写 → 结构化笔记 → 重点提取 → 复习卡片
|
||||||
|
↓
|
||||||
|
关联旧笔记 → 查漏补缺 → 知识网络
|
||||||
|
```
|
||||||
|
|
||||||
|
### 场景四:小说创作
|
||||||
|
|
||||||
|
```
|
||||||
|
角色设定 → 大纲 → 逐章创作 → 记忆追踪 → 不穿帮
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 评价
|
||||||
|
|
||||||
|
### 优点
|
||||||
|
- ✅ **完整 Skill 生态**:30+ Skills 覆盖笔记全生命周期
|
||||||
|
- ✅ **多 Agent 支持**:Claude Code / Cursor / OpenClaw
|
||||||
|
- ✅ **双驱动模式**:CLI + MCP 灵活选择
|
||||||
|
- ✅ **分层设计**:基础→创作→搜索→灵感→学习→长篇
|
||||||
|
- ✅ **评测系统**:内置三态评测,质量有保障
|
||||||
|
- ✅ **社区共创**:鼓励贡献自定义 Skill
|
||||||
|
|
||||||
|
### 注意点
|
||||||
|
- ⚠️ **极新项目**(2026-03-11 创建,119 stars)
|
||||||
|
- ⚠️ **依赖 WPS 笔记**:需要 WPS 桌面端
|
||||||
|
- ⚠️ **中文为主**:文档和社区以中文为主
|
||||||
|
- ⚠️ **部分 Skill 需 MCP 配置**:需要一定技术基础
|
||||||
|
|
||||||
|
### 适用场景
|
||||||
|
- 使用 WPS 笔记的知识工作者
|
||||||
|
- 需要 AI Agent 驱动笔记管理的用户
|
||||||
|
- 有内容创作需求的创作者
|
||||||
|
- 需要系统化学习的学习者
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 资源
|
||||||
|
|
||||||
|
| 资源 | 链接 |
|
||||||
|
|------|------|
|
||||||
|
| **GitHub** | https://github.com/wpsnote/wpsnote-skills |
|
||||||
|
| **WPS 笔记** | https://ainote.kdocs.cn |
|
||||||
|
| **Skill 集合** | https://ainote.kdocs.cn/wps-notes-hub/ |
|
||||||
|
| **文档** | https://365.kdocs.cn/l/cau3Z9vsAUQt |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*整理:知识库管理员 | 归档:2026-04-25*
|
||||||
226
wiki/sources/WebDAV挂载指南
Executable file
226
wiki/sources/WebDAV挂载指南
Executable file
@@ -0,0 +1,226 @@
|
|||||||
|
# WebDAV 挂载到 Linux 本地目录
|
||||||
|
|
||||||
|
将远程 WebDAV 服务器(如 Obsidian/Synology NAS)挂载为本地文件夹,像操作本地文件一样管理。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 方法一:davfs2(推荐,最稳定)
|
||||||
|
|
||||||
|
### 1. 安装 davfs2
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Debian/Ubuntu
|
||||||
|
sudo apt-get install davfs2
|
||||||
|
|
||||||
|
# CentOS/RHEL
|
||||||
|
sudo yum install davfs2
|
||||||
|
|
||||||
|
# macOS
|
||||||
|
brew install davfs2
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 挂载 WebDAV
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 创建挂载点
|
||||||
|
sudo mkdir -p /mnt/webdav
|
||||||
|
|
||||||
|
# 挂载(需要输入用户名密码)
|
||||||
|
sudo mount -t davfs http://your-server:port/path /mnt/webdav
|
||||||
|
|
||||||
|
# 或者指定用户名
|
||||||
|
sudo mount -t davfs -o username=admin http://your-server:port/path /mnt/webdav
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 开机自动挂载
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 添加到 /etc/fstab
|
||||||
|
echo "http://your-server:port/path /mnt/webdav davfs defaults,username=admin,password=yourpass 0 0" | sudo tee -a /etc/fstab
|
||||||
|
|
||||||
|
# 或者保存密码到文件(更安全)
|
||||||
|
echo "yourpass" | sudo tee /etc/davfs2/secrets
|
||||||
|
chmod 600 /etc/davfs2/secrets
|
||||||
|
echo "/mnt/webdav username password" | sudo tee -a /etc/davfs2/secrets
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 方法二:rclone(支持云存储,适合 Docker 环境)
|
||||||
|
|
||||||
|
### 1. 安装 rclone
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 下载最新版本
|
||||||
|
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
|
||||||
|
unzip rclone-current-linux-amd64.zip
|
||||||
|
sudo mv rclone-*-linux-amd64/rclone /usr/local/bin/
|
||||||
|
sudo chown root:root /usr/local/bin/rclone
|
||||||
|
sudo chmod 755 /usr/local/bin/rclone
|
||||||
|
rm -rf rclone-*-linux-amd64 rclone-current-linux-amd64.zip
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 配置 rclone
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 交互式配置
|
||||||
|
rclone config
|
||||||
|
|
||||||
|
# 选择 n 新建配置
|
||||||
|
# 输入名称,如:obsidian-webdav
|
||||||
|
# 类型选择:webdav
|
||||||
|
# URL:https://your-server:port/path
|
||||||
|
# vendor:other
|
||||||
|
# 输入用户名密码
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 挂载为本地目录
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 创建挂载点
|
||||||
|
mkdir -p ~/obsidian-webdav
|
||||||
|
|
||||||
|
# 前台测试(确认能连接)
|
||||||
|
rclone mount obsidian-webdav: ~/obsidian-webdav --vv
|
||||||
|
|
||||||
|
# 后台运行
|
||||||
|
rclone mount obsidian-webdav: ~/obsidian-webdav \
|
||||||
|
--daemon \
|
||||||
|
--vfs-cache-mode writes \
|
||||||
|
--allow-other
|
||||||
|
|
||||||
|
# 开机自启(systemd)
|
||||||
|
cat > ~/.config/systemd/user/rclone-obsidian.service << 'EOF'
|
||||||
|
[Unit]
|
||||||
|
Description=rclone mount for Obsidian
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/local/bin/rclone mount obsidian-webdav: %h/obsidian-webdav --vfs-cache-mode writes
|
||||||
|
ExecStop=/bin/fusermount -uz %h/obsidian-webdav
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
|
EOF
|
||||||
|
|
||||||
|
systemctl --user enable rclone-obsidian.service
|
||||||
|
systemctl --user start rclone-obsidian.service
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 方法三:fUSE + davfs2(用户空间挂载,无需 root)
|
||||||
|
|
||||||
|
### 1. 安装 fuse 和 davfs2
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt-get install fuse davfs2
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 配置非 root 用户使用 FUSE
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo usermod -a -G fuse $USER
|
||||||
|
# 重新登录生效
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 挂载
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir -p ~/webdav
|
||||||
|
fusedav https://your-server:port/path -u username -p password ~/webdav
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 方法四:curlftps(FTP over HTTPS,需要 FUSE)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 安装
|
||||||
|
sudo apt-get install curlftpfs
|
||||||
|
|
||||||
|
# 挂载
|
||||||
|
sudo curlftpfs -o allow_other,user=username:password https://your-server/path /mnt/webdav
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 方法五:直接在代码中使用 WebDAV
|
||||||
|
|
||||||
|
### Python 示例
|
||||||
|
|
||||||
|
```python
|
||||||
|
import webdav3.client as wc
|
||||||
|
|
||||||
|
options = {
|
||||||
|
'webdav_hostname': "https://your-server:port/path",
|
||||||
|
'webdav_login': "username",
|
||||||
|
'webdav_password': "password"
|
||||||
|
}
|
||||||
|
|
||||||
|
client = wc.Client(options)
|
||||||
|
|
||||||
|
# 列出文件
|
||||||
|
print(client.list())
|
||||||
|
|
||||||
|
# 下载文件
|
||||||
|
client.download_sync(remote_path="file.md", local_path="file.md")
|
||||||
|
|
||||||
|
# 上传文件
|
||||||
|
client.upload_sync(local_path="new.md", remote_path="new.md")
|
||||||
|
```
|
||||||
|
|
||||||
|
### 安装 webdav3
|
||||||
|
```bash
|
||||||
|
pip install webdav3
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 你的服务器信息
|
||||||
|
|
||||||
|
```
|
||||||
|
服务器: http://8.134.220.229:13803
|
||||||
|
用户名: admin
|
||||||
|
密码: blackhill
|
||||||
|
路径: /实践积累
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 快速测试命令
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 测试连接(curl)
|
||||||
|
curl -s --digest --user admin:blackhill \
|
||||||
|
"http://8.134.220.229:13803/实践积累/" | head -20
|
||||||
|
|
||||||
|
# 列出文件
|
||||||
|
curl -s --digest --user admin:blackhill \
|
||||||
|
-X PROPFIND "http://8.134.220.229:13803/实践积累/" -H "Depth: 1" | \
|
||||||
|
grep -oE '<d:href>[^<]+</d:href>' | head -10
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 常见问题
|
||||||
|
|
||||||
|
### Q: 挂载后文件看不到?
|
||||||
|
- 检查网络连接
|
||||||
|
- 确认用户名密码正确
|
||||||
|
- 查看日志:`dmesg | tail`
|
||||||
|
|
||||||
|
### Q: 写入慢或失败?
|
||||||
|
- davfs2 有缓存,可能有延迟
|
||||||
|
- 尝试增加缓存大小
|
||||||
|
- 检查服务器端是否有写入权限限制
|
||||||
|
|
||||||
|
### Q: Docker 容器内无法挂载?
|
||||||
|
- Docker 需要 `--privileged` 模式
|
||||||
|
- 或者使用 rclone 的 `--allow-non-empty`
|
||||||
|
|
||||||
|
### Q: 开机自启失败?
|
||||||
|
- 检查 systemd 服务配置
|
||||||
|
- 确保网络在挂载前已就绪(添加 `After=network.target`)
|
||||||
295
wiki/sources/WhisperCal完全研究
Executable file
295
wiki/sources/WhisperCal完全研究
Executable file
@@ -0,0 +1,295 @@
|
|||||||
|
# WhisperCal 完全研究
|
||||||
|
|
||||||
|
> Obsidian 日历集成 + 会议录音 + 五阶段 AI 流水线
|
||||||
|
>
|
||||||
|
> 归档:2026-04-25
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 项目概览
|
||||||
|
|
||||||
|
| 属性 | 值 |
|
||||||
|
|------|------|
|
||||||
|
| **仓库** | dloomis/WhisperCal |
|
||||||
|
| **作者** | dloomis |
|
||||||
|
| **定位** | Obsidian 桌面插件:日历 + 录音 + 转写 + 摘要 + 研究 |
|
||||||
|
| **平台** | macOS + Windows(仅桌面) |
|
||||||
|
| **安装** | BRAT 或手动安装 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 核心定位
|
||||||
|
|
||||||
|
```
|
||||||
|
Google/Microsoft 日历 → Obsidian 侧边栏
|
||||||
|
↓
|
||||||
|
一键创建会议笔记
|
||||||
|
↓
|
||||||
|
录音 + 转写(Whisper)
|
||||||
|
↓
|
||||||
|
LLM 说话人识别 + 摘要 + 会前研究
|
||||||
|
```
|
||||||
|
|
||||||
|
**一句话**:把日历、录音、转写、摘要、研究整合到一个 Obsidian 插件里。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🏗️ 五阶段流水线(核心设计)
|
||||||
|
|
||||||
|
| 阶段 | 名称 | 功能 |
|
||||||
|
|------|------|------|
|
||||||
|
| **Stage 1** | Note | 从日历事件一键创建会议笔记(支持模板) |
|
||||||
|
| **Stage 2** | Record/Transcript | 录音并转写为文字 |
|
||||||
|
| **Stage 3** | Speakers | LLM 识别说话人,逐人分段标注 |
|
||||||
|
| **Stage 4** | Summary | LLM 生成会议纪要、关键决策、行动项 |
|
||||||
|
| **Stage 5** | Research | 基于知识库的会前研究准备 |
|
||||||
|
|
||||||
|
### 流水线状态追踪
|
||||||
|
|
||||||
|
每个会议卡片上有 5 个药丸按钮,显示每个阶段的完成状态。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📅 日历侧边栏
|
||||||
|
|
||||||
|
### 支持平台
|
||||||
|
|
||||||
|
| 日历 | 连接方式 |
|
||||||
|
|------|---------|
|
||||||
|
| **Microsoft 365** | Microsoft Graph API (OAuth2 + PKCE) |
|
||||||
|
| **Google Calendar** | Google Calendar API (OAuth2 + PKCE) |
|
||||||
|
|
||||||
|
### 日历功能
|
||||||
|
|
||||||
|
| 功能 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| 日视图 | 按天浏览会议 |
|
||||||
|
| 自动刷新 | 默认每 5 分钟刷新 |
|
||||||
|
| 离线缓存 | 无网络时显示缓存数据 |
|
||||||
|
| 冲突检测 | 时间重叠的会议分组显示 |
|
||||||
|
| 状态指示 | 绿点=实时 / 灰点=缓存 / 灰点=离线 |
|
||||||
|
|
||||||
|
### 会议卡片
|
||||||
|
|
||||||
|
```
|
||||||
|
┌──────────────────────────────────────┐
|
||||||
|
│ 09:00 ┃ 项目评审会议 │
|
||||||
|
│ 09:30 ┃ 📍 Zoom · 5人 · 3✅ 1? 1❌ │
|
||||||
|
│ ┃ [Note] [Record] [Speakers] │
|
||||||
|
│ ┃ [Summary] [Research] │
|
||||||
|
└──────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
- **时间线槽**:开始/结束时间、时长
|
||||||
|
- **组织者**:名称 + 人员链接
|
||||||
|
- **元信息**:地点、参会人数、RSVP 状态
|
||||||
|
- **工作流药丸**:5 个阶段按钮
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎙️ 录音源
|
||||||
|
|
||||||
|
### MacWhisper(macOS 专用)
|
||||||
|
|
||||||
|
| 特点 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| 价格 | 付费应用(~$25) |
|
||||||
|
| 质量 | 高质量本地转写 |
|
||||||
|
| 集成 | 通过时间戳匹配自动关联 |
|
||||||
|
|
||||||
|
### Recording API(跨平台)
|
||||||
|
|
||||||
|
| 特点 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| 方式 | REST API 录音 |
|
||||||
|
| 平台 | macOS + Windows |
|
||||||
|
| 功能 | 实时计时器 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🤖 LLM 集成
|
||||||
|
|
||||||
|
### 支持能力
|
||||||
|
|
||||||
|
| 能力 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| **说话人识别** | 分析转写文本,识别不同说话人 |
|
||||||
|
| **会议纪要** | 生成摘要、关键决策、行动项 |
|
||||||
|
| **会前研究** | 基于知识库生成会议背景研究 |
|
||||||
|
|
||||||
|
### 模型选择
|
||||||
|
|
||||||
|
支持为每个阶段选择不同的 Claude 模型:
|
||||||
|
- 说话人识别 → Haiku(便宜)
|
||||||
|
- 会议纪要 → Sonnet(平衡)
|
||||||
|
- 会前研究 → Opus(深度)
|
||||||
|
|
||||||
|
### 默认 CLI 工具
|
||||||
|
|
||||||
|
```bash
|
||||||
|
claude CLI(Claude Code)
|
||||||
|
```
|
||||||
|
|
||||||
|
也支持其他 LLM CLI 工具。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 👥 人员匹配
|
||||||
|
|
||||||
|
```
|
||||||
|
日历参会人 → 匹配 People/ 文件夹中的笔记
|
||||||
|
↓
|
||||||
|
显示为 [[wiki links]]
|
||||||
|
↓
|
||||||
|
未匹配的组织者可自动创建笔记
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📝 模板系统
|
||||||
|
|
||||||
|
### 模板变量
|
||||||
|
|
||||||
|
| 变量 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| `{{title}}` | 会议标题 |
|
||||||
|
| `{{date}}` | 会议日期 |
|
||||||
|
| `{{time}}` | 会议时间 |
|
||||||
|
| `{{attendees}}` | 参会人列表 |
|
||||||
|
| `{{location}}` | 会议地点 |
|
||||||
|
|
||||||
|
### 预留 Frontmatter
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
meeting_date: 2026-04-25
|
||||||
|
meeting_time: 09:00
|
||||||
|
attendees:
|
||||||
|
- [[张三]]
|
||||||
|
- [[李四]]
|
||||||
|
location: Zoom
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔧 安装步骤
|
||||||
|
|
||||||
|
### 方式一:BRAT 安装(推荐)
|
||||||
|
|
||||||
|
```
|
||||||
|
1. Obsidian → 设置 → 社区插件 → 搜索 BRAT → 安装启用
|
||||||
|
2. 设置 → BRAT → Add Beta plugin
|
||||||
|
3. 输入 dloomis/whisper-cal → Add Plugin
|
||||||
|
4. 设置 → 社区插件 → 启用 WhisperCal
|
||||||
|
```
|
||||||
|
|
||||||
|
### 方式二:手动安装
|
||||||
|
|
||||||
|
```
|
||||||
|
1. 从 GitHub Releases 下载 main.js / manifest.json / styles.css
|
||||||
|
2. 创建 .obsidian/plugins/whisper-cal/ 目录
|
||||||
|
3. 复制三个文件到该目录
|
||||||
|
4. Obsidian → 设置 → 社区插件 → 启用
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚙️ 日历设置
|
||||||
|
|
||||||
|
### Google Calendar
|
||||||
|
|
||||||
|
```
|
||||||
|
1. Google Cloud Console → 创建项目
|
||||||
|
2. 启用 Google Calendar API + People API
|
||||||
|
3. 创建 OAuth 客户端 ID(Desktop app)
|
||||||
|
4. WhisperCal 设置 → 粘贴 Client ID + Secret
|
||||||
|
5. 点击 Sign in → 浏览器授权
|
||||||
|
```
|
||||||
|
|
||||||
|
### Microsoft 365
|
||||||
|
|
||||||
|
```
|
||||||
|
1. Azure Portal → App registrations → New registration
|
||||||
|
2. Redirect URI: http://localhost
|
||||||
|
3. 添加权限: Calendars.Read + offline_access
|
||||||
|
4. WhisperCal 设置 → 粘贴 Client ID
|
||||||
|
5. 点击 Sign in → 浏览器授权
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🆚 与普通 Whisper 插件对比
|
||||||
|
|
||||||
|
| 维度 | Whisper 插件 | WhisperCal |
|
||||||
|
|------|-------------|-----------|
|
||||||
|
| 录音转文字 | ✅ | ✅ |
|
||||||
|
| LLM 后处理 | ✅ | ✅ |
|
||||||
|
| 日历集成 | ❌ | ✅ |
|
||||||
|
| 一键创建笔记 | ❌ | ✅ |
|
||||||
|
| 说话人识别 | ❌ | ✅ |
|
||||||
|
| 会前研究 | ❌ | ✅ |
|
||||||
|
| 会议摘要 | ❌ | ✅ |
|
||||||
|
| 人员匹配 | ❌ | ✅ |
|
||||||
|
| 移动端 | ✅ | ❌ |
|
||||||
|
| 安装难度 | 低(社区市场) | 中(BRAT) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 典型工作流
|
||||||
|
|
||||||
|
```
|
||||||
|
早上:
|
||||||
|
1. 打开 Obsidian → 侧边栏看今日日历
|
||||||
|
2. 点击"Research" → LLM 生成会前研究
|
||||||
|
3. 点击"Note" → 创建会议笔记
|
||||||
|
|
||||||
|
会中:
|
||||||
|
4. 点击"Record" → 开始录音
|
||||||
|
5. 会议结束 → 自动转写
|
||||||
|
|
||||||
|
会后:
|
||||||
|
6. 点击"Speakers" → LLM 识别说话人 → 审核确认
|
||||||
|
7. 点击"Summary" → 生成会议纪要和行动项
|
||||||
|
8. 完成!一键完整的会议记录
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 评价
|
||||||
|
|
||||||
|
### 优点
|
||||||
|
- ✅ **全流程覆盖**:从日历到会议记录一站式解决
|
||||||
|
- ✅ **五阶段流水线**:结构化的会议管理流程
|
||||||
|
- ✅ **LLM 深度集成**:说话人识别、摘要、研究
|
||||||
|
- ✅ **日历侧边栏**:在 Obsidian 内直接看日历
|
||||||
|
- ✅ **人员匹配**:自动关联参会人笔记
|
||||||
|
- ✅ **模板系统**:灵活的笔记格式自定义
|
||||||
|
|
||||||
|
### 注意点
|
||||||
|
- ⚠️ **仅桌面**:不支持移动端
|
||||||
|
- ⚠️ **未收录社区市场**:需通过 BRAT 安装
|
||||||
|
- ⚠️ **需要 LLM CLI**:说话人识别/摘要需要 Claude CLI
|
||||||
|
- ⚠️ **日历配置复杂**:需要 Azure AD 或 Google Cloud 设置
|
||||||
|
- ⚠️ **MacWhisper 仅 macOS**:Windows 用户需要 Recording API
|
||||||
|
|
||||||
|
### 适用场景
|
||||||
|
- 日常会议频繁的知识工作者
|
||||||
|
- 希望统一管理会议记录和行动项
|
||||||
|
- 已有 Obsidian + 日历使用习惯
|
||||||
|
- 需要 AI 辅助的会议整理
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 资源
|
||||||
|
|
||||||
|
| 资源 | 链接 |
|
||||||
|
|------|------|
|
||||||
|
| **GitHub** | https://github.com/dloomis/WhisperCal |
|
||||||
|
| **BRAT 安装** | github.com/TfTHacker/obsidian42-brat |
|
||||||
|
| **MacWhisper** | https://goodsnooze.gumroad.com/l/macwhisper |
|
||||||
|
| **Claude Code** | https://docs.anthropic.com/en/docs/claude-code/overview |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*整理:知识库管理员 | 归档:2026-04-25*
|
||||||
344
wiki/sources/obsidian-headless-SKILL
Executable file
344
wiki/sources/obsidian-headless-SKILL
Executable file
@@ -0,0 +1,344 @@
|
|||||||
|
---
|
||||||
|
name: obsidian-headless
|
||||||
|
description: 在无显示器/无 GUI 环境下通过自然语言指令管理 Obsidian 笔记仓库。支持创建笔记、删除笔记(带确认)、搜索标题、搜索内容、模糊搜索、创建日记等功能。当用户需要在无头服务器、SSH 环境、或没有安装 Obsidian 桌面应用的情况下管理 Obsidian 笔记时使用此技能。触发词包括"obsidian", "笔记", "搜索笔记", "创建笔记", "删除笔记", "今天日记", "无头 obsidian", "命令行 obsidian"。
|
||||||
|
slash_commands:
|
||||||
|
- name: obsidian-headless
|
||||||
|
description: 主命令 - 无头 Obsidian 笔记管理
|
||||||
|
usage: /obsidian-headless [子命令] [参数]
|
||||||
|
subcommands:
|
||||||
|
- create: 创建新笔记 (/obsidian-headless create 文件名 内容)
|
||||||
|
- delete: 删除笔记 (/obsidian-headless delete 文件名)
|
||||||
|
- search: 搜索笔记 (/obsidian-headless search 关键词)
|
||||||
|
- daily: 今天日记 (/obsidian-headless daily 内容)
|
||||||
|
- list: 列出所有笔记 (/obsidian-headless list)
|
||||||
|
- save: 保存内容 (/obsidian-headless save 文件名 内容)
|
||||||
|
- name: obs-create
|
||||||
|
description: 创建新笔记
|
||||||
|
usage: /obs-create [文件名] [内容]
|
||||||
|
- name: obs-delete
|
||||||
|
description: 删除笔记
|
||||||
|
usage: /obs-delete [文件名]
|
||||||
|
- name: obs-search
|
||||||
|
description: 搜索笔记内容
|
||||||
|
usage: /obs-search [关键词]
|
||||||
|
- name: obs-daily
|
||||||
|
description: 创建/查看今天日记
|
||||||
|
usage: /obs-daily [可选内容]
|
||||||
|
- name: obs-list
|
||||||
|
description: 列出所有笔记
|
||||||
|
usage: /obs-list
|
||||||
|
- name: obs-save
|
||||||
|
description: 保存对话内容到笔记
|
||||||
|
usage: /obs-save [文件名] [内容]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Obsidian Headless - 无头 Obsidian 管理工具
|
||||||
|
|
||||||
|
在无显示器/无 GUI 环境下通过自然语言指令管理 Obsidian 笔记仓库。
|
||||||
|
|
||||||
|
## 适用场景
|
||||||
|
|
||||||
|
- 在 SSH 远程服务器上管理 Obsidian 笔记
|
||||||
|
- 无显示器环境(如 VPS、Docker 容器)
|
||||||
|
- 不想启动 Obsidian GUI 桌面应用时
|
||||||
|
- 需要通过脚本自动化管理笔记时
|
||||||
|
|
||||||
|
## 文档
|
||||||
|
|
||||||
|
- **USAGE.md** - 完整使用手册(包含快速参考、详细说明、示例、故障排除)
|
||||||
|
|
||||||
|
## 目录结构
|
||||||
|
|
||||||
|
```
|
||||||
|
obsidian-headless/
|
||||||
|
├── obs # 便捷入口脚本
|
||||||
|
├── install.sh # 安装脚本
|
||||||
|
├── SKILL.md # 本文件(技能说明)
|
||||||
|
├── USAGE.md # 完整使用手册
|
||||||
|
├── bin/
|
||||||
|
│ └── obsidian-headless.sh # 主程序
|
||||||
|
├── examples/
|
||||||
|
│ └── examples.sh # 使用示例脚本
|
||||||
|
└── tests/
|
||||||
|
└── test.sh # 测试脚本
|
||||||
|
```
|
||||||
|
|
||||||
|
## 配置文件
|
||||||
|
|
||||||
|
首次使用时会提示输入仓库路径,配置保存在:
|
||||||
|
```
|
||||||
|
~/.config/obsidian-headless/vault-path
|
||||||
|
```
|
||||||
|
|
||||||
|
## 快速开始
|
||||||
|
|
||||||
|
### 1. 安装
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd ~/.openclaw/skills/obsidian-headless
|
||||||
|
./install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
或手动使用:
|
||||||
|
```bash
|
||||||
|
~/.openclaw/skills/obsidian-headless/obs "obs指令"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 指令格式
|
||||||
|
|
||||||
|
所有指令都支持 `obs` 前缀(**大小写不敏感**),`obs` 和指令之间可以有**空格、-、_、: 等连接符**:
|
||||||
|
|
||||||
|
| 格式 | 示例 |
|
||||||
|
|------|------|
|
||||||
|
| `obs指令` | `obs创建笔记 新笔记` |
|
||||||
|
| `obs 指令` | `obs 创建笔记 新笔记` |
|
||||||
|
| `obs-指令` | `obs-创建笔记 新笔记` |
|
||||||
|
| `OBS指令` | `OBS创建笔记 新笔记` |
|
||||||
|
|
||||||
|
**推荐使用 `obs指令` 格式**,避免误触。
|
||||||
|
|
||||||
|
### 2. 配置仓库路径
|
||||||
|
|
||||||
|
**首次使用:**
|
||||||
|
运行任意命令时会提示输入仓库路径,路径会保存到配置文件中供后续使用。
|
||||||
|
|
||||||
|
```
|
||||||
|
首次使用 Obsidian Headless
|
||||||
|
==========================
|
||||||
|
|
||||||
|
请输入 Obsidian 仓库路径: /home/user/my-vault
|
||||||
|
✓ 已保存配置
|
||||||
|
```
|
||||||
|
|
||||||
|
**手动配置(可选):**
|
||||||
|
|
||||||
|
方式 1 - 环境变量(优先级最高):
|
||||||
|
```bash
|
||||||
|
export OBSIDIAN_VAULT=/path/to/your/vault
|
||||||
|
```
|
||||||
|
|
||||||
|
方式 2 - 删除配置文件重新输入:
|
||||||
|
```bash
|
||||||
|
rm ~/.config/obsidian-headless/vault-path
|
||||||
|
# 下次运行时会重新提示输入
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 使用
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 使用安装后的快捷命令
|
||||||
|
obs "创建笔记 新想法"
|
||||||
|
|
||||||
|
# 或直接调用
|
||||||
|
~/.openclaw/skills/obsidian-headless/obs "搜索内容 home assistant"
|
||||||
|
```
|
||||||
|
|
||||||
|
## 支持的指令
|
||||||
|
|
||||||
|
### 创建笔记
|
||||||
|
```
|
||||||
|
obs创建笔记 [文件名] [可选内容]
|
||||||
|
```
|
||||||
|
|
||||||
|
**说明:**
|
||||||
|
- `文件名` 支持路径,如 `文件夹/笔记名` 或 `笔记名`
|
||||||
|
- 如果**只输入文件名**(无内容),创建**空笔记文件**
|
||||||
|
- 如果**输入了内容**,内容**直接写入文件**,不会自动添加标题
|
||||||
|
- 笔记的标题需要用户在 `内容` 中自行定义(如 `# 我的标题`)
|
||||||
|
- **文件名和内容之间可以用空格或换行符分隔**
|
||||||
|
|
||||||
|
**示例:**
|
||||||
|
- `obs创建笔记 待办清单` → 创建空文件 `待办清单.md`
|
||||||
|
- `obs创建笔记 项目想法 这个项目的核心目标是...` → 文件内容为 "这个项目的核心目标是..."
|
||||||
|
- `obs创建笔记 AI/总结 # AI 总结\n\n今天学习了...` → 文件内容包含自定义标题
|
||||||
|
|
||||||
|
**多行内容示例:**
|
||||||
|
```
|
||||||
|
obs创建笔记 笔记名
|
||||||
|
# 标题
|
||||||
|
内容第一行
|
||||||
|
内容第二行
|
||||||
|
```
|
||||||
|
|
||||||
|
### 删除笔记(带确认)
|
||||||
|
```
|
||||||
|
obs删除笔记 [文件名]
|
||||||
|
```
|
||||||
|
|
||||||
|
**删除确认流程:**
|
||||||
|
|
||||||
|
**单个匹配时:**
|
||||||
|
```
|
||||||
|
即将删除笔记:
|
||||||
|
标题: xxx
|
||||||
|
路径: /path/to/xxx.md
|
||||||
|
|
||||||
|
内容预览 (共 15 行):
|
||||||
|
# xxx
|
||||||
|
...
|
||||||
|
|
||||||
|
请回复确认:
|
||||||
|
[Y] 确认删除
|
||||||
|
[N] 取消
|
||||||
|
```
|
||||||
|
|
||||||
|
**多个匹配时:**
|
||||||
|
```
|
||||||
|
找到多个匹配的笔记:
|
||||||
|
|
||||||
|
[1] 笔记A
|
||||||
|
位置: folder1/
|
||||||
|
大小: 20 行
|
||||||
|
|
||||||
|
[2] 笔记B
|
||||||
|
位置: folder2/
|
||||||
|
大小: 35 行
|
||||||
|
|
||||||
|
请回复要删除的笔记编号 (或 0 取消)
|
||||||
|
```
|
||||||
|
|
||||||
|
### 查看笔记内容
|
||||||
|
```
|
||||||
|
obs查看笔记 [文件名]
|
||||||
|
```
|
||||||
|
|
||||||
|
### 搜索笔记标题
|
||||||
|
```
|
||||||
|
obs搜索标题 [关键词]
|
||||||
|
```
|
||||||
|
|
||||||
|
### 搜索笔记内容
|
||||||
|
```
|
||||||
|
obs搜索内容 [关键词]
|
||||||
|
```
|
||||||
|
|
||||||
|
### 模糊搜索(标题+内容)
|
||||||
|
```
|
||||||
|
obs模糊搜索 [关键词]
|
||||||
|
```
|
||||||
|
|
||||||
|
### 创建/打开今天日记
|
||||||
|
```
|
||||||
|
obs今天日记 [可选内容]
|
||||||
|
```
|
||||||
|
|
||||||
|
自动在 `日记/` 文件夹下创建 `YYYY-MM-DD.md`
|
||||||
|
|
||||||
|
### 修改库路径
|
||||||
|
```
|
||||||
|
obs修改库路径
|
||||||
|
obs修改库目录
|
||||||
|
obs更改路径
|
||||||
|
obs切换仓库
|
||||||
|
```
|
||||||
|
|
||||||
|
交互式修改仓库路径,保存到配置文件。
|
||||||
|
|
||||||
|
**示例:**
|
||||||
|
- `obs修改库路径` → 提示输入新路径
|
||||||
|
- `obs-修改库目录` → 同上
|
||||||
|
|
||||||
|
### 列出所有笔记
|
||||||
|
```
|
||||||
|
obs列出所有
|
||||||
|
```
|
||||||
|
|
||||||
|
### 列出所有文件夹
|
||||||
|
```
|
||||||
|
obs列出文件夹
|
||||||
|
```
|
||||||
|
|
||||||
|
### 显示最近修改的笔记
|
||||||
|
```
|
||||||
|
obs最近笔记
|
||||||
|
```
|
||||||
|
|
||||||
|
## 前置要求
|
||||||
|
|
||||||
|
1. **Obsidian 仓库:** 首次使用时会提示输入仓库路径
|
||||||
|
|
||||||
|
2. **依赖:**
|
||||||
|
- `bash` (必须)
|
||||||
|
- `find` (必须)
|
||||||
|
- `grep` (必须)
|
||||||
|
- `ripgrep (rg)` (推荐,搜索更快)
|
||||||
|
|
||||||
|
3. **安装 ripgrep:**
|
||||||
|
```bash
|
||||||
|
# Ubuntu/Debian
|
||||||
|
sudo apt install ripgrep
|
||||||
|
|
||||||
|
# macOS
|
||||||
|
brew install ripgrep
|
||||||
|
```
|
||||||
|
|
||||||
|
## 测试
|
||||||
|
|
||||||
|
运行测试脚本验证功能:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd ~/.openclaw/skills/obsidian-headless
|
||||||
|
./tests/test.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## 查看示例
|
||||||
|
|
||||||
|
运行示例脚本查看各种用法:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd ~/.openclaw/skills/obsidian-headless
|
||||||
|
./examples/examples.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## 与 obsidian-cli 的对比
|
||||||
|
|
||||||
|
| 功能 | obsidian-cli | obsidian-headless |
|
||||||
|
|------|-------------|-------------------|
|
||||||
|
| 依赖 Obsidian GUI | 是(需要索引) | 否 |
|
||||||
|
| search-content | 依赖索引,常失败 | 使用 ripgrep,可靠 |
|
||||||
|
| 删除确认 | 无 | 有(显示预览) |
|
||||||
|
| 多匹配处理 | 无 | 列出序号选择 |
|
||||||
|
| 自然语言支持 | 有限 | 完整支持 |
|
||||||
|
| 无头环境 | 不支持 | 专门设计 |
|
||||||
|
|
||||||
|
## 故障排除
|
||||||
|
|
||||||
|
### 提示"未找到 Obsidian 仓库路径"
|
||||||
|
1. 首次使用时会自动提示输入路径
|
||||||
|
2. 或手动设置环境变量:
|
||||||
|
```bash
|
||||||
|
export OBSIDIAN_VAULT=/path/to/your/vault
|
||||||
|
```
|
||||||
|
3. 或删除配置重新输入:
|
||||||
|
```bash
|
||||||
|
rm ~/.config/obsidian-headless/vault-path
|
||||||
|
```
|
||||||
|
|
||||||
|
### 修改已保存的仓库路径
|
||||||
|
```bash
|
||||||
|
# 方法1: 使用环境变量覆盖
|
||||||
|
export OBSIDIAN_VAULT=/new/path
|
||||||
|
|
||||||
|
# 方法2: 删除配置,下次重新输入
|
||||||
|
rm ~/.config/obsidian-headless/vault-path
|
||||||
|
```
|
||||||
|
|
||||||
|
### 搜索速度慢
|
||||||
|
安装 ripgrep:
|
||||||
|
```bash
|
||||||
|
sudo apt install ripgrep # Ubuntu/Debian
|
||||||
|
brew install ripgrep # macOS
|
||||||
|
```
|
||||||
|
|
||||||
|
### 删除时找不到笔记
|
||||||
|
使用更精确的标题,或使用"模糊搜索"先找到准确标题。
|
||||||
|
|
||||||
|
## 脚本说明
|
||||||
|
|
||||||
|
| 脚本 | 用途 |
|
||||||
|
|------|------|
|
||||||
|
| `obs` | 便捷入口,推荐日常使用 |
|
||||||
|
| `bin/obsidian-headless.sh` | 主程序 |
|
||||||
|
| `install.sh` | 安装脚本,设置别名和快捷方式 |
|
||||||
|
| `tests/test.sh` | 功能测试 |
|
||||||
|
| `examples/examples.sh` | 使用示例 |
|
||||||
267
wiki/sources/无人机视频测流_IMX219_vs_OG05B10对比
Executable file
267
wiki/sources/无人机视频测流_IMX219_vs_OG05B10对比
Executable file
@@ -0,0 +1,267 @@
|
|||||||
|
# 无人机视频测流:IMX219 vs OG05B10 对比分析
|
||||||
|
|
||||||
|
> 面向 LSPIV/PTV 水流测速场景的传感器选型
|
||||||
|
>
|
||||||
|
> 归档:2026-04-24
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 场景需求分析
|
||||||
|
|
||||||
|
### 无人机视频测流原理
|
||||||
|
|
||||||
|
```
|
||||||
|
无人机拍摄水面视频 → 提取水面特征点 → 追踪特征位移 → 计算流速
|
||||||
|
↓
|
||||||
|
公式:v = d / t(像素位移 × 标定系数 / 时间)
|
||||||
|
```
|
||||||
|
|
||||||
|
### 核心需求
|
||||||
|
|
||||||
|
| 需求 | 重要性 | 说明 |
|
||||||
|
|------|--------|------|
|
||||||
|
| **无运动畸变** | ⭐⭐⭐⭐⭐ | 无人机抖动 + 水流运动,双重运动源 |
|
||||||
|
| **高帧率** | ⭐⭐⭐⭐ | 提高时间分辨率,捕捉快速水流 |
|
||||||
|
| **无频闪** | ⭐⭐⭐ | 水面反光 + 天空强光,高动态场景 |
|
||||||
|
| **全局同步** | ⭐⭐⭐ | 多相机立体标定时需同步曝光 |
|
||||||
|
| **低光性能** | ⭐⭐ | 阴天/早晚作业时需要 |
|
||||||
|
| **分辨率** | ⭐⭐ | 决定测量区域覆盖范围 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 详细对比
|
||||||
|
|
||||||
|
### 1. 运动畸变(最关键指标)
|
||||||
|
|
||||||
|
#### 滚动快门(IMX219)的问题
|
||||||
|
|
||||||
|
```
|
||||||
|
无人机振动 + 水流运动 = 双重畸变源
|
||||||
|
|
||||||
|
┌─────────────────────────────────────┐
|
||||||
|
│ 水面波纹被"扭曲"成波浪形 │
|
||||||
|
│ 无人机移动方向上的物体被拉伸/压缩 │
|
||||||
|
│ 特征点位置误差可达 5-20 像素 │
|
||||||
|
└─────────────────────────────────────┘
|
||||||
|
|
||||||
|
速度测量误差 = 畸变导致的像素误差 × 标定系数
|
||||||
|
= 10 像素 × 0.05 m/像素
|
||||||
|
= 0.5 m/s(严重偏差!)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 全局快门(OG05B10)的优势
|
||||||
|
|
||||||
|
```
|
||||||
|
全像素同时曝光 → 无畸变 → 特征点位置准确
|
||||||
|
|
||||||
|
┌─────────────────────────────────────┐
|
||||||
|
│ 水面波纹保持真实形状 │
|
||||||
|
│ 特征点位置误差 < 1 像素 │
|
||||||
|
│ 速度测量误差 < 0.05 m/s │
|
||||||
|
└─────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
| 指标 | IMX219 | OG05B10 |
|
||||||
|
|------|--------|---------|
|
||||||
|
| 运动畸变 | ❌ 严重(5-20 像素) | ✅ 无(<1 像素) |
|
||||||
|
| 速度测量误差 | 0.2-1.0 m/s | **<0.05 m/s** |
|
||||||
|
| 适用流速范围 | 仅适合 <1 m/s | 适合 **0.1-5 m/s** |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2. 时间分辨率(帧率)
|
||||||
|
|
||||||
|
#### LSPIV 对帧率的要求
|
||||||
|
|
||||||
|
```
|
||||||
|
采样定理:帧率 > 2 × 最大流速 / 特征间距
|
||||||
|
|
||||||
|
示例:
|
||||||
|
- 流速 3 m/s
|
||||||
|
- 特征间距 0.1 m
|
||||||
|
- 最低帧率 > 60 FPS
|
||||||
|
```
|
||||||
|
|
||||||
|
| 分辨率 | IMX219 | OG05B10 | 测流适用性 |
|
||||||
|
|--------|--------|---------|-----------|
|
||||||
|
| 全分辨率 | ~15 FPS | **53 FPS** | OG05B10 可用 |
|
||||||
|
| 1080P | **30 FPS** | **90 FPS** | OG05B10 覆盖更快流速 |
|
||||||
|
| 720P | 60 FPS | - | IMX219 勉强 |
|
||||||
|
| VGA | 90 FPS | - | 分辨率太低 |
|
||||||
|
|
||||||
|
**结论**:OG05B10 在 1080P 下 90 FPS,是 IMX219 的 3 倍,可测量更快的流速。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3. 动态范围与频闪
|
||||||
|
|
||||||
|
#### 水面高动态场景
|
||||||
|
|
||||||
|
```
|
||||||
|
水面反射天空 → 过曝区域
|
||||||
|
水流阴影 → 欠曝区域
|
||||||
|
┌─────────────────────────────────────┐
|
||||||
|
│ 过曝区域:特征丢失 │
|
||||||
|
│ 欠曝区域:特征丢失 │
|
||||||
|
│ 有效追踪区域减少 30-50% │
|
||||||
|
└─────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
| 指标 | IMX219 | OG05B10 |
|
||||||
|
|------|--------|---------|
|
||||||
|
| HDR | ❌ 不支持 | ✅ 支持 |
|
||||||
|
| 水面过曝处理 | 差 | **好** |
|
||||||
|
| 有效追踪区域 | 60-70% | **85-95%** |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4. 多相机同步
|
||||||
|
|
||||||
|
#### 立体 PIV(双相机 3D 流速场)
|
||||||
|
|
||||||
|
```
|
||||||
|
IMX219(卷帘快门):
|
||||||
|
相机 A:曝光时间 t0 → t0+10ms(逐行)
|
||||||
|
相机 B:曝光时间 t0 → t0+10ms(逐行)
|
||||||
|
→ 两相机行间曝光不同步 → 3D 重建误差
|
||||||
|
|
||||||
|
OG05B10(全局快门):
|
||||||
|
相机 A:曝光时间 t0(全局)
|
||||||
|
相机 B:曝光时间 t0(全局)
|
||||||
|
→ 完美同步 → 3D 重建准确
|
||||||
|
```
|
||||||
|
|
||||||
|
| 场景 | IMX219 | OG05B10 |
|
||||||
|
|------|--------|---------|
|
||||||
|
| 单相机 2D 测流 | ✅ 可用 | ✅ 更好 |
|
||||||
|
| 双相机 3D 测流 | ❌ 误差大 | ✅ 完美同步 |
|
||||||
|
| 多机协同测量 | ❌ 不可行 | ✅ 可行 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 5. 低光性能
|
||||||
|
|
||||||
|
| 场景 | IMX219 | OG05B10 |
|
||||||
|
|------|--------|---------|
|
||||||
|
| 晴天正午 | ✅ | ✅ |
|
||||||
|
| 阴天 | ⚠️ 噪点多 | ✅ 噪点少 |
|
||||||
|
| 早晚/黄昏 | ❌ 特征丢失 | ⚠️ 可用 |
|
||||||
|
| 夜间(无补光) | ❌ 不可用 | ❌ 不可用 |
|
||||||
|
|
||||||
|
**OG05B10 大像素(2.2μm)进光量是 IMX219(1.12μm)的 3.9 倍**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📋 测流场景综合评分
|
||||||
|
|
||||||
|
| 维度 | 权重 | IMX219 | OG05B10 |
|
||||||
|
|------|------|--------|---------|
|
||||||
|
| 运动畸变 | 30% | 30 | **95** |
|
||||||
|
| 帧率 | 20% | 50 | **90** |
|
||||||
|
| 动态范围 | 15% | 40 | **85** |
|
||||||
|
| 多相机同步 | 10% | 20 | **95** |
|
||||||
|
| 低光性能 | 10% | 40 | **75** |
|
||||||
|
| 分辨率 | 10% | **80** | 60 |
|
||||||
|
| 成本 | 5% | **90** | 50 |
|
||||||
|
| **加权总分** | 100% | **45** | **83** |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🏆 产品宣传亮点提取
|
||||||
|
|
||||||
|
### OG05B10 在无人机测流场景的核心卖点
|
||||||
|
|
||||||
|
#### 卖点 1:全局快门 = 测量精度保障
|
||||||
|
|
||||||
|
> "无人机抖动 + 水流运动,双重运动源下,
|
||||||
|
> 卷帘快门引入 5-20 像素畸变,速度误差高达 0.5-1.0 m/s。
|
||||||
|
> OG05B10 全局快门,像素级无畸变,误差 <0.05 m/s。"
|
||||||
|
|
||||||
|
#### 卖点 2:90 FPS = 更高流速测量能力
|
||||||
|
|
||||||
|
> "1080P@90FPS 高帧率,是 IMX219 的 3 倍。
|
||||||
|
> 可测量 0.1-5 m/s 流速范围,覆盖 95% 以上天然河道。"
|
||||||
|
|
||||||
|
#### 卖点 3:HDR + 大像素 = 复杂光照适应性
|
||||||
|
|
||||||
|
> "水面强反光 + 阴影区域,HDR 支持确保特征点不丢失。
|
||||||
|
> 2.2μm 大像素,阴天/早晚仍可正常工作。"
|
||||||
|
|
||||||
|
#### 卖点 4:全局同步 = 支持 3D 流速场
|
||||||
|
|
||||||
|
> "多相机完美同步曝光,支持立体 PIV 测量。
|
||||||
|
> 从 2D 表面流速升级到 3D 流速场分布。"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### IMX219 的适用场景(对比参考)
|
||||||
|
|
||||||
|
| 场景 | 适用性 | 说明 |
|
||||||
|
|------|--------|------|
|
||||||
|
| 平静水面(<0.5 m/s) | ✅ | 流速慢,畸变影响小 |
|
||||||
|
| 教学/演示用途 | ✅ | 成本低,够用 |
|
||||||
|
| 晴天正午 | ✅ | 光照充足 |
|
||||||
|
| 急流/湍流(>1 m/s) | ❌ | 畸变导致误差大 |
|
||||||
|
| 专业水文测量 | ❌ | 精度不达标 |
|
||||||
|
| 3D 流速场 | ❌ | 无法同步 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 测流精度对比表
|
||||||
|
|
||||||
|
| 流速范围 | IMX219 误差 | OG05B10 误差 | 推荐 |
|
||||||
|
|---------|-----------|-------------|------|
|
||||||
|
| 0.1-0.5 m/s | ±0.1 m/s | ±0.02 m/s | OG05B10 |
|
||||||
|
| 0.5-1.0 m/s | ±0.2 m/s | ±0.03 m/s | OG05B10 |
|
||||||
|
| 1.0-2.0 m/s | ±0.5 m/s | ±0.05 m/s | **仅 OG05B10** |
|
||||||
|
| 2.0-5.0 m/s | ❌ 不可用 | ±0.08 m/s | **仅 OG05B10** |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 针对性宣传文案
|
||||||
|
|
||||||
|
### 方案 A:技术向(面向水文工程师)
|
||||||
|
|
||||||
|
```
|
||||||
|
🎯 无人机视频测流,精度提升 10 倍!
|
||||||
|
|
||||||
|
传统卷帘快门相机(如 IMX219)在无人机抖动+水流运动
|
||||||
|
双重作用下,引入 5-20 像素畸变,速度误差达 0.5-1.0 m/s。
|
||||||
|
|
||||||
|
OG05B10 全局快门传感器:
|
||||||
|
✅ 像素级无畸变,误差 <0.05 m/s
|
||||||
|
✅ 1080P@90FPS,覆盖 0.1-5 m/s 流速
|
||||||
|
✅ HDR 支持,水面反光不丢特征
|
||||||
|
✅ 多相机同步,支持 3D 流速场
|
||||||
|
|
||||||
|
从"能用"到"精准",只差一个全局快门。
|
||||||
|
```
|
||||||
|
|
||||||
|
### 方案 B:通俗向(面向非技术用户)
|
||||||
|
|
||||||
|
```
|
||||||
|
🌊 测水流,为什么要用全局快门相机?
|
||||||
|
|
||||||
|
普通相机拍流动的水 → 画面扭曲 → 测不准
|
||||||
|
全局快门相机拍流动的水 → 画面真实 → 测得准
|
||||||
|
|
||||||
|
OG05B10 全局快门相机:
|
||||||
|
📸 拍得快(90 帧/秒)
|
||||||
|
📐 拍得准(无扭曲)
|
||||||
|
🌅 拍得清(HDR 防反光)
|
||||||
|
|
||||||
|
无人机测流首选,精度有保障!
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 资源
|
||||||
|
|
||||||
|
| 资源 | 链接 |
|
||||||
|
|------|------|
|
||||||
|
| LSPIV 技术综述 | https://www.mdpi.com/2073-4441/12/5/1356 |
|
||||||
|
| UAV-PIV 研究 | https://www.sciencedirect.com/science/article/pii/S0309170820304716 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*整理:知识库管理员 | 归档:2026-04-24*
|
||||||
517
wiki/sources/语义引领的下一代数字化建设体系
Executable file
517
wiki/sources/语义引领的下一代数字化建设体系
Executable file
@@ -0,0 +1,517 @@
|
|||||||
|
---
|
||||||
|
title: 语义引领的下一代数字化建设体系
|
||||||
|
date: 2026-04-12
|
||||||
|
tags: [AI, 数字化转型, 知识图谱, 本体论, SemanticLayer]
|
||||||
|
source: 演讲PPT
|
||||||
|
aliases: [Of AI By AI For AI]
|
||||||
|
---
|
||||||
|
|
||||||
|
# 语义引领的下一代数字化建设体系
|
||||||
|
|
||||||
|
> **副标题**: Of AI, By AI, For AI
|
||||||
|
|
||||||
|
——Of AI, By AI, For AI
|
||||||
|
|
||||||
|
|
||||||
|
——Of AI, By AI, For AI
|
||||||
|
|
||||||
|
概述
|
||||||
|
|
||||||
|
Of AI
|
||||||
|
|
||||||
|
本体论和语义层
|
||||||
|
|
||||||
|
知识图谱和GraphRAG
|
||||||
|
语义层的数据源
|
||||||
|
|
||||||
|
语义层的更新
|
||||||
|
|
||||||
|
By AI
|
||||||
|
|
||||||
|
业务分析与需求梳理
|
||||||
|
|
||||||
|
系统设计
|
||||||
|
|
||||||
|
开发与测试
|
||||||
|
|
||||||
|
监控与运维
|
||||||
|
|
||||||
|
For AI
|
||||||
|
|
||||||
|
AI Native
|
||||||
|
|
||||||
|
存量治理
|
||||||
|
|
||||||
|
未来展望
|
||||||
|
|
||||||
|
应用的未来形态
|
||||||
|
|
||||||
|
组织的未来形态
|
||||||
|
|
||||||
|
参考资料
|
||||||
|
|
||||||
|
概述
|
||||||
|
|
||||||
|
在本文中,我们构想了一套基于人工智能的下一代数字化建设体系。根据信息化、数字化的性质和人工
|
||||||
|
|
||||||
|
智能的特点,提出,未来的数字化建设应当是语义引领的。语义是统合系统建设和运营全过程的关键,
|
||||||
|
|
||||||
|
语义层(本体)则是实现这种统合的工具。
|
||||||
|
|
||||||
|
我们认为,未来的 IT 系统建设,应当是“AI 所有(Of AI)、AI 所治(By AI)、AI 所享(For AI)”的:
|
||||||
|
|
||||||
|
Of AI:即 AI 已经超越了辅助工具的角色;透过语义层,它开始“拥有”整个系统。本体论贯穿IT/数
|
||||||
|
|
||||||
|
字化活动的全过程;基于本体论构建的语义层承载着对系统的认知,是一切活动的基础。
|
||||||
|
|
||||||
|
By AI:即 AI 作为系统构建的工具和方法。从业务分析到需求梳理、从架构计到编码实现、从系统
|
||||||
|
|
||||||
|
测试到运维监控,AI 在所有的环节都起到辅助甚至替代人的作用。
|
||||||
|
For AI:即 AI Ready。AI 时代的应用需天然是 AI Ready 的,任何一个拥有其本体知识的智能体都
|
||||||
|
|
||||||
|
有能力与其进行交互,比如查询数据或执行业务操作。
|
||||||
|
|
||||||
|
下面详述这三者。
|
||||||
|
|
||||||
|
Of AI
|
||||||
|
|
||||||
|
Of AI 是本文的核心。它的职责是对系统进行语义建模;它构成系统的“认知架构”(或曰“认知基础设
|
||||||
|
|
||||||
|
施”)。
|
||||||
|
|
||||||
|
本体论和语义层
|
||||||
|
|
||||||
|
本体论(Ontology)不是新名词,上个世纪90年代就在数据科学领域被提出,后来又成为知识图谱的理
|
||||||
|
|
||||||
|
论基础,最近则是借着帕兰提尔公司(Palantir)的东风重新回到人们的视野。
|
||||||
|
|
||||||
|
1993年,Tom Gruber提出:本体是概念模型的显式规范。还有一些类似的说法,比如“共享概念的形式
|
||||||
|
|
||||||
|
化和显式说明”,强调概念的共享性、形式化和明确性,从而突出机器可读性。
|
||||||
|
|
||||||
|
这里提一下共享性,即本体中的概念应当是企业全局的,不是隶属于某一个部门、某一个业务或某
|
||||||
|
|
||||||
|
一套 IT 系统的。我们的语义层建设整体上应当遵循这个观念;但就单个 IT 系统来说,它有自己的
|
||||||
|
领域模型,也有自己的——用DDD术语来说——有界上下文。
|
||||||
|
|
||||||
|
共享本体的一个重要职责是消歧,即解决不同部门或系统使用不同的词汇表达同一个概念的问题。
|
||||||
|
|
||||||
|
总体而言,本体论包含如下核心要素:
|
||||||
|
|
||||||
|
1. 概念/类:企业中的基本“事物”类型。
|
||||||
|
|
||||||
|
例如: 客户 、 产品 、 订单 、 员工 、 部门 、 业务流程 、 项目 、 资源 。
|
||||||
|
|
||||||
|
2. 属性:描述这些概念的特定信息或特征。
|
||||||
|
|
||||||
|
例如: 客户 有 客户ID 、 姓名 、 地址 。 订单 有 订单号 、 下单日期 、 金额 。
|
||||||
|
|
||||||
|
3. 关系:概念之间的互动和联系方式。这是本体论强大之处。
|
||||||
|
|
||||||
|
例如: 员工 隶属于 部门 。 客户 下达 订单 。 订单 包含 产品 。 业务流程 消耗 资源 。画成图如下:
|
||||||
|
|
||||||
|
4. 规则/公理:约束企业运作的逻辑规则。它们定义了“业务逻辑”。
|
||||||
|
|
||||||
|
例如:“一个 订单 必须至少包含一个 产品 ”。“只有 经理 级别的 员工 才能审批金额超过10万元的 合
|
||||||
|
|
||||||
|
同 ”。“ 已完成 状态的 订单 不能再被修改”。
|
||||||
|
|
||||||
|
5. 实例:根据上述本体论定义创建的具体数据。
|
||||||
|
|
||||||
|
例如:一个具体的 客户 (实例:张三,ID:C001),他下达的一个具体 订单 (实例:订单
|
||||||
|
|
||||||
|
O2025001)。
|
||||||
|
|
||||||
|
基于该理论的发展,业内出现了一批实现,如 OWL(Web Ontology Language,当时web技术正在兴
|
||||||
|
|
||||||
|
起)、语义网络、本体工程等。
|
||||||
|
|
||||||
|
根据帕兰提尔的定义,本体包含对象、关系、动作、回写、流程、场景等;它把本体看做是一个组织的
|
||||||
|
|
||||||
|
数字孪生。可见,帕兰提尔的概念有别于本体的传统定义,具有鲜明的动态特征。
|
||||||
|
|
||||||
|
帕兰提尔的本体论实现形式是其产品 Gotham 和 Foundry ;传统的本体论实现典型的如知识图谱。我们
|
||||||
|
|
||||||
|
不妨将这些实现统称为“语义层”。
|
||||||
|
|
||||||
|
本文中,“本体论”指理论,“本体”和“语义层”是同义词,指其实现。
|
||||||
|
|
||||||
|
知识图谱和GraphRAG
|
||||||
|
|
||||||
|
对大多数国内公司而言,知识图谱(Knowledge Graph)类产品是落地语义层的现实选择。下图展示了
|
||||||
|
知识图谱和 LLM 的互补性:
|
||||||
|
|
||||||
|
传统上,知识图谱的构建比较费时费力,但在 AI 时代,人们发现可以借助 LLM 来生成知识图谱,微软还
|
||||||
|
|
||||||
|
开源了 GraphRAG 。除了微软的产品,人们也常常使用图数据库如 Neo4j 来实现自己的 GraphRAG 方
|
||||||
|
|
||||||
|
案,也有轻量级框架如 LightRAG 。但无论如何,构建一个高质量的知识图谱都不是轻而易举的,除了
|
||||||
|
|
||||||
|
传统的挑战如共指消解、实体消歧等,还面临着现代本体对实时性(动态性)的要求。
|
||||||
|
|
||||||
|
使用 LLM 建成知识图谱后,就可以基于该图谱进行查询和推理了。这些查询和推理(尤其是多跳推理)
|
||||||
|
|
||||||
|
的结果,又可以送入 LLM ,以帮助实现更精确的问答、统计和根因分析。
|
||||||
|
|
||||||
|
下图展示了有知识图谱参与的问答以及利用 LLM 从数据源抽取知识图谱的过程:
|
||||||
|
|
||||||
|
由于看到了这个方向的潜力,此类产品正在纷纷出炉;如 Redis 的 FalkorDB 、清华的 Tree-KG 等。
|
||||||
|
|
||||||
|
帕兰提尔的本体产品为什么不是知识图谱?
|
||||||
|
|
||||||
|
从帕兰提尔的 Foundry 看,它并不是知识图谱类产品,为什么呢?
|
||||||
|
|
||||||
|
让我们梳理时间线如下:
|
||||||
|
|
||||||
|
2000年左右的时候,谷歌为了解决大量搜索结果排序的问题,发明了 PageRank 技术。它把
|
||||||
|
网页间的相互引用做成一张图,节点是网页(url),边是引用。被引用得越多,就认为越重
|
||||||
|
|
||||||
|
要,会优先返回给用户。
|
||||||
|
|
||||||
|
2012年,谷歌更新了它的搜索引擎,口号是:“Things, Not Strings”,并正式提出“知识图谱”
|
||||||
|
|
||||||
|
这个概念。它除了返回传统的网页列表外,还返回“知识卡片”(位于搜索结果列表的右
|
||||||
|
|
||||||
|
侧)。
|
||||||
|
|
||||||
|
2024年,谷歌又提出 GraphRAG。它的理念是:它是 RAG,但是在 R 阶段,不仅去传统知
|
||||||
|
|
||||||
|
识库里搜索,还去图数据库里搜索。(在原始论文里,图谱库和向量库是一个,是存在一起
|
||||||
|
|
||||||
|
的。)
|
||||||
|
|
||||||
|
2025年,帕兰提尔大火,带火了本体论。但是帕兰提尔的本体论只是在精神上和正统本体论
|
||||||
|
|
||||||
|
(RDF/语义网)保持一致,实现上则完全不同。帕兰提尔的本体平台更像个对象存储库(或
|
||||||
|
曰“对象中台”)。
|
||||||
|
|
||||||
|
因此我们能够回答帕兰提尔的平台为什么是这个样子的。知识图谱是 2012 年才提出的;帕兰提尔
|
||||||
|
成立于 2003 年,在 toC 界,那是万维网的青春期;在 toB 界,则是 OOP 和 J2EE 的青春期。帕
|
||||||
|
|
||||||
|
兰提尔在哲学上采用了 toC 界的概念,在实现上则受 toB 界的影响更大;这可以理解,因为 RDF
|
||||||
|
|
||||||
|
要到 2004 年才出现,而 OOP 思想和 J2EE 应用服务器已日臻成熟。帕兰提尔的产品带有那个时代
|
||||||
|
|
||||||
|
的典型印记,实际上是以自己的方式实现了 EJB 的愿景。它的“本体层”与其说是语义模型层,不如
|
||||||
|
|
||||||
|
说是对象模型层(在那个时代也不算错,那时提出“对象”就是为了承载语义,以区别于“数据”);
|
||||||
|
它对“关系”的定义甚至退化到数据库的一对一/一对多/多对多。它的本体层又分为“语义层”、“动作
|
||||||
|
|
||||||
|
层”、“动态层”。其中语义层实际上是对象层,而动作层是对象层本来就有的(方法),后来受事
|
||||||
|
|
||||||
|
件驱动编程的影响,加了事件;动态层则是数据分析、机器学习等技术的应用。可见,它也在不断
|
||||||
|
|
||||||
|
吸收业界最新的发展成果;LLM出现后,它搞 AIP,就是在继续吸收这种成果。
|
||||||
|
|
||||||
|
语义层的数据源
|
||||||
|
|
||||||
|
由于我们的着眼点是构建特定 IT/软件系统,不是一般的企业知识库,因此语义层的数据源——构建语义
|
||||||
|
|
||||||
|
层所依赖的材料——非常重要,它将充当后续业务和 IT 活动的单一事实来源。
|
||||||
|
|
||||||
|
对于一个待开发的系统,语义层的数据源应该是业务分析报告和产品需求文档(PRD)。概念模型即抽
|
||||||
|
|
||||||
|
取自这些文档,或者(最好是)这些文档在撰写的时候就梳理了概念模型。我们可以将这些文档规定为
|
||||||
|
|
||||||
|
某种“课本”。课本既有形式化的结构(目录、篇章、提要、小结、词汇索引等),又是用自然语言编写
|
||||||
|
|
||||||
|
的。我们还可以根据实际情况增强它的形式化特征,从而增强机器可读性。在图谱构建这项工作中,课
|
||||||
|
|
||||||
|
本是人与大模型之间的中介、抓手。毕竟,课本是全球人类学习知识的主要形式;这也是从 Tree-KG 、
|
||||||
|
|
||||||
|
BookRAG 这类项目获得的启发。
|
||||||
|
|
||||||
|
对于存量系统,如果要为其补充语义层,有人认为应当从数据层进行逆向工程。逆向工程的思路(Data-
|
||||||
|
|
||||||
|
First / Bottom-Up)并不算错,但注意不要对“数据”的理解陷于片面。很多人把数据层理解为数据库
|
||||||
|
表,这是不对的。数据是一个抽象概念,不依赖于媒介。就现代应用系统而言,数据可以表现为库表中
|
||||||
|
|
||||||
|
的记录,也可以表现为应用层的表单、服务参数与返回值以及面向领域建模(DDD)中的VO、DO、
|
||||||
|
|
||||||
|
DTO等;此外,业务逻辑、流程、规则也是构建语义层必不可少的“数据”。
|
||||||
|
|
||||||
|
关系型数据库 RDBMS 是建立在实体-关系模型理论上的,它对“关系”的刻画能力很弱,只有简单的一对
|
||||||
|
|
||||||
|
一、一对多、多对多。这是一种纯机械的、面向技术实现的关系,并无业务语义表达。面向对象编程
|
||||||
|
|
||||||
|
(OOP,同样诞生于上世纪90年代)则在这个基础上向前迈了一步,它的 UML 图至少可以表达引用、组
|
||||||
|
|
||||||
|
合、聚合等概念;方法则不仅规定了对数据的操作,还能在一定程度上补充(暗示)语义关系。DDD则
|
||||||
|
|
||||||
|
进一步强调概念建模的重要性,但它只是“OOP done right”,并没有大的创新。
|
||||||
|
|
||||||
|
可见,从数据库表抽取语义层将面临巨大的语义损失;从应用层抽取稍好一点,但仍远远达不到知识图
|
||||||
|
|
||||||
|
谱所要求的刻画能力。单纯的逆向工程无法构建坚实的语义层,必须辅以有领域专家参与的治理工程。
|
||||||
|
|
||||||
|
语义层的更新
|
||||||
|
|
||||||
|
今天的人们不会止步于构建某个领域的静态知识图谱,而是会努力使这个图谱根据实际情况变化。
|
||||||
|
|
||||||
|
知识图谱的更新有很多种,比如从规模上可分为全量更新和增量更新,从种类上可分为概念更新、实例
|
||||||
|
|
||||||
|
更新、关系更新等;方法通常是对数据源进行定时抓取或使用 CDC 做实时同步,然后补充或重新生成图
|
||||||
|
|
||||||
|
谱。
|
||||||
|
|
||||||
|
总体而言,知识图谱的更新并不容易,要做到实时就更难了。最近出现的动静孪生的图谱产品,如
|
||||||
|
|
||||||
|
Graphiti ,或许代表了知识图谱未来的发展方向。
|
||||||
|
|
||||||
|
By AI
|
||||||
|
|
||||||
|
By AI 是指我们的系统是由 AI 帮助创建的,即 AI4SE(AI For Software Engineering)。
|
||||||
|
|
||||||
|
现有的建设企业 IT 软件系统的理论框架仍能发挥重要作用,典型的比如 4A 企业架构。传统的 4A
|
||||||
|
|
||||||
|
(TOGAF)实施过程如下图所示:
|
||||||
|
|
||||||
|
而从本体论的定义不难看出,语义层的基础是概念模型,在计算机世界中表现为数据模型(这里说对象
|
||||||
|
|
||||||
|
模型更合适);因此,业务架构与数据架构有必要在概念层面上进行融合。过去,业务架构中也会提信
|
||||||
|
|
||||||
|
息概念、业务对象,但经常被业务团队忽视;常见的问题有:不够具体、不够形式化、与数据架构断
|
||||||
|
|
||||||
|
层、侧重流程而非知识等;现在,要让形式化工作前置,让企业架构过度到语义(知识)驱动,适应 AI
|
||||||
|
|
||||||
|
时代,同时也解决业务部门和 IT 部门不使用同一种语言的老大难问题。
|
||||||
|
|
||||||
|
这样,在业务架构阶段,语义层的骨架就站出来统一了概念和规则,从而为后续的数据、应用乃至技术
|
||||||
|
|
||||||
|
架构提供一致的、机器可理解的指导。后续的各环节则继续丰富语义层的血管和肌肉,最终,这个语义
|
||||||
|
|
||||||
|
层就是这个系统的领域本体。
|
||||||
|
|
||||||
|
可见,语义层并没有改变 4A 架构的实质,只是借 AI 的东风,使其 done right。
|
||||||
|
|
||||||
|
业务分析与需求梳理
|
||||||
|
|
||||||
|
如前所述,在这个阶段就要构建语义层的骨架,即形式化的概念模型定义和关系定义,后续的业务能力
|
||||||
|
|
||||||
|
和业务流程梳理则直接使用这些概念和关系。
|
||||||
|
|
||||||
|
业务分析师和产品经理应当借助 AI 工具来从业务和需求文档中抽取概念、关系、规则和流程;如果有条
|
||||||
|
|
||||||
|
件,则应当直接编写这些形式化内容。
|
||||||
|
|
||||||
|
这里需再次强调概念模型的完备性。在这个阶段结束时,梳理出来的概念应该已经涵盖了数据架构的主
|
||||||
|
|
||||||
|
体部分(上面我们提到过业务架构和数据架构的融合)。
|
||||||
|
|
||||||
|
系统设计
|
||||||
|
|
||||||
|
基于上一个阶段产生的基础语义层,设计人员(架构师、开发经理)应当使用 AI 工具或智能体来辅助进
|
||||||
|
行系统设计;并在此过程中补充、完善语义层的概念和逻辑。
|
||||||
|
|
||||||
|
设计是实现的前一环;在本环节应当完成 90% 以上的语义层建设,否则它将难以胜任指导系统实现的重
|
||||||
|
|
||||||
|
任。
|
||||||
|
|
||||||
|
不难看出,在 AI First 的语境里,业务分析师、产品经理和架构师的角色正在进一步压合;开发工
|
||||||
|
|
||||||
|
作正在左移,而设计工作正在右移。未来的组织形态则是自然人驱动角色化智能体。
|
||||||
|
|
||||||
|
开发与测试
|
||||||
|
|
||||||
|
这是系统实现环节。AI 的一个重要应用场景就是编程。
|
||||||
|
|
||||||
|
在大模型时代,编程智能体应成为开发人员的标配,开发团队应尽快过渡到 AI First 的范式上来,并根
|
||||||
|
|
||||||
|
据自身情况选择语义层和编程智能体的连接方案。
|
||||||
|
|
||||||
|
语义层使这些智能体“做对的事情”,规范(Spec)或技能(Skill)则使之“把事情做对”。以下是一些被业
|
||||||
|
|
||||||
|
内采用规范:
|
||||||
|
|
||||||
|
OpenSpec
|
||||||
|
|
||||||
|
Spec-Kit
|
||||||
|
|
||||||
|
BMAD-METHOD
|
||||||
|
|
||||||
|
Kiro
|
||||||
|
|
||||||
|
RIPER-5
|
||||||
|
|
||||||
|
由编程智能体根据规范来进行应用开发的方法叫做“规范驱动开发(Spec Driven Development,
|
||||||
|
|
||||||
|
SDD)”。
|
||||||
|
|
||||||
|
当然,开发与测试阶段仍担负着进一步完善语义层的任务。
|
||||||
|
|
||||||
|
监控与运维
|
||||||
|
|
||||||
|
运维领域有所谓 AIOps(AI for IT Operations)。
|
||||||
|
|
||||||
|
将单个系统的语义层集成进运维体系(智能体)后,就可以做个性化的监控、预测预警、资源优化、根
|
||||||
|
|
||||||
|
因分析、恢复策略——最终达到应用自治。
|
||||||
|
|
||||||
|
For AI
|
||||||
|
|
||||||
|
For AI 讨论 AI Native 应用和传统应用如何适配 AI 时代。
|
||||||
|
|
||||||
|
AI Native
|
||||||
|
|
||||||
|
我们上面所说的 AI 原生应用本身就是 AI Ready 的。系统建设过程中产生的语义层就是它被 AI 读取、理
|
||||||
|
|
||||||
|
解的关键。同时, AI Ready 还意味着工具层面上的就绪,比如语义层查询接口已就绪,业务 API 已完成
|
||||||
|
|
||||||
|
工具化(遵循 Tool Calling 或 MCP 规范,可供智能体调用),等等。
|
||||||
|
|
||||||
|
至于是否每个应用都需要一个专属的智能体,与其它智能体组成多智能体系统,则可根据实际情况而
|
||||||
|
|
||||||
|
定。
|
||||||
|
|
||||||
|
存量治理
|
||||||
|
|
||||||
|
针对企业的存量系统对接 AI 时代的问题,我们在“语义层的数据源”一节略有提及,更多的内容请参考
|
||||||
|
《A²I:企业AI基础设施建设思路》,此处不再赘述。
|
||||||
|
|
||||||
|
未来展望
|
||||||
|
|
||||||
|
应用的未来形态
|
||||||
|
|
||||||
|
有人把软件分为三代,如下:
|
||||||
|
|
||||||
|
软件 1.0:逻辑过程即软件
|
||||||
|
|
||||||
|
软件 2.0:数据处理即软件
|
||||||
|
|
||||||
|
软件 3.0:意图执行即软件
|
||||||
|
|
||||||
|
第一代软件以各种编程语言为代表,第二代以神经网络技术为代表,第三代则以使用 LLM 的操作系统为
|
||||||
|
|
||||||
|
代表。示意图如下,下方是它们的编写形式。
|
||||||
|
|
||||||
|
至此,软件开发人员应该意识到一个问题:现有应用(第一代软件)的地位。
|
||||||
|
|
||||||
|
许多现有的应用软件,尤其是企业应用,都是在查询和操作数据。之所以需要一个应用层而不是直接操
|
||||||
|
|
||||||
|
作底层数据库,其实就是为了添加语义,这在 OOP 和 DDD 上表现得再明显不过了。即,现存应用本身
|
||||||
|
|
||||||
|
就是上个时代的、机械的、固定流程式的语义层。如果再联想到从低级编程语言到高级编程语言的跳
|
||||||
|
|
||||||
|
变,就更能明白,计算机软件发展的一个重要脉络就是不断脱离机器语言、靠近人类语言。
|
||||||
|
|
||||||
|
当人工智能和本体发展到足够严谨和精确的程度时,第一代软件就会被废除;当它继续发展到能胜任编
|
||||||
|
|
||||||
|
写第二代软件时,第三代软件调用第二代软件的执行范式也就同样迎来了黄昏。
|
||||||
|
|
||||||
|
但是在那个(遥远的)时代到来之前,既有的软件范式将继续存在,并且与 LLM /智能体长期共存,构成
|
||||||
|
|
||||||
|
一种过渡形态:
|
||||||
|
|
||||||
|
上面的架构图中,我们引入了智慧支撑层,它是这种架构形态的核心。这一层除了包含我们说的语义层
|
||||||
|
|
||||||
|
外,还包含数据中台和指标平台,后者主要解决传统指标/报表过于固定,新增时需要编程开发的问题。
|
||||||
|
|
||||||
|
首先,我们有6个业务本体(语义层),它们构成右上方6个业务系统的基础;
|
||||||
|
|
||||||
|
6个业务系统在各自本体的基础上被开发出来(如果是存量系统,则是由领域专家从业务系统抽取
|
||||||
|
出本体);
|
||||||
|
|
||||||
|
业务系统1、2、3、5都有对应的智能体(左上方),这些智能体访问智慧支撑层以获取知识和数
|
||||||
|
|
||||||
|
据,访问业务系统以调用其 API;
|
||||||
|
|
||||||
|
业务本体1和2被缝合成一个综合本体,3和4被缝合成另一个综合本体,是为了支持跨领域智能体,
|
||||||
|
|
||||||
|
即综合智能体1和综合智能体2;
|
||||||
|
智慧支撑层与业务应用间的箭头是双向的;因为业务应用要访问语义层以构建自身,而数据中台需
|
||||||
|
|
||||||
|
访问业务应用以获取数据;
|
||||||
|
|
||||||
|
业务应用开发的指导框架是 4A,设计方法是 DDD,实现方式是 SDD。智能体开发的指导思想是
|
||||||
|
|
||||||
|
12-factor agents,实现上则有很多框架可用。
|
||||||
|
|
||||||
|
组织的未来形态
|
||||||
|
|
||||||
|
与应用的未来形态对应的,是 IT 组织的未来形态。
|
||||||
|
|
||||||
|
与其它组织一样,IT 部门也在从事某项业务(领域),即 IT 系统的建设;因此它自身也需要本体。需求
|
||||||
|
|
||||||
|
文档的格式规范、开发测试的规则规范、运维体系规范等,都是 IT 组织本体的数据源。未来组织需要
|
||||||
|
的,可能只是少数本体建设与运维专家,他们同时也是 IT 领域的专家。
|
||||||
|
|
||||||
|
至于非 IT 组织,则只需要领域专家和中等成本的本体运维人员。
|
||||||
|
|
||||||
|
这种组织被称为 AI 优先(AI First)型组织。它不是一蹴而就的,通常沿着 “人类+AI 助手” → “人机混合
|
||||||
|
团队” → “人类决策、AI执行” 这样的路径发展而来。
|
||||||
|
|
||||||
|
参考资料
|
||||||
|
|
||||||
|
1. 连接AI与决策:深度解析Palantir的“基石”:本体(Ontology)
|
||||||
|
|
||||||
|
2. Palantir 的“本体工程”的核心思路、技术架构与实践示例
|
||||||
|
|
||||||
|
3. 业务语义:从Ontology构建到大模型集成的技术路径探析
|
||||||
|
|
||||||
|
4. 基于本体论与大模型的新一代智能应用开发体系
|
||||||
|
5. 驾驭AI:一位全流程工程师的软件工程智能化实践与思考
|
||||||
|
|
||||||
|
6. 为什么需要知识图谱?什么是知识图谱?——KG的前世今生
|
||||||
|
|
||||||
|
7. 语义网络,语义网,链接数据和知识图谱
|
||||||
|
|
||||||
|
8. [经典之作]大语言模型与知识图谱的融合:通往智能未来的路线图
|
||||||
|
|
||||||
|
9. 命名实体识别、实体消歧、实体统一、指代消解、关系抽取
|
||||||
|
|
||||||
|
10. AI Infra:FalkorDB,给AI用的图数据库
|
||||||
|
|
||||||
|
11. Graphiti:快速将知识图谱塞进智能体,为更智能的 AI 代理构建实时知识图谱
|
||||||
|
|
||||||
|
12. 当Agent有了“长情”的大脑:深度拆解与对比Mem0/Graphiti/Cognee三大开源Memory方案
|
||||||
|
|
||||||
|
13. 上不了生产环境的Agent,都是耍流氓式的自嗨!
|
||||||
|
|
||||||
|
14. 微软:人类与智能体协同时代的未来组织蓝图
|
||||||
|
15. 麦肯锡最新洞察:智能体组织(Agentic Organization)——AI时代全新组织范式,与你我都相关
|
||||||
|
|
||||||
|
16. Three Metaphors for Ontology
|
||||||
|
|
||||||
|
17. Taxonomy, Ontology, Knowledge Graph, and Semantics
|
||||||
|
|
||||||
|
18. Ontology Stitching: How to Align/Merge Enterprise Knowledge Graphs (A Practical Guide) and
|
||||||
|
|
||||||
|
part 2
|
||||||
|
|
||||||
|
19. Why Agentic AI Needs a Semantic Core
|
||||||
|
|
||||||
|
20. Building the brain of your business for actual AI automation
|
||||||
|
|
||||||
|
21. What is a Semantic Layer? (Components and Enterprise Applications)
|
||||||
|
|
||||||
|
22. What is a Semantic Architecture and How do I Build One?
|
||||||
|
|
||||||
|
23. Foundry ontology core concepts
|
||||||
|
|
||||||
|
24. Enterprise AI Architecture Series: How to Build a Knowledge Intelligence Architecture (Part 1)
|
||||||
|
|
||||||
|
25. Enterprise AI Architecture Series: How to Extract Knowledge from Unstructured Content (Part
|
||||||
|
|
||||||
|
2)
|
||||||
|
|
||||||
|
26. Enterprise AI Architecture Series: How to Inject Business Context into Structured Data using a
|
||||||
|
|
||||||
|
Semantic Layer (Part 3)
|
||||||
|
|
||||||
|
27. The Semantic Layer: Your AI Agent's New Best Friend (or Why They Keep Asking About
|
||||||
|
|
||||||
|
"Revenue")
|
||||||
|
|
||||||
|
28. Unifying Large Language Models and Knowledge Graphs: A Roadmap
|
||||||
|
|
||||||
|
29. Retrieval-Augmented Generation with Knowledge Graphs for Customer Service Question
|
||||||
|
|
||||||
|
Answering
|
||||||
|
|
||||||
|
30. 12 Factors Agent - How to build production grade AI-Agents
|
||||||
|
|
||||||
|
31. 12-factor-agents
|
||||||
|
|
||||||
|
32. AI Agent Architecture: Tutorial & Examples
|
||||||
|
|
||||||
|
33. Challenges and Paths Towards AI for Software Engineering
|
||||||
147
wiki/sources/豪威OG05B10传感器研究
Executable file
147
wiki/sources/豪威OG05B10传感器研究
Executable file
@@ -0,0 +1,147 @@
|
|||||||
|
# 豪威 OG05B10 图像传感器研究
|
||||||
|
|
||||||
|
> OmniVision OG05B10 全局快门车载图像传感器
|
||||||
|
>
|
||||||
|
> 归档:2026-04-24
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 基本信息
|
||||||
|
|
||||||
|
| 属性 | 值 |
|
||||||
|
|------|---|
|
||||||
|
| **型号** | OG05B10-A89A-00MA-Z |
|
||||||
|
| **厂商** | OmniVision(豪威科技) |
|
||||||
|
| **类型** | 全局快门彩色图像传感器 |
|
||||||
|
| **分辨率** | 5MP(2592×1944) |
|
||||||
|
| **传感器尺寸** | 1/2.53"(10.0mm 对角线) |
|
||||||
|
| **像素大小** | 2.2 μm |
|
||||||
|
| **快门类型** | 全局快门(Global Shutter) |
|
||||||
|
| **状态** | 量产中(Active) |
|
||||||
|
| **环保认证** | RoHS Compliant |
|
||||||
|
| **交货周期** | 8 周 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 核心特性
|
||||||
|
|
||||||
|
### 分辨率与帧率
|
||||||
|
|
||||||
|
| 分辨率 | 尺寸 | 最大帧率 | MIPI 通道 | 模式 |
|
||||||
|
|--------|------|---------|-----------|------|
|
||||||
|
| 5MP | 2592×1944 | 53 FPS | 4 | 全分辨率 |
|
||||||
|
| 1080P | 1920×1080 | 90 FPS | 4 | 裁剪模式 |
|
||||||
|
|
||||||
|
### 全局快门优势
|
||||||
|
|
||||||
|
- ✅ **无运动畸变**:适合高速运动物体检测
|
||||||
|
- ✅ **LED 闪烁抑制(LFM)**:解决交通信号灯频闪问题
|
||||||
|
- ✅ **精确同步**:多相机系统同步采集
|
||||||
|
|
||||||
|
### 应用场景
|
||||||
|
|
||||||
|
| 领域 | 具体应用 |
|
||||||
|
|------|---------|
|
||||||
|
| **汽车电子** | ADAS、环视系统、电子后视镜、舱内监控 |
|
||||||
|
| **工业自动化** | 机器视觉、条码扫描、运动检测 |
|
||||||
|
| **消费电子** | 高端摄像头、VR/AR 设备 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔌 接口与兼容性
|
||||||
|
|
||||||
|
| 接口 | 规格 |
|
||||||
|
|------|------|
|
||||||
|
| **数据接口** | MIPI CSI-2(4 通道) |
|
||||||
|
| **平台支持** | Luxonis RVC4 |
|
||||||
|
| **封装类型** | CSP(Chip Scale Package) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📦 封装与供货
|
||||||
|
|
||||||
|
| 属性 | 值 |
|
||||||
|
|------|---|
|
||||||
|
| **完整型号** | OG05B10-A89A-00MA-Z |
|
||||||
|
| **封装** | Bulk(散装) |
|
||||||
|
| **分销商** | DigiKey、Microchip USA |
|
||||||
|
| **阿里巴巴** | 有现货模块销售 |
|
||||||
|
| **速卖通** | 有相机模块销售 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🏭 产品系列定位
|
||||||
|
|
||||||
|
豪威车载图像传感器系列中,OG05B10 属于:
|
||||||
|
|
||||||
|
```
|
||||||
|
OG05B 系列
|
||||||
|
├── OG05B10 - 5MP 全局快门(主打 ADAS)
|
||||||
|
├── OG05B1B - 变体型号
|
||||||
|
└── ...
|
||||||
|
```
|
||||||
|
|
||||||
|
**同系列对比**:
|
||||||
|
- **OS05B**:类似规格,可能是不同封装版本
|
||||||
|
- **OG05B**:产品系列名称
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔍 技术亮点
|
||||||
|
|
||||||
|
### 1. 全局快门 vs 卷帘快门
|
||||||
|
|
||||||
|
| 特性 | 全局快门 | 卷帘快门 |
|
||||||
|
|------|---------|---------|
|
||||||
|
| 曝光方式 | 全像素同时曝光 | 逐行曝光 |
|
||||||
|
| 运动畸变 | 无 | 有 |
|
||||||
|
| LED 闪烁 | 可抑制 | 易受影响 |
|
||||||
|
| 适用场景 | 高速运动 | 静态/慢速 |
|
||||||
|
|
||||||
|
### 2. LFM(LED Flicker Mitigation)
|
||||||
|
|
||||||
|
- 解决车载摄像头常见的交通信号灯频闪问题
|
||||||
|
- 对 ADAS 系统至关重要
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💰 市场情况
|
||||||
|
|
||||||
|
| 渠道 | 状态 |
|
||||||
|
|------|------|
|
||||||
|
| **DigiKey** | 可订购 |
|
||||||
|
| **Microchip USA** | 可订购,8 周交货 |
|
||||||
|
| **阿里巴巴** | 有相机模块现货 |
|
||||||
|
| **速卖通** | 有开发板/模块 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 相关资源
|
||||||
|
|
||||||
|
| 资源 | 链接 |
|
||||||
|
|------|------|
|
||||||
|
| **OV 产品页** | https://www.ovt.com/products/og05b/ |
|
||||||
|
| **Luxonis 文档** | https://docs.luxonis.com/hardware/sensors/OG05B10 |
|
||||||
|
| **DigiKey** | https://www.digikey.ca/en/products/detail/omnivision-technologies-inc/OG05B10-A89A-00MA-Z/25323044 |
|
||||||
|
| **产品简介 PDF** | https://www.ovt.com/wp-content/uploads/2024/04/OG05B1B-PB-v1.0-WEB.pdf |
|
||||||
|
| **Scribd 数据手册** | https://www.scribd.com/document/910947292/OG05B10-CSP-DS-1-03-相机传感器 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 应用建议
|
||||||
|
|
||||||
|
### 适合场景
|
||||||
|
- ✅ ADAS 摄像头系统
|
||||||
|
- ✅ 电子后视镜(CMS)
|
||||||
|
- ✅ 360° 环视系统
|
||||||
|
- ✅ 工业机器视觉
|
||||||
|
- ✅ 高速运动检测
|
||||||
|
|
||||||
|
### 注意事项
|
||||||
|
- ⚠️ 需配合 MIPI CSI-2 接收器使用
|
||||||
|
- ⚠️ 全局快门传感器通常比卷帘快门贵
|
||||||
|
- ⚠️ 需要完整的光学设计和 ISP 支持
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*整理:知识库管理员 | 归档:2026-04-24*
|
||||||
Reference in New Issue
Block a user