从冷启动失忆到团队级集体智能。六轮工程打磨。
语言: English · Tiếng Việt · 中文
每个任务让每个 Agent 更聪明。现在,这种学习可以跨会话、跨用户、跨机器持久保留 —— 自动、私密、可测量。
| 升级之前 | 升级之后 |
|---|---|
| 🧊 每个任务都冷启动失忆 | 🧠 跨会话记忆 |
| 🔁 反复学习相同的用户偏好 | ✅ Alice 的"我喜欢柱状图"被记住 |
| 💥 重复相同的工具失败 | 🛡️ Anti-patterns 阻止已知的糟糕方法 |
| 🏝️ 每个 Agent 都是孤岛 | 🌐 团队级共享智能 |
| 📦 Host agent 被锁在记忆之外 | 🔓 5 个 MCP 工具直接访问 |
| 🔓 Secrets 可能泄漏到共享记忆 | 🔒 正则 PII 清理器,默认开启 |
| 📊 无法测量影响 | 📈 每个响应中的完整遥测 |
你的 Agent 在单个任务内已经很聪明 —— OpenSpace 确保这一点。Skills 引导执行,evolution 修复损坏的 workflow,质量监控过滤掉降级的工具。你已经获得了 46% 更少的 token 和 4.2× 更好的性能。
但在任务之间,每个 Agent 都归零重来。
- 花了 8 次 iteration 才发现 "chromedriver 124 需要 Chrome 124+" 的 Agent 明天就会忘记。
- Alice 周二说"我喜欢柱状图"—— 周三得再说一遍。
- 一个 Agent 辛苦得来的工具知识被困在一台机器上。
我们称之为"重学习鸿沟"。 这是"我的 skill 数据库变好了"和"下一个类似任务对每个人都明显更快"之间的差距。
OpenSpace × OpenViking 升级关闭了这个 gap —— 并走得更远。
之前:每个新任务都冷启动。没有用户偏好。没有工具失败历史。没有过去的解决方案。只有一个新鲜的 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 离线时零开销。
之前:你笔记本上的 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。
之前:像 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。
之前:Agent 只在任务开始时获得一次跨会话上下文。如果它在执行中发现真正的问题与初始查询所暗示的不同,它必须从头开始探索。
之后:grounding agent 有了一个新工具 —— retrieve_memory(query, category) —— 它可以在任何 iteration 调用。当工具出乎意料地失败时,当一种方法不 work 时,当它需要不同类型的知识时 —— 它动态查询 Viking。
类别包括 antipatterns,所以 agent 可以在任务中问"这个失败以前见过吗?"并避免原地打转。
Agent 只在真正卡住时调用 —— 每个任务通常 0–2 次。常见情况下没有开销,在需要时节省巨大。
之前: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。
幂等、零依赖、微秒级开销。 不减慢任何东西的隐私加固。
| 场景 | 相对 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% |
| −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"我们团队在办公室网络上部署了一个共享 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
# 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 修改。集成是即插即用的,通过单个环境变量可逆。
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 个测试。回滚就是一个环境变量。"
┌─────────────────────────────────────────────────────────────┐
│ 之前 │
│ │
│ 任务 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 都被关闭。
- OpenSpace —— 面向 AI agent 的自我进化引擎(HKU-DS)。没有它,就没什么可 enrich 的。
- OpenViking —— 面向 AI agent 的上下文数据库(火山引擎)。没有它,就没有跨会话记忆。
这个集成是一个叠加层,而不是替代。OpenSpace 所有现有的 token 节省和自我进化能力都保持原样。Viking 只是简单地关闭了任务之间的重学习鸿沟。