Skip to content

PurrCat 核心技术介绍

PurrCat 是一个安全、稳定、经济、可深度定制的本地 Agent 框架。不同于市面上"一问一答"的工具型助手,PurrCat 在设计上追求让 Agent 拥有真正"自主工作"的能力——它拥有记忆、能主动感知、可编排复杂工作流,并具备工业级的并发调度与稳定性。

本文将系统阐述 PurrCat 的八大核心技术模块。


一、混合记忆与知识图谱系统

这是 PurrCat 最亮眼、最具技术含量的模块之一,解决传统 Agent "记不住事"的根本痛点。本记忆系统的设计参考了神经科学对记忆类型的划定与理论模型。

短时工作记忆

常驻内存的 memo 变量,跨越单次会话断层,保留最近多次 Agent 浓缩总结。完美解决"切换会话就忘记上一秒在做什么"的痛点。

核心通用记忆

系统级档案(MEMORY.md),固化用户画像与工作经验,在会话初始化时作为 System Prompt 注入,确立 Agent 行为基调。

长期结构化记忆(PurrMemo 系统)

设计思路模拟人类大脑的复杂记忆机制,包含两大引擎:

  • 情景记忆引擎:基于 SQLite + FTS5,提供基于时间线和全文 BM25 的客观事件溯源,记住"何时发生了何事"。
  • 语义记忆引擎:基于 ChromaDB(向量语义聚类)与 NetworkX(认知图谱三元组)。不仅存储工作经验,更能动态构建实体关系,支持关系的强化(Reinforce)和削弱(Weaken),并提供 HTML 可视化图谱导出。

核心技术支撑

  • RRF 混合检索算法:检索时通过全局线程池多路并发,将 BM25(关键词匹配)与 Vector(语义匹配)进行倒数排名融合(Reciprocal Rank Fusion),大幅提升召回准确率。
  • 异步记忆消化与艾宾浩斯遗忘:前台产生的新认知先存入 pending,由后台独立守护进程(专职大模型)转化为三元组静默写入图谱,绝不阻塞用户交互。同时引入动态衰减机制,长时间未强化的记忆边(Edge)权重会自然衰减并被清理。

二、Harness:可编排思维链与 DAG 工作流引擎

Harness 是 PurrCat 的"拓展大脑",将复杂的任务拆解为可流转的有向无环图(DAG)。它提供了一种全新的 Multi-Agent 并发思路。

解决多智能体通信瓶颈

传统 Multi-Agent 框架让不同 Agent 通过自然语言"喊话",导致巨大的 Token 冗余。Harness 采用"同一个人拥有多个大脑并发执行"的思路,通过编排思维链实现并发,大幅降低了通信开销与推理成本。

解决生产环境工具过多、噪声太大的问题

Harness 模块采用"特定任务绑定特定工具"的图结构,支持在特定工作流特定阶段注入特定工具提示,防止 Agent 在复杂情景下发生混乱。

JSON 驱动的极简热插拔

导入或部署一个复杂的工作流,仅需一个 JSON 配置文件即可完成动态装载与热更新。

强大的多态节点矩阵

包括但不限于以下节点类型:

  • 图片生成节点 (image_generator):直连大模型 Vision 能力,支持文生图、图生图编辑。
  • 条件路由节点 (if_else_router / switch_router):支持意图识别后的精准多路分支分流。
  • 人工干预节点 (human_intervention):触发后精准挂起当前节点状态至 WAITING,交出控制权给人类。

状态机的安全回滚

支持随时在特定节点注入人工指令,系统可连带下游节点一起清除旧状态,实现精准的断点重连和状态回滚,完美防止"数据脏读"。

为什么需要 Harness?

  1. 传统 Skill 对 Agent 活动约束力不足,通过 Harness 可实现节点级强制注入、分段注入 SOP 引导提示,起到比 Skill 更稳定的约束效果。
  2. 各节点可配置自己的环境变量和专属工具,符合 Harness Engineering 思想。作为通用型 Agent 框架,PurrCat 必须将不同场景的工具与提示词包装成独立容器,避免工具箱无限膨胀。
  3. 支持任务挂起、安全注入、断点重连,具有极强的商业可用性和系统鲁棒性,提供比低代码平台更细粒度的控制。
  4. Harness 是 PurrCat 实现 Multi-Agent 的主要形式,让聊天 Agent 和工作 Agent 相互配合,优化任务执行效率。

三、全能安全工具链

给大模型装上"手和脚",且拥有绝对安全的防护。PurrCat 经过深入研究和实验,设计并打磨出八大核心原生工具。

1. Bash 工具:沙盒级命令行执行

让模型在专属的 Docker 容器中全权执行命令行。选择 Docker 沙盒而非宿主机直连,主要原因有三:

  • 保证绝对的文件安全:即使是最强的 CodingAgent,对命令行的拦截仍依赖正则匹配,容易发生意外且引入过多 Human-in-Loop。PurrCat 直接使用 Docker 构建 Agent 自己的"虚拟机"。
  • 符合自主助手的设计思想:PurrCat 追求 Agent 拥有自主独立人格,能独自完成任务、自发巡逻发现问题。一个完全隔离的沙盒环境是最适合的。
  • 持久化沙盒适合长期任务:Agent 搜集的情报、工作日志、测试文件可存放在沙盒中,不因切换会话或重启程序而消失。用户可通过配置挂载目录来访问外部。

2. FileSystem 工具:全能文件系统套件

深度吸收了行业顶尖 CodingAgent 在代码库漫游与编辑上的设计理念:

  • 代码库漫游与操作:原生实现 read(精确到行的分页读取)、edit(基于上下文的局部替换)、write(全量覆盖)、search(正则全局 Grep)与 glob(通配符模式匹配)。
  • 富文本降维阅读read 操作底层内置 MarkItDown 引擎,读取 .pdf.docx.xlsx 等文件时自动降维解析为纯净 Markdown 文本。
  • 安全可控的跨界传导 (Import/Export):用户通过黑白名单实现物理级拦截;导入时严格校验 30MB 上限并防御路径穿越攻击;导出时自动触发 Git 快照(Auto-Commit),彻底杜绝覆盖宿主机重要文件的灾难。

3. CallMCP 工具:动态路由 MCP 扩展

引入 MCP 工具拓展的接口。为什么不直接传 MCP Schema?因为 OpenAISDK 将工具 Schema 直接接到 System Prompt 后面,每次新增或减少工具会导致整个消息历史重建,对 KV Cache 命中率的打击是毁灭性的。PurrCat 采用动态路由工具替代直接塞入 Schema 的思路。

4. Search 工具:混合检索搜索

采用语义+关键词匹配的混合检索算法。支持 weblocal 两种路由:web 返回 URL 与摘要,local 检索已装载的 Skill、MCP 工具及相关记忆。在数百量级的召回测试中准确率超过 90%。

5. Fetch 工具:深度信息获取

用于获取详情:爬取网页并转为 Markdown、加载 Skill 技能文件、获取 MCP 工具参数 Schema、读取系统 SOLO.md 和 TODO.md。

6. Memo 工具:记忆交互

Agent 与记忆系统的交互工具。任务执行者在必要节点自行提炼浓缩的 Summary 存入 pending,交给后台 LLM 处理更新 MEMORY.mdmemo 变量和 PurrMemo 数据库。相比于把消息历史全量丢给后台整理,这种思路更加自然、经济和快速。

7. Cron 工具:定时唤醒

让 Agent 具备设定定时任务的能力,确保在指定时间被唤醒并执行任务。

8. Task 工具:后台子任务调度

派发子任务给后台 Agent 执行,支持 kill、reload、随时注入引导指令,调度后台 DAG 图引擎,不阻塞主会话。


四、智能体中枢与会话管理

协调大模型与用户、外部世界的交互网关,管理 Agent 的生命周期、记忆上下文切分以及多分支对话树。

Git 式会话分支

支持 new_sessionbranch_sessionswitch_session。用户可在对话中途"拉一个分支"尝试某种解决思路,不满意随时切回主分支。

完善的异常修复

如果大模型发起多个工具调用,但由于网络错误或手动中断只返回了部分结果,系统会自动发现并"摘除悬空节点"(检查 tool_calls 与返回的 tool_call_id 是否匹配),自动弹出残缺工具消息,回滚到安全状态。

Agent 的"灵魂"注入

通过定义 SOUL.md,从根本上定义 Agent 的人格、价值观和底层工作逻辑。

Heartbeat + SOLO + TODO 自主巡查机制

结合 System Clock(系统时钟)传感器,Agent 拥有自己的心跳节拍。空闲时根据定时唤醒机制,主动调取 SOLO.md(工作规范/期待活动)和 TODO.md(待办事项),进行系统级自主巡查、数据维护、垃圾清理甚至主动汇报进度。

智能上下文截断

Token 即将超限时,自动寻找安全截断点(避开截断工具调用的中间过程,默认保留最近 20 条安全会话),被挤出的历史替换为高度压缩的 Memo 摘要提示词注入,实现无感续接。

专属视觉顾问

对于没有多模态功能的大模型,配有一个专属的 Vision 顾问用于视觉理解,把信噪比较低的图片信息从主会话中剥离,减少模型幻觉。


五、主动感知与事件网关

赋予 Agent "生命"和"主动权",从被动的"问答机器"变成主动的"智能助手"。基于事件驱动架构,实现多源信息的汇聚与分发。在最新重构中,系统全面摒弃了传统的强耦合插件加载模式,借鉴自 MCP 的架构思想,实现了传感器与主脑的物理级解耦。

类 MCP 的独立进程与极速隔离

所有传感器作为独立子进程运行。系统集成了 uv 工具,利用 PEP 723 单文件内联依赖规范,在拉起 Sensor 时瞬间在后台创建虚拟环境并自动安装依赖。

  • 物理级防崩溃:某个 Sensor 崩溃(如飞书 WebSocket 断线或 RSS 解析出错),绝不会影响主 Agent 进程的存活。
  • 依赖零冲突:语音监听所需的音频库,与飞书 SDK、网页抓取库被完美隔离在各自的沙盒中,互不干扰。

标准流通信与"防弹护盾"

主程序与 Sensor 之间采用操作系统底层的标准输入/输出(Stdio)管道进行 JSON-RPC 通信,零网络开销且极致轻量。

  • 防污染护盾:在子进程中拦截并重定向原生 sys.stdoutstderr。第三方库的 Warning、报错和普通打印走日志通道,只有符合规范的 JSON 协议数据才能进入主程序解析器,彻底杜绝通道污染。

配置即安装的极简拓展体验

  • 无代码安装:用户在 .purrcat/activate_sensor.json 中配置短短几行 JSON,系统启动时若发现本地无此 Sensor,会自动从云端(GitHub)下载对应单文件脚本并秒速运行。前端 UI 提供可视化一键 ON/OFF 拨动开关与热重载。
  • 跨语言无关性:只要程序能通过命令行启动,通过标准输入输出流读写 JSON 数据,无论 Node.js、Go 还是其他语言,均可零成本接入。

多源传感器落地举例

本架构已内置四大开箱即用的核心传感器:

  • System Sensor(系统时钟):常驻内存的心跳守护与闹钟轮询,打通 cron.json,时间一到主动抛出事件唤醒大模型。
  • Feishu Sensor(飞书通道):独立运行的飞书 WebSocket 客户端,支持大模型在飞书上直接与人类交互,双向解析与发送 Markdown 卡片。
  • RSS Sensor(资讯订阅):后台定时轮询订阅的科技博客,发现新文章后主动推送给 Agent。
  • Audio Sensor(环境语音):基于 Whisper 和 pyttsx3 的环境监听,随时捕捉周围语音指令并转为文本投递给网关。

突破响应式边界:传统 LLM 只能"你问我答",而通过这套架构,Agent 真正拥有了自主感知世界的能力——它可以主动对你说:"老板,您关注的博客更新了,我帮您总结了如下内容……"


六、模型调度与高并发网关

基于操作系统原理知识实现的,针对复杂并发场景下的 LLM 资源调度管理。

API Key 负载均衡

利用底层的线程锁(_usage_lock)维护一个可用 Key 列表,自动分配当前最空闲的 Key,防止单一 Key 触发并发限制。

并发锁与指数退避

针对 429 Rate Limit,底层实现了 Semaphore 信号量排队,并加入了带 Jitter(抖动)的指数退避重试算法(Exponential Backoff)。

高可用工业级设计

在多智能体协同(多 Node 并发请求)时极易触发 API 频率限制,本系统在最高 8 次退避重试的保护下,确保 API 调用的绝对高可用。


七、极致的 KV Cache 命中率与 Token 经济学

在当今大模型上下文窗口动辄百万的时代,稳定的 KV Cache 命中率是系统的生命线。一次缓存未命中,不仅导致响应时间暴增,更带来极大的 Token 资金消耗。PurrCat 经过上百次实验与深度打磨,成功避开了无数上下文工程的"坑"。

99%+ 缓存命中率

以 DeepSeek 为例,消耗 1 亿 Token 仅需约 3 块多人民币。极少的前缀重算意味着在日常交互中能获得远超传统通用 Agent 的极速响应体验。

细粒度 DAG 工作流的降本增效

传统 Multi-Agent 框架让多个 Agent 通过自然语言互相"喊话",带来巨大的通信 Token 冗余。PurrCat 的 DAG 系统采用"同一个人拥有多个大脑并发执行"的思路,消除了不必要的通信开销。

记忆摘要经济学

市面上的记忆系统多采用"将全量历史对话打包给后台压缩"的粗暴做法。PurrCat 要求任务执行者在必要节点自行提炼浓缩的 Summary,抛给后台 PurrMemo 引擎消化,既不阻塞前台运行,又极大减少了冗余文本的处理。

生命周期 API Key 强绑定机制

在底层 APIKeyManager 中实现了任务/会话与单一密钥的强绑定,彻底杜绝了因负载均衡切换 API Key 导致 KV Cache 瞬间清零、命中率雪崩的致命问题。


八、极致的解耦拓扑、无代码拓展与极客级工程美学

PurrCat 彻底摒弃了传统 Agent 框架繁杂的硬编码二次开发流程,通过强大的动态路由、微内核化设计与热加载机制,提供"即插即用"的极致拓展生态。

零代码接入 MCP 工具

只需将标准 MCP Server 的 JSON 配置粘贴到 mcp_config.json 中,系统便会异步触发 Schema 重新握手、缓存落盘并自动热更新大模型的动态路由工具树,实现分钟级的能力泛化。

一键装载 Skill 技能

在终端执行 purrcat install skill <url>,即可将社区沉淀的 SOP 流程秒速下载并热加载到系统的技能检索树中。

可视化 DAG 工作流动态部署

复用或分发复杂的 Harness 工作流,仅需导入一个 JSON 图谱配置文件。同时,内置的可视化引擎支持在 UI 界面中直接拖拽、连线、动态编排节点。

即插即用的主动感知传感器

activate_sensor.json 中添加几行环境配置,系统启动时若发现本地缺失该 Sensor,会自动通过云端拉取单文件脚本并秒速运行。前端 UI 提供可视化一键 ON/OFF 拨动开关与热重载。


演进路线图

  • 多模态模型深度融合
  • 模型厂商 API 映射层
  • 标准化的 Skill / Harness 开源生态市场
  • 更多丰富的传感器与外部集成

期待你的参与!让我们一起构建更好的 PurrCat。