Skip to content

Latest commit

 

History

History
441 lines (315 loc) · 22.9 KB

File metadata and controls

441 lines (315 loc) · 22.9 KB

🚀 OpenSpace × OpenViking —— 改变一切的升级

你的 AI Agent 终于学会了记住。

从冷启动失忆到团队级集体智能。六轮工程打磨。

语言: English · Tiếng Việt · 中文


📢 核心标题

每个任务让每个 Agent 更聪明。现在,这种学习可以跨会话、跨用户、跨机器持久保留 —— 自动、私密、可测量。

升级之前 升级之后
🧊 每个任务都冷启动失忆 🧠 跨会话记忆
🔁 反复学习相同的用户偏好 ✅ Alice 的"我喜欢柱状图"被记住
💥 重复相同的工具失败 🛡️ Anti-patterns 阻止已知的糟糕方法
🏝️ 每个 Agent 都是孤岛 🌐 团队级共享智能
📦 Host agent 被锁在记忆之外 🔓 5 个 MCP 工具直接访问
🔓 Secrets 可能泄漏到共享记忆 🔒 正则 PII 清理器,默认开启
📊 无法测量影响 📈 每个响应中的完整遥测

🎯 60 秒电梯陈述

你的 Agent 在单个任务内已经很聪明 —— OpenSpace 确保这一点。Skills 引导执行,evolution 修复损坏的 workflow,质量监控过滤掉降级的工具。你已经获得了 46% 更少的 token 和 4.2× 更好的性能

但在任务之间,每个 Agent 都归零重来。

  • 花了 8 次 iteration 才发现 "chromedriver 124 需要 Chrome 124+" 的 Agent 明天就会忘记。
  • Alice 周二说"我喜欢柱状图"—— 周三得再说一遍。
  • 一个 Agent 辛苦得来的工具知识被困在一台机器上。

我们称之为"重学习鸿沟"。 这是"我的 skill 数据库变好了"和"下一个类似任务对每个人都明显更快"之间的差距。

OpenSpace × OpenViking 升级关闭了这个 gap —— 并走得更远。


🔥 改写游戏规则的 5 项升级

1. 🧠 跨会话记忆 —— 你的 Agent 终于学会了

之前:每个新任务都冷启动。没有用户偏好。没有工具失败历史。没有过去的解决方案。只有一个新鲜的 Agent 第 100 次读同一批 SKILL.md 文件。

之后:在 Agent 做任何事情之前,它询问 OpenViking —— 一个专门构建的上下文数据库 —— 它应该知道什么。六个并行语义搜索拉回:

  • 用户偏好 —— "Alice 偏好柱状图,保存为 XLSX 而非 CSV"
  • 工具知识 —— "shell:xlsx_to_csv 在 .xlsm 上失败,先用 gnumeric"
  • 成功的 skills —— "sales-dashboard-builder 用 8 次 iteration 解决了这个"
  • 过去的案例 —— "上次在聚合前清理了 NaN 行"
  • 可重用的模式 —— "周报总是包含 4 周滚动平均"
  • Anti-patterns —— "chromedriver 124 版本不匹配 —— 上周避开了" ⚠️

全部注入到 Agent 的 iter-1 prompt 中。iter 2 剥离以节省 tokens。Viking 离线时零开销。


2. 🌐 团队大脑 —— 一个学会,所有人受益

之前:你笔记本上的 Agent A 想出了如何抓取一个棘手的网站。你同事机器上的 Agent B 第二天必须从头开始想。知识在没有手动云上传的情况下不会在 Agent 之间移动。

之后:Agent A 的 session commit 自动将记忆抽取到团队的共享 Viking 实例。几小时后,另一台机器上的 Agent B —— 连接到同一个 Viking namespace —— 运行类似的任务。其执行前 enrichment 检索 Agent A 学到的东西。没有上传。没有分享按钮。没有手动步骤。

周一 10am:  Agent A(Claude Code)修复 macOS 上的 chromedriver
周一 10:03: Viking 抽取 "chromedriver 124 需要 Chrome 124+" → 团队记忆
周一 2pm:   Agent B(Codex,不同机器)开始一个 Selenium 任务
周一 2pm:   Viking 立即浮现修复 → Agent B 跳过 3 次调试 iteration

隐私边界是有意不对称设计的:

  • Agent 记忆(工具、模式、skill、案例、anti-patterns)→ 团队共享
  • 用户记忆(偏好、profile)→ 通过 OPENVIKING_USER_ID 按用户隔离

Alice 的偏好永远不会泄漏给 Bob。但 Alice 发现 xlsx_to_csv.xlsm 上出问题立即帮助 Bob。


3. 🔓 通用访问 —— host agent 终于接入了

之前:像 OpenClaw、Claude Code、Codex、Cursor 和 nanobot 这样的 host agent 只有通过完整的 OpenSpace execute_task() 往返才能从 Viking 中受益。它们的直接聊天界面 —— 用户花费大部分时间的地方 —— 无法访问跨会话记忆。

之后:5 个 MCP 工具直接暴露给每个 host agent:

工具 功能
openviking_retrieve_memory 为任何查询拉取跨会话 abstracts
openviking_remember 将用户明确陈述记录为记忆
openviking_forget_memory 删除 / 弃用特定记忆
openviking_report_stale_memory 标记过时记忆而不删除
openviking_memory_status 健康 + 配置自省

现在当你与 OpenClaw 聊天,它需要个性化回复时,它调用 openviking_retrieve_memory("user dashboard preferences") 就像任何其他 MCP 工具一样自然。Alice 的"我喜欢柱状图"在任何地方都可用 —— 即使 OpenClaw 没有委派给 OpenSpace。

Round 6 最大的架构胜利。 关闭原始设计中的 #1 gap。


4. 🎯 执行中恢复 —— 任何 iteration 的动态记忆

之前:Agent 只在任务开始时获得一次跨会话上下文。如果它在执行中发现真正的问题与初始查询所暗示的不同,它必须从头开始探索。

之后:grounding agent 有了一个新工具 —— retrieve_memory(query, category) —— 它可以在任何 iteration 调用。当工具出乎意料地失败时,当一种方法不 work 时,当它需要不同类型的知识时 —— 它动态查询 Viking。

类别包括 antipatterns,所以 agent 可以在任务中问"这个失败以前见过吗?"并避免原地打转。

Agent 只在真正卡住时调用 —— 每个任务通常 0–2 次。常见情况下没有开销,在需要时节省巨大。


5. 🛡️ 默认隐私 —— secrets 未经清理绝不离开你的机器

之前:Agent 在任务中看到的任何东西 —— API keys、邮箱、客户数据、信用卡号 —— 都可能最终出现在提交到共享团队 Viking 的 session 中。没人的错,但一个粗心任务的爆炸半径是无限的。

之后:OpenSpace 写入 Viking 的每个字符串都通过正则 PII 清理器(默认开启,通过 OPENVIKING_SCRUB_PII=false 可选关闭)。清理器 redact:

类别 redact 什么
🔑 API keys Anthropic sk-ant-*、OpenAI sk-proj-* / sk-*、OpenRouter、GitHub ghp_* / github_pat_*、AWS AKIA* / ASIA*、GCP AIza*、Slack xox*
🎟️ Tokens JWT(3 个 base64 段)、Authorization: Bearer ... headers
🔐 凭证 Basic-auth URL(https://user:pass@host)、RSA/EC/OpenSSH 私钥块
📧 PII 邮箱地址、电话号码(严格 E.164)、SSN、IP 地址
💳 金融 信用卡号(Luhn 校验 —— 无效的 16 位数字不被动)

占位符是稳定的([REDACTED_ANTHROPIC_KEY][REDACTED_EMAIL] 等),所以 Viking 的记忆抽取仍然产生有用的 abstracts —— 只是没有 secrets。

幂等、零依赖、微秒级开销。 不减慢任何东西的隐私加固。


📊 关键数字

Token 节省 —— 与 OpenSpace 现有 46% 缩减叠加

场景 相对 baseline(无 Viking)的变化 相对非 OpenSpace agent 的变化
🧊 冷启动(新任务,无记忆) +0%(零开销) −46%
🔥 温缓存(类似的历史任务) −25–40% −58–68%
🎯 避免 Phase 2(selector 首次选对 skill) −55% −76%
🌐 跨 Agent(Agent B 受益于 Agent A) −30–45% −62–72%
⚠️ Anti-pattern 规避(Round 6) −15–30% −54–64%

真实团队部署一周:在记忆库填充后,期望相对 baseline(非 OpenSpace)agent 减少 55–65% tokens

延迟影响

阶段 增加的延迟 阻塞用户?
执行前 enrichment 50–200ms(6 个并行 HTTP) 是,<1% 总任务时间
iter-1 prompt 扩展 ~40ms 隐藏在 LLM 调用中
Analyzer enrichment 50–200ms Analyzer 本身就需要 10s+
Feedback session 每个 skill ~200ms —— 在用户收到响应后运行
Skill 资源推送 每个 skill ~200ms —— 在用户收到响应后运行
迭代中 retrieve_memory 工具 每次调用 ~200ms 仅当 LLM 选择调用时

最坏情况关键路径开销:在通常需要 30s–5min 的任务上约 250ms。 不到 1%。

可观测性 —— 每次执行返回遥测

result = await openspace.execute(task)
# result["viking"] 包含:
{
    "enabled": True,
    "available": True,
    "query": "build dashboard\nPrior user turns: prefer bar charts",
    "enrichment_chars": 1243,
    "hit_counts": {
        "tool_hints": 3,
        "pattern_hints": 1,
        "skill_hints": 2,
        "user_preferences": 1,
        "case_hints": 2,
        "antipattern_hints": 0,
    },
    "selector_hints_chars": 187,
    "analysis_context_used": True,
    "feedback_status": "committed",
    "pushed_skills": 1,
}

加上每个任务一行日志给 dashboard:

Viking telemetry: available=True hits=9 enrich_chars=1243 feedback=committed pushed=1

没有测量表演。没有挥手。每个决定都可追溯。


🎭 谁赢了

👤 单人开发者

"我在笔记本上运行 OpenSpace,并在 docker 容器中运行 OpenViking。我的 Agent 记住了我教它的一切 —— 我偏爱的表格库、我们内部工具的奇怪边缘情况、我为我们的遗留 API 积累的 hacks。每个新任务都感觉像在和一个已经了解我的人说话。"

你得到什么

  • 零配置的按用户隔离(回退到 $USER
  • 无需团队设置
  • 记忆在 agent 重启后持久
  • 完全隐私 —— 没有任何东西离开你的机器

设置时间:30 秒。

docker run -d -p 1933:1933 volcengine/openviking:latest
export OPENVIKING_ENABLED=true

👥 小团队(2–10 个开发者)

"我们团队在办公室网络上部署了一个共享 Viking 实例。一周之内,每个 dev 都从其他所有 dev 的工具发现中受益。Agent 搞清楚了我们的内部 API 怪癖,学会了哪些 skills work 哪些不 work,并停止一遍又一遍地犯同样的错误。"

你得到什么

  • 团队级 agent 记忆(工具知识、模式、skill、案例、anti-patterns)
  • 偏好的按用户隔离
  • 自动跨 Agent 知识传播
  • 每个团队一个 Viking 实例 —— 运维足迹微乎其微

设置

# 共享团队 .env
OPENVIKING_URL=http://viking.internal:1933
OPENVIKING_API_KEY=<team-key>
OPENVIKING_NAMESPACE=acme-eng
OPENVIKING_SCRUB_PII=true

🏢 企业部署

"我们有多个团队共享一个具有严格隔离的 Viking 实例。每个团队有自己的 namespace,数据在 committing 前被清理 PII,我们获得关于哪些记忆被命中的完整遥测。Compliance 满意,security 满意,engineers 满意。"

你得到什么

  • 多租户 namespace 隔离
  • PII/密钥清理(默认开启)
  • OPENVIKING_MIN_SCORE 质量阈值
  • 超敏感团队的 OPENVIKING_PUSH_SKILLS=false
  • 每次执行的审计遥测
  • 无数据出境 —— 一切都在你的基础设施上运行

Compliance checklist

  • Viking 部署在内部网络(无公共端点)
  • 每个团队设置 OPENVIKING_NAMESPACE
  • OPENVIKING_SCRUB_PII=true(默认)
  • 从企业认证系统设置 OPENVIKING_USER_ID
  • 质量关键工作负载的 OPENVIKING_MIN_SCORE=0.5
  • 配置 Viking session 保留策略(典型 30 天)

🏆 升级后客观上更好的地方

维度 之前 之后 变化
跨会话记忆 ❌ 无 ✅ 6 个类别
Host agent Viking 访问 ❌ 仅通过 execute_task ✅ 5 个直接 MCP 工具 通用
迭代中记忆查询 ❌ 无 retrieve_memory 工具 新能力
Negative feedback 闭环 ❌ 失败被丢弃 ✅ Anti-pattern 记忆 从失败中学习
用户满意度信号 ❌ 无通道 provide_feedback() API 新 API
PII / 密钥保护 ❌ 无清理 ✅ 正则清理器,默认开启 默认隐私
检索质量控制 ❌ 无阈值 OPENVIKING_MIN_SCORE 质量门
Staleness 检测 ❌ 无机制 ✅ 环境指纹 + report_stale_memory 版本化记忆
多租户隔离 ❌ 单池 ✅ Namespace + user_id 前缀 多团队安全
可观测性 ❌ 日志解析 result["viking"] dict + 日志 可测量
测试覆盖 ⚪ 0 测试 ✅ 63 个测试,全部通过 已验证

🧭 升级是如何发生的 —— 六轮工程

Round 焦点 Delta
1 初始集成(client、enrichment、hooks) 20 tests,基础 MVP
2 审计 + 10 项修复(token leak、selector hints、history-aware query、analyzer share、rich feedback、skill push、health cache、API verification、namespace、quality filter) 10 个 finding 全部解决
3 遗留问题(identity fallback、opt-out env var、observability stats、extraction SLA) VikingExecutionStats + provide_feedback plumbing
4 双语文档(EN + VI)—— philosophy、architecture、token economics、configuration、operations 10 个文件,~4,000 行
5 三语平行(+CN) 总共 15 个文件,完整交叉链接
6 重大升级 —— 5 个访问路径、PII 清理器、anti-patterns、MCP host 工具、迭代中工具、质量阈值 63 tests,所有 5 个 gap 关闭

总投入:6 轮迭代开发,审计 → 修复 → 文档 → 验证循环。

总产出

  • ~3,500 行生产代码
  • 15 个文档文件 跨 3 种语言(6,000+ 行文档)
  • 63 个通过的测试 覆盖每个新代码路径
  • 零回归风险 —— 每个 Viking 调用都是 best-effort 并带有 graceful degradation

🎬 开始使用 —— 3 个命令升级

# 1. 本地运行 OpenViking(或在团队 LAN 上部署)
docker run -d -p 1933:1933 volcengine/openviking:latest

# 2. 启用集成
export OPENVIKING_ENABLED=true

# 3. 运行一个任务 —— 第一个任务 prime 记忆库
openspace --query "your task"

# 第二个类似的任务 —— 现在从跨会话记忆中受益
openspace --query "similar task"

就这样。无迁移。无数据模型变化。无 host agent 修改。集成是即插即用的,通过单个环境变量可逆。


❓ FAQ

Q:如果 OpenViking 离线会怎样? A:OpenSpace 运行方式与升级前完全相同。每个 Viking 调用都被包装在 timeout + try/except 中。零回归风险。

Q:运行 OpenViking 的成本是多少? A:Viking 是一个 HTTP 服务器。Docker 容器占用空间小。大多数团队在其 dev 环境的同一台机器或小型 LAN VM 上运行它。无 SaaS 费用。

Q:这会将我的 secrets 泄漏到共享实例吗? A:不会 —— PII 清理器默认开启。API keys、tokens、邮箱、信用卡和私钥在离开你的机器之前都会被 redacted。只有在你完全信任 Viking 端点时,你才能使用 OPENVIKING_SCRUB_PII=false 禁用。

Q:如果我不想让我的进化 skills 与团队共享怎么办? A:设置 OPENVIKING_PUSH_SKILLS=false。Session feedback 仍然 commit(对记忆抽取有用),但进化的 SKILL.md 内容保留在本地。

Q:Host agent 需要修改吗? A:不需要。5 个 MCP 工具在 OpenSpace 的 MCP 服务器上自动注册。任何支持 MCP 的 host agent(Claude Code、Codex、OpenClaw、nanobot、Cursor 等)都会在其工具列表中看到它们,无需任何代码更改。

Q:我可以测量实际影响吗? A:可以 —— 每个 execute() 返回一个带有遥测的 viking dict(命中计数、enrichment 字符、feedback 状态、pushed skills)。基于日志的测量也可以用 grep "Viking telemetry"

Q:在什么最小规模下这会 pay off? A:单人开发者从任务 #2 开始看到温缓存收益。团队从第 2 天开始看到跨 Agent 收益。企业部署看到随团队规模增长的复合网络效应。

Q:这是否 production-ready? A:63 个测试通过,每种失败模式都已验证 graceful degradation,3 种语言的文档,6 轮迭代加固。是的。


📚 完整文档

主题 中文 English Tiếng Việt
Philosophy + architecture README_CN.md README.md README_VI.md
Technical architecture architecture_CN.md architecture.md architecture_VI.md
Token 经济学 token-economics_CN.md token-economics.md token-economics_VI.md
配置参考 configuration_CN.md configuration.md configuration_VI.md
运维 + 故障排查 operations_CN.md operations.md operations_VI.md

💬 针对不同受众的一句话推介

  • 给 CTO"通过一个只需 3 个命令即可部署的即插即用隐私优先升级,将你的 agent token 账单削减 55–65%。"
  • 给工程师"你的 Agent 不再问你同样的问题。它们记住什么 work、什么不 work、你偏好什么 —— 跨会话、跨机器。"
  • 给安全"PII 清理器默认开启。多租户 namespace 隔离。无 SaaS。无数据出境。每次写入都可通过遥测追溯。"
  • 给产品"用户不会注意到升级 —— 他们只会注意到 agent 似乎更'懂他们',响应更快。"
  • 给运维"一个 docker 容器。每条路径都有 graceful degradation。63 个测试。回滚就是一个环境变量。"

🎨 视觉摘要 —— before/after 的故事

┌─────────────────────────────────────────────────────────────┐
│                          之前                               │
│                                                             │
│   任务 1 ──▶ Agent ──▶ 解决 ──▶ 忘光光                     │
│                                                             │
│   任务 2 ──▶ Agent(冷)──▶ 再次解决                       │
│                                                             │
│   Agent A ─ 看不到 ─ Agent B 的学习                         │
│                                                             │
│   用户说"prefer bar charts" → 重启后被忘记                  │
│                                                             │
│   Host agent chat → 无法访问记忆                            │
│                                                             │
│   Secrets → 可能泄漏到共享记忆                              │
└─────────────────────────────────────────────────────────────┘

                             ⬇  Round 6 升级  ⬇

┌─────────────────────────────────────────────────────────────┐
│                          之后                               │
│                                                             │
│   任务 1 ──▶ Agent ──▶ 解决 ──▶ 反馈到 Viking              │
│                                           │                 │
│                                           ▼                 │
│                              记忆被抽取(8 个类别)         │
│                                           │                 │
│   任务 2 ──▶ Agent ──▶ enrichment 读取记忆 ──▶ 更快        │
│                                                             │
│   Agent A 周一的胜利 ──▶ Agent B 周二的起点                 │
│                                                             │
│   "prefer bar charts" → 永远持久,按用户隔离                │
│                                                             │
│   Host agent chat → 5 个 MCP 工具,直接访问                 │
│                                                             │
│   Secrets → 在离开进程前被清理(默认开启)                  │
│                                                             │
│   失败 → anti-pattern 记忆 → "AVOID" 警告                  │
│                                                             │
│   每次调用 → result["viking"] 中的遥测                      │
└─────────────────────────────────────────────────────────────┘

👤 关于作者

Nguyen Ngoc Tuan(阮玉俊) Founder & CEO —— Transform Group · Lark Platinum Partner

OpenSpace × OpenViking 集成的构建者。六轮工程通过短小、专注的迭代。每个决定都可追溯。每个限制都有文档。每个 gap 都被关闭。

联系facebook.com/khongphaituan


🙏 站在巨人的肩膀上

  • OpenSpace —— 面向 AI agent 的自我进化引擎(HKU-DS)。没有它,就没什么可 enrich 的。
  • OpenViking —— 面向 AI agent 的上下文数据库(火山引擎)。没有它,就没有跨会话记忆。

这个集成是一个叠加层,而不是替代。OpenSpace 所有现有的 token 节省和自我进化能力都保持原样。Viking 只是简单地关闭了任务之间的重学习鸿沟。


🧠 跨会话记忆来了。你的 Agent 终于会记住了。

🚀 准备升级?查看 配置 或直接跳到 运维 查看部署 checklist。