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?
- 传统 Skill 对 Agent 活动约束力不足,通过 Harness 可实现节点级强制注入、分段注入 SOP 引导提示,起到比 Skill 更稳定的约束效果。
- 各节点可配置自己的环境变量和专属工具,符合 Harness Engineering 思想。作为通用型 Agent 框架,PurrCat 必须将不同场景的工具与提示词包装成独立容器,避免工具箱无限膨胀。
- 支持任务挂起、安全注入、断点重连,具有极强的商业可用性和系统鲁棒性,提供比低代码平台更细粒度的控制。
- 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 工具:混合检索搜索
采用语义+关键词匹配的混合检索算法。支持 web 和 local 两种路由:web 返回 URL 与摘要,local 检索已装载的 Skill、MCP 工具及相关记忆。在数百量级的召回测试中准确率超过 90%。
5. Fetch 工具:深度信息获取
用于获取详情:爬取网页并转为 Markdown、加载 Skill 技能文件、获取 MCP 工具参数 Schema、读取系统 SOLO.md 和 TODO.md。
6. Memo 工具:记忆交互
Agent 与记忆系统的交互工具。任务执行者在必要节点自行提炼浓缩的 Summary 存入 pending,交给后台 LLM 处理更新 MEMORY.md、memo 变量和 PurrMemo 数据库。相比于把消息历史全量丢给后台整理,这种思路更加自然、经济和快速。
7. Cron 工具:定时唤醒
让 Agent 具备设定定时任务的能力,确保在指定时间被唤醒并执行任务。
8. Task 工具:后台子任务调度
派发子任务给后台 Agent 执行,支持 kill、reload、随时注入引导指令,调度后台 DAG 图引擎,不阻塞主会话。
四、智能体中枢与会话管理
协调大模型与用户、外部世界的交互网关,管理 Agent 的生命周期、记忆上下文切分以及多分支对话树。
Git 式会话分支
支持 new_session、branch_session 和 switch_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.stdout到stderr。第三方库的 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。