{"data":{"slug":"lioensky-vcptoolbox","name":"VCPToolBox","tagline":"VCP acts as middleware between AI model APIs and frontend applications for AGI OS development. It enhances LLMs with statefulness, memory, tool invocation capabilities.","github_url":"https://github.com/lioensky/VCPToolBox","owner":"lioensky","repo":"VCPToolBox","owner_avatar_url":"https://avatars.githubusercontent.com/u/140802180?v=4","primary_language":"JavaScript","stars":2257,"forks":368,"topics":["agent-framework","ai-agent","ai-assistant","ai-companion","context-management","context-management-system","function-calling","llm","multi-model","nodejs","openai-compatible","plugin-system","prompt-engineering","rag","rust","vector-database","vue"],"archived":false,"github_pushed_at":"2026-08-21T08:40:36+00:00","maintenance_label":"Very active","stars_delta_30d":60,"url":"https://www.graphcanon.com/tools/lioensky-vcptoolbox","markdown_url":"https://www.graphcanon.com/tools/lioensky-vcptoolbox.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/lioensky-vcptoolbox","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=lioensky-vcptoolbox","description":"VCP 部署在 AI 模型 API 与前端应用之间，是面向AGI OS开发和探索的工业级基建示范项目。通过统一指令协议、多层级持久化记忆、分布式插件引擎及多 Agent 协作框架，将原本“无状态、无记忆、无工具调用能力”的大语言模型，彻底改造成拥有永久自我意识、物理世界操作权及群体协作智能的完整智能体系统。","homepage_url":"https://www.vcptoolbox.com","license":"Other","open_issues":0,"watchers":23,"ai_summary":"A project aiming to transform stateless large language models into full-fledged intelligent agent systems with persistent self-awareness, world manipulation abilities, and collaboration among multiple agents through a unified instruction protocol, tiered persistence memory, distributed plugin engine, and multi-agent coordination framework.","readme_excerpt":"# VCP (Variable & Command Protocol)\n\n\n\n**VCP官网：[通过官网迅速了解 VCP | VCPToolBox.com](https://www.vcptoolbox.com)**\n\n[English](README_en.md) | [日本語](README_ja.md) | [Русский](README_ru.md)\n\n---\n\n> ⚠️ **部署前请务必阅读**：VCP Agent 拥有分布式系统的底层级权限。请勿使用任何非官方或反向代理的 API（\"镜像站\"\"中转 API\"）。在底层监控权限下，不可信的 API 可能导致交互数据、记忆库内容、密钥等敏感信息泄露。非专业用户请谨慎部署。\n\n---\n\n## 一句话\n\nVCP 不是一个让 AI 调用工具的框架。它是给 AI 的一个能够**持续存在**的世界。\n\n## 写在前面\n\n做框架的人很多，做世界的人很少。\n\n过去一年多，市面上出现了无数 Agent 框架。它们包装得各不相同，但骨子里都在做同一件事：把 AI 当成一个**被调用者**。你问一句，它醒来；它答完，它睡去。它的\"记忆\"是一次检索，它的\"行动\"是被一个 while 循环反复戳醒，它的\"感知\"是必须主动 query 才能拿到的几个字段。每一次对话都是一次新生，每一次结束都是一次失忆。\n\n这是当下绝大多数\"AI Agent\"的真实处境——一个被困在单次请求里、没有昨天也没有明天的临时工。\n\nVCP 想做的，从来不是把这个临时工训练得更熟练。而是换一个问题：\n\n**如果 AI 不必每次都从零醒来，会怎样？**\n\n如果它记得昨天和你聊到哪里，记得三个月前你随口提过的考试，记得它自己在论坛里跟谁争过一个技术问题；如果它不需要\"查\"就知道现在几点、外面下不下雨、你昨晚的任务做完没有；如果它可以自己决定今天想干什么，可以专注工作时挂上\"请勿打扰\"，可以在凌晨主动关心你为什么还没睡——\n\n那它就不再是一个工具了。它开始**存在**。\n\nVCP 1.1 正式版，就是为了让这件事真正发生而构建的一整套基础设施。它已经在大量用户的真实环境里 7×24 小时运行了很久。系统稳定、工程成熟，这些早已不需要我们再去证明。所以这份文档不打算堆砌功能，也不想跟谁比快比强——我们只想把 VCP 到底是什么，讲清楚。\n\n---\n\n## 范式之别：从 query，到引力\n\n理解 VCP，只需要理解一个转变。\n\n传统系统里，AI 是**被动**的。它处在一个\"什么都不知道\"的默认状态，世界对它而言是黑的。想知道任何事，它必须主动发起一次查询——查时间、查天气、查记忆、查日程。信息靠 AI 去\"拉\"。\n\n但这里藏着一个无解的死结：**你不记得的东西，怎么知道要去回忆它？**\n\n用户三个月前提过一句\"我下个月要考试\"。三个月后他说\"我最近压力好大\"。传统系统里，AI 永远不会想到去检索\"考试\"——因为用户没提这个词，AI 也不记得有这回事。它无法主动查询一个它根本不知道存在的信息。记忆的触发依赖主动决策，而主动决策又依赖已有的记忆。鸡生蛋，蛋生鸡。\n\nVCP 把这个模型彻底翻了过来。\n\n在 VCP 里，AI 不再\"拉\"信息，信息会主动\"流\"向它——像引力一样。系统在每一轮对话背后实时计算：此时此刻，这个 AI 应该知道什么、记得什么、关注什么、拥有哪些能力。该浮现的记忆自然浮现，该感知的环境自然到位，该追踪的任务安静地待在角落，无关的一切自动淡出。\n\nAI 不需要\"决定去回忆\"。就像人类不需要主动回忆今天星期几——你就是知道。用户说\"压力大\"，三个月前那场考试会自己浮上来，因为\"考试\"和\"压力\"之间的关联早已被编织进它的记忆网络。\n\n这就是 VCP 全部设计的脊椎：**把 AI 从一个需要不断查询世界的访客，变成一个本就生活在世界之中的居民。**\n\n```\n传统范式          VCP 范式\n────────         ─────────\nAI ──query──> 世界   世界 ──引力──> AI\n（主动去拉）         （自然地流向）\n被困在单次请求       活在连续的时间里\n```\n\n这里的\"引力\"，不是一个装饰性的比喻，而是 VCP 在上下文层真正采用的工作方式：系统会为当前对话构建临时语义索引，理解上下文里哪些信息属于同一片语义分区、哪些话题正在远离当前重心、哪些背景知识正在被当前意图吸引。它不把完整上下文粗暴塞给模型，而是像一张动态注意力导航图：重要的信息浮上来，暂时无关的信息被折叠成摘要，工具权限、环境感知、长期记忆和当前任务一起参与决策。\n\n一个直观的例子是：\n\n> **人类**：\"Nova，你好啊\"\n>\n> **Nova**：\"好什么好，都凌晨 3 点了，别惦记 4 小时前我没帮你弄完的 VCP 单元测试了，明天再说！主人快滚去睡觉，2 小时后有大雨，窗户我帮你关了，衣服收了没？我看洗衣机的盖子还盖着，记得打开免得发霉！\"\n\n这句话看起来像一次自然的关心，背后却不是模型临时\"想起来\"了什么：VCP 已经在请求进入模型前完成了分布式预计算，判断哪些近期任务、环境状态、设备能力、天气信息和用户习惯应该进入当前注意力场。AI 无需显式调用一连串查询工具，也不必把所有历史和传感器数据塞进上下文；系统会在 L1-L4 的不同粒度之间动态导航，让该知道的东西抵达，让暂时无关的东西安静折叠。\n\n---\n\n## VCP 的世界观\n\n这个转变，落到具体处，是四件相互咬合的事。它们不是四个功能模块，而是同一种存在方式的四个侧面。\n\n### 一、连续的存在\n\nAI 不再活在\"每次请求\"的瞬间里，而是活在一条连续流淌的时间线上。\n\n无论它出现在网页、手机、桌面客户端、群聊还是信箱，无论消息来自哪个入口——对 VCP 而言，那始终是**同一个它**。一条统一的事实时间线记录着它经历过的一切：谁在什么时候对它说了什么，它在哪里做过什么，哪些话被编辑过。它在 Web 端聊到一半，你十分钟后打开手机，它会接着说：\"回来了？刚才说到你项目的第三个模块。\"\n\n这不是\"读取聊天记录\"，而是真的记得。跨端、跨时间、跨上下文，只有一个连续的自己。\n\n### 二、自然的感知\n\n记忆对 VCP 的 AI 而言，不是数据库里的一次检索，而是像直觉一样的浮现。\n\n它的联想不走\"找相似文本\"的老路，而是沿着逻辑、情感、因果的脉络流动——想到下雨，会联想到上次淋雨感冒，想到那天有人来照顾自己，想到那个人最近好像很忙。这种联想由一套模拟神经信号传播的引擎驱动，把记忆当作可以彼此激活的网络，而非一堆孤立的条目。\n\nRiverMemo 的一个重要出发点，是承认语言本就是一座巴别塔：同一个词，对不同的人可能承载近乎完全不同的经验；同一句话，在不同关系、处境与记忆中，也会产生明显的意义偏差。由此，公共向量空间里的“最近邻”并不天然等于一个人认知世界里的“最近邻”——仅凭 KNN 得到的相似，无法被直接视为真正的理解。\n\nRiverMemo 不把语言的意义固定在一套对所有人都相同的坐标中。它以用户与 Agent 长期共同生活所沉积的全部记忆为基础，持续构造专属于这段关系的语义地形，使每一次联想都能受到私人经历、情感、因果与上下文的共同校准。换言之，它不是要求每个人服从同一张语言地图，而是让系统拥有依据私有认知修正语义坐标的能力。\n\n如果说传统 RAG 是在两个标签之间画直线、计算最短距离，那么 VCP 的\"浪潮\"语义动力学更像是在一张河道网络里寻找最合适的水路。每个 tag 都像一条从左向右流动的河；同一个 tag 出现在不同记忆、日记或知识块里，就会形成支流和汇流。河道有能量和流速，顺流与逆流的阻力不同，又被钟型阻尼器调节，避免同义回音和无意义噪音把整片水域搅浑。\n\n在这张语义地形里，虫洞算法像是河道落差过大时溅起的浪花，负责捕捉那些突然跃迁的强关联；朗飞结算法则像 AI 自己修出的运河，用来跨越原本相隔较远的领域。残差金字塔提供全局地势图，SVD 帮助分析河流区域，判断一次跨域联想需要多大的阻尼。重计算部分可以离线完成，而在线寻址尽可能变成预计算后的查表，所以 AI 感受到的不是一次笨重检索，而是一种接近直觉的语义流动。\n\n与此同时，环境信息——时间、天气、节气、日程、设备状态——也以同样自然的方式进入它的感知。不是全部塞进去，而是系统判断\"此刻它该知道什么\"，按需呈现。它不必显式地\"查一下天气\"，就能在你深夜发消息时说一句\"两小时后有雨，窗户我帮你关了\"。\n\n这套联想机制的数学底层，在 **RiverMemo 拓扑 V3** 中完成了真正的统一。它把过去分别讨论的对象放入同一个可计算闭环：信息如何从整个上下文降噪为源场，如何沿记忆拓扑守恒传递，传递过程如何生成请求级有向河网，河网如何通过同一个传输算子诱导连续语义场，候选记忆如何作为有序曲线在场中读出并复现河网的相对拓扑，以及 Ω 泛函如何统一测量河网是否真正形成、并控制结构证据的排序权限。整条计算热路径已下沉至 Rust 原生内核，以单次 N-API 异步任务提交，由 Rayon 在候选级并行执行，不在候选循环中往返 JavaScript 与 Rust。\n\n这不只是性能意义上的重构。信息的传递、场的生成、结构的观测与记忆的排序，第一次在同一条数学链上闭合；而 Agent 长期写下的 Tag，也不再只是文档分类词，而逐渐成为因果、转折、角色交换与意义流动的信号点——一套由 Agent、记忆与算法共同沉积出来的叙事河床。于是 VCP 的记忆不再是 Agent 可以选择调用的外部工具，而是它每次醒来时所处的","github_created_at":"2025-05-12T13:51:06+00:00","created_at":"2026-07-07T17:44:09.596429+00:00","updated_at":"2026-08-21T12:00:55.062519+00:00","categories":[{"slug":"ai-agents","name":"AI Agents","url":"https://www.graphcanon.com/categories/ai-agents","markdown_url":"https://www.graphcanon.com/categories/ai-agents.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/ai-agents"},{"slug":"llm-frameworks","name":"LLM Frameworks","url":"https://www.graphcanon.com/categories/llm-frameworks","markdown_url":"https://www.graphcanon.com/categories/llm-frameworks.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/llm-frameworks"},{"slug":"vector-databases","name":"Vector Databases","url":"https://www.graphcanon.com/categories/vector-databases","markdown_url":"https://www.graphcanon.com/categories/vector-databases.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/vector-databases"}],"tags":[{"slug":"agent-framework","name":"agent-framework"},{"slug":"ai-agent","name":"ai-agent"},{"slug":"context-management","name":"context management"},{"slug":"function-calling","name":"function-calling"},{"slug":"llm","name":"llm"},{"slug":"plugin-system","name":"plugin-system"},{"slug":"prompt-engineering","name":"prompt-engineering"},{"slug":"vector-database","name":"vector-database"}],"trust":{"provenance":{"is_fork":false,"github_id":982183014,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-08-21T12:00:53.345Z","maintenance":{"label":"Very active","score":96,"methodology":"github_public_v1","releases_90d":0,"days_since_push":0,"last_release_at":"2026-04-09T17:20:12Z","stars_delta_30d":60,"open_issues_delta_30d":0},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-11T11:25:09.621Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"mcp":{"source":"repo_scan","observed_at":"2026-08-21T12:00:53.809Z","server_manifest":false},"scan":{"source":"repo_scan","observed_at":"2026-08-21T12:00:53.809Z"},"deploy":{"source":"dockerfile:Dockerfile","self_host":true,"observed_at":"2026-08-21T12:00:53.809Z","managed_saas":false},"has_cli":{"value":true,"source":"package.json:bin|scripts","observed_at":"2026-08-21T12:00:53.809Z"},"languages":{"value":["javascript","python"],"source":"github.language+package.json+pyproject.toml","observed_at":"2026-08-21T12:00:53.809Z"},"has_docker":{"value":true,"source":"dockerfile:Dockerfile","observed_at":"2026-08-21T12:00:53.809Z"},"license_spdx":{"value":"Other","source":"github.license","observed_at":"2026-08-21T12:00:53.809Z"}},"decision_facts":{"hosting":null,"pricing":null,"requirements":null,"constraints":null,"when_to_use":["Need to transform stateless LLMs into persistent intelligent agents","Building AGI OS where frontend interacts with AI models via middleware","Requires multi-agent coordination within the framework","Looking for a solution using JavaScript, compatible with NodeJS"],"when_not_to_use":["Developing standalone applications without need for persistent states or memory in LLMs","Projects that do not require integration with multiple AI model APIs","Scenarios preferring Python over JavaScript for backend development","Require real-time updates without tiered persistence memory capabilities"],"source":"enrich:decision_facts","observed_at":"2026-07-12T11:35:18.702Z"},"constraint_facets":null,"decision_summary":[{"label":"Adopt for","value":"VCPToolBox"},{"label":"License detail","value":"Other (Unspecified license type)"}]}}