diff --git a/AI工程/OpenViking.md b/AI工程/OpenViking.md new file mode 100755 index 0000000..4aca2eb --- /dev/null +++ b/AI工程/OpenViking.md @@ -0,0 +1,205 @@ +# OpenViking - Agent 上下文数据库 + +> 字节跳动开源的 AI Agent 记忆管理系统 +> +> 归档:2026-04-22 + +--- + +## 基本信息 + +| 项目 | 说明 | +|------|------| +| GitHub | https://github.com/volcengine/OpenViking | +| 官网 | https://www.openviking.ai | +| Stars | ⭐ 22,714 | +| Forks | 1,651 | +| 许可证 | AGPL-3.0 | +| 语言 | Python | +| 更新 | 2026-04-21 | + +--- + +## 核心定位 + +**专为 AI Agent 设计的上下文数据库** + +解决传统 RAG 的问题: +- 碎片化上下文:记忆在代码里,资源在向量数据库,技能分散 +- 上下文需求暴涨:Agent 长任务产生大量上下文,简单截断会丢失信息 +- 检索效果差:传统 RAG 平面存储,缺乏全局视图 +- 检索链不可观测:传统 RAG 是黑盒,难以调试 +- 记忆迭代有限:当前记忆只是用户交互记录 + +--- + +## 核心架构 + +### 文件系统范式 + +``` +viking:// +├── resources/ # 外部资源(文档、代码、URL) +├── user/ # 用户上下文 +└── agent/ # Agent 记忆和技能 +``` + +### L0 / L1 / L2 三层加载 + +| 层级 | 内容 | Token 消耗 | 用途 | +|------|------|-----------|------| +| **L0** | 摘要 | ~100 tokens | 快速扫描,判断相关性 | +| **L1** | 概览 | ~2k tokens | 理解架构,制定计划 | +| **L2** | 全文 | 按需加载 | 深读具体文件 | + +### Token 节省效果 + +| 方案 | Token 消耗 | +|------|-----------| +| 全量加载(传统 RAG) | ~50,000 | +| L0 扫描 + L1 概览 | ~3,000 | +| L0 + L1 + L2 按需 | ~8,000 | +| **节省比例** | **83%~96%** | + +--- + +## 核心功能 + +| 功能 | 说明 | +|------|------| +| 文件系统协议 `viking://` | 统一管理 resources/user/agent 三类上下文 | +| 分层摘要 | L0/L1/L2 按需加载 | +| 目录递归检索 | 语义检索 + 目录定位 | +| 会话记忆 | 自动提取长期记忆,跨会话保持 | +| Token 追踪 | 可视化检索轨迹,追踪每个操作的 token 消耗 | + +--- + +## 安装 + +### OpenClaw Skill 安装 + +```bash +# 使用 clawhub 安装 openviking-context skill +clawhub install openviking-context + +# 在 OpenClaw 中说 "refresh skills" 即可发现 +``` + +### OpenViking 本体安装 + +```bash +# 自动检测 Python >= 3.10,安装 openviking 包 +bash scripts/install.sh + +# 可选:安装 Rust CLI (ov) +``` + +### 配置支持的模型 + +| 提供商 | VLM 模型 | Embedding 模型 | +|--------|---------|---------------| +| OpenAI | gpt-4o | text-embedding-3-large (dim=3072) | +| Volcengine | doubao-seed-2-0-pro-260215 | doubao-embedding-vision-250615 (dim=1024) | +| LiteLLM | claude-3-5-sonnet / deepseek-chat | - | +| NVIDIA NIM | meta/llama-3.3-70b-instruct | nvidia/nv-embed-v1 (dim=4096) | + +**注意**:避免使用推理模型(kimi-k2.5, deepseek-r1),它们的 reasoning 字段与 OpenViking 不兼容。 + +--- + +## 核心操作 + +```bash +# 启动服务器 +openviking-server + +# 添加资源 +python3 scripts/viking.py add ./docs/ +python3 scripts/viking.py add https://github.com/volcengine/OpenViking + +# 语义搜索 +python3 scripts/viking.py search "用户认证 鉴权" + +# 浏览目录 +python3 scripts/viking.py ls viking://resources/ +python3 scripts/viking.py tree viking://resources/ -L 2 + +# 分层读取 +python3 scripts/viking.py abstract viking://resources/proj # L0 ~100 tokens +python3 scripts/viking.py overview viking://resources/proj # L1 ~2k tokens +python3 scripts/viking.py read viking://resources/proj/api.md # L2 全文 + +# 状态和统计 +python3 scripts/viking.py info # 检查服务状态 +python3 scripts/viking.py stats # 查看 token 消耗统计 +python3 scripts/viking.py commit # 提取当前会话记忆 +``` + +--- + +## 工作流示例 + +收到开发需求时: + +1. **L0 快速扫描**(~300 tokens) + ```bash + python3 scripts/viking.py search "用户认证 鉴权 登录" + ``` + 用 L0 摘要判断哪些资源相关,过滤无关内容。 + +2. **L1 概览决策**(~2k tokens/资源) + ```bash + python3 scripts/viking.py overview viking://resources/auth-docs + ``` + 理解架构和技术选型,制定实现计划。 + +3. **L2 按需深读**(仅必要文件) + ```bash + python3 scripts/viking.py read viking://resources/auth-docs/jwt-config.md + ``` + 只加载写代码需要的具体文件。 + +--- + +## Token 节省演示 + +```bash +python3 scripts/demo-token-compare.py ./your-project-docs/ +``` + +输出示例: +``` +方案 Token 消耗 说明 +───────────────────────────────────────────────────── +全量加载 (传统 RAG) ~50,000 所有文档塞进 prompt +L0 扫描 + L1 概览 ~3,000 分层按需,仅摘要和概览 +L0 + L1 + L2 按需 ~8,000 最终只深读 2-3 个必要文件 +───────────────────────────────────────────────────── +节省比例 84%~94% 相比全量加载 +``` + +--- + +## 相关资源 + +| 资源 | 链接 | +|------|------| +| OpenViking GitHub | https://github.com/volcengine/OpenViking | +| OpenViking 官网 | https://www.openviking.ai | +| ClawHub Skill | openviking-context | + +--- + +## 替代方案对比 + +| 方案 | 说明 | +|------|------| +| **OpenViking** | 字节跳动开源,上下文数据库,AGPL 许可 | +| Elite Longterm Memory | 高级长期记忆,ClawHub Skill | +| Memory Tiering | 记忆分层,ClawHub Skill | +| Fluid Memory | 流动记忆,ClawHub Skill | + +--- + +*整理:知识库管理员 | 来源:GitHub / OpenViking 官网 | 归档:2026-04-22* \ No newline at end of file