Update from Sync Service

This commit is contained in:
FNS Service
2026-04-27 23:20:02 +08:00
parent 5d325f0901
commit b113c8addd
16 changed files with 0 additions and 0 deletions

View 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 调试与性能分析
- 网络请求监控与拦截
- 内存泄漏检测
- 移动端模拟
**底层协议CDPChrome 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-rodGo 语言)
```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 生态、高性能爬虫 |
### ichromePython
```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
关键 APIPage.navigate, Page.click, Page.type
```
### 2. 网络请求拦截
```
场景Mock API 响应、修改请求头
方案Fetch Domain
关键 APIFetch.enable, Fetch.fulfillRequest
```
### 3. 性能分析
```
场景:检测页面加载性能、内存泄漏
方案Performance + HeapProfiler Domain
关键 APIPerformance.getMetrics, HeapProfiler.takeHeapSnapshot
```
### 4. 移动端测试
```
场景:模拟手机设备访问
方案Emulation Domain
关键 APIEmulation.setDeviceMetricsOverride
```
### 5. 安全审计
```
场景:检测 XSS、检查 HTTPS
方案Security + DOMDebugger Domain
关键 APISecurity.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*

View 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*

View File

@@ -0,0 +1,322 @@
# GitButler 完全研究
> Git 的现代替代品:堆叠分支 + AI 集成 + 无限撤销
>
> 归档2026-04-25
---
## 📊 项目概览
| 属性 | 值 |
|------|------|
| **仓库** | gitbutlerapp/gitbutler |
| **Stars** | 20,643 |
| **语言** | Rust (后端) + Svelte/TypeScript (前端) |
| **框架** | Tauri |
| **创建** | 2023-01-31 |
| **许可** | Fair Source2 年后转 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 编程工具 |
---
## 🤖 CLIbut 命令
### 安装
```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*

View 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*

View File

@@ -0,0 +1,170 @@
# IMX219 vs OG05B10 深度对比研究
> 索尼 IMX219树莓派 V2vs 豪威 OG05B10
>
> 归档2026-04-24
---
## 📊 核心参数对比
| 维度 | **索尼 IMX219** | **豪威 OG05B10** |
|------|----------------|-----------------|
| **厂商** | Sony Semiconductor | OmniVision豪威科技 |
| **分辨率** | **8MP**3280×2464 | 5MP2592×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-22 通道) | 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** | **OG05B103 倍)** |
| 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*

View 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*

View 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*

View 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*

View 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)

View 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*

View 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
# URLhttps://your-server:port/path
# vendorother
# 输入用户名密码
```
### 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
```
---
## 方法四curlftpsFTP 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`

View 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 个阶段按钮
---
## 🎙️ 录音源
### MacWhispermacOS 专用)
| 特点 | 说明 |
|------|------|
| 价格 | 付费应用(~$25 |
| 质量 | 高质量本地转写 |
| 集成 | 通过时间戳匹配自动关联 |
### Recording API跨平台
| 特点 | 说明 |
|------|------|
| 方式 | REST API 录音 |
| 平台 | macOS + Windows |
| 功能 | 实时计时器 |
---
## 🤖 LLM 集成
### 支持能力
| 能力 | 说明 |
|------|------|
| **说话人识别** | 分析转写文本,识别不同说话人 |
| **会议纪要** | 生成摘要、关键决策、行动项 |
| **会前研究** | 基于知识库生成会议背景研究 |
### 模型选择
支持为每个阶段选择不同的 Claude 模型:
- 说话人识别 → Haiku便宜
- 会议纪要 → Sonnet平衡
- 会前研究 → Opus深度
### 默认 CLI 工具
```bash
claude CLIClaude 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 客户端 IDDesktop 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*

View 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` | 使用示例 |

View 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进光量是 IMX2191.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。"
#### 卖点 290 FPS = 更高流速测量能力
> "1080P@90FPS 高帧率,是 IMX219 的 3 倍。
> 可测量 0.1-5 m/s 流速范围,覆盖 95% 以上天然河道。"
#### 卖点 3HDR + 大像素 = 复杂光照适应性
> "水面强反光 + 阴影区域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*

View 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. 实例:根据上述本体论定义创建的具体数据。
例如:一个具体的 客户 实例张三IDC001他下达的一个具体 订单 (实例:订单
O2025001
基于该理论的发展,业内出现了一批实现,如 OWLWeb 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 帮助创建的,即 AI4SEAI 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”。
当然,开发与测试阶段仍担负着进一步完善语义层的任务。
监控与运维
运维领域有所谓 AIOpsAI 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 InfraFalkorDB给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

View File

@@ -0,0 +1,147 @@
# 豪威 OG05B10 图像传感器研究
> OmniVision OG05B10 全局快门车载图像传感器
>
> 归档2026-04-24
---
## 📊 基本信息
| 属性 | 值 |
|------|---|
| **型号** | OG05B10-A89A-00MA-Z |
| **厂商** | OmniVision豪威科技 |
| **类型** | 全局快门彩色图像传感器 |
| **分辨率** | 5MP2592×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-24 通道) |
| **平台支持** | Luxonis RVC4 |
| **封装类型** | CSPChip Scale Package |
---
## 📦 封装与供货
| 属性 | 值 |
|------|---|
| **完整型号** | OG05B10-A89A-00MA-Z |
| **封装** | Bulk散装 |
| **分销商** | DigiKey、Microchip USA |
| **阿里巴巴** | 有现货模块销售 |
| **速卖通** | 有相机模块销售 |
---
## 🏭 产品系列定位
豪威车载图像传感器系列中OG05B10 属于:
```
OG05B 系列
├── OG05B10 - 5MP 全局快门(主打 ADAS
├── OG05B1B - 变体型号
└── ...
```
**同系列对比**
- **OS05B**:类似规格,可能是不同封装版本
- **OG05B**:产品系列名称
---
## 🔍 技术亮点
### 1. 全局快门 vs 卷帘快门
| 特性 | 全局快门 | 卷帘快门 |
|------|---------|---------|
| 曝光方式 | 全像素同时曝光 | 逐行曝光 |
| 运动畸变 | 无 | 有 |
| LED 闪烁 | 可抑制 | 易受影响 |
| 适用场景 | 高速运动 | 静态/慢速 |
### 2. LFMLED 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*