1. 项目概述:为边缘设备而生的轻量级AI智能体运行时
如果你和我一样,一直在寻找一个能在树莓派Zero 2W或者一台年费不到10美元的低配VPS上稳定运行的AI智能体框架,那么neko的出现,可能就是我们等待已久的那个答案。这个项目最吸引我的地方,就在于它彻底抛弃了那些“重型装备”——没有臃肿的向量数据库,没有复杂的依赖链,甚至不需要一个外部的数据库服务。它就是一个用Rust编写的、开箱即用的单文件二进制程序,把AI智能体的核心能力:记忆、工具调用、任务调度和外部通信,全部打包进了一个极简的运行时里。
我最初是在一个边缘计算的项目中接触到它的,当时我们需要一个能部署在资源受限的物联网网关上、并能通过Telegram进行交互的自动化助手。主流的AI Agent框架要么对内存要求太高,要么部署复杂得像个小操作系统。neko的“文件即记忆”理念和针对低功耗ARM架构的编译支持,让我眼前一亮。经过一段时间的深度使用和改造,我发现它不仅仅是一个“能跑起来”的妥协方案,其设计哲学——比如强制智能体自我管理记忆、基于MCP协议的工具生态、以及无状态的Cron任务调度——反而在很多场景下比那些大而全的框架更加优雅和可靠。
简单来说,neko是一个轻量级、可嵌入的AI智能体运行时。它允许你通过一个简单的HTTP网关或Telegram机器人,与一个具备长期记忆和工具使用能力的LLM(大语言模型)进行交互。它的核心目标是极致的简洁和可移植性,特别适合嵌入式开发、个人自动化、或是作为大型应用中的一个组件来使用。接下来,我将结合我的实际部署和开发经验,为你彻底拆解这个项目。
2. 核心设计哲学与架构解析
2.1 为什么是“文件即记忆”?
neko最颠覆性的设计莫过于其记忆系统。与绝大多数依赖向量数据库(如Pinecone、Chroma)或关系型数据库来存储对话历史的AI框架不同,neko选择将一切记忆以纯文本Markdown文件的形式保存在本地文件系统中。这听起来似乎是一种倒退,但实际使用下来,我发现这是一项极其明智的、针对其目标场景(边缘设备、低配VPS)的优化。
背后的逻辑与优势:
- 零外部依赖与极致轻量:向量数据库虽然功能强大,但其本身就是一个需要维护的服务,消耗额外的CPU和内存。在树莓派Zero 2W(仅有512MB RAM)上,同时运行LLM推理和向量数据库几乎是不可行的。文件系统是任何操作系统都具备的基础设施,
neko直接利用它,将复杂度降到了最低。 - 完全的可观测性与可控性:记忆对用户和开发者完全透明。你可以随时用
cat、grep或任何文本编辑器查看、修改~/.neko/workspace/memory/目录下的文件。这消除了AI记忆的“黑盒”特性。当智能体行为异常时,第一件事就是去检查它的记忆文件,往往能立刻找到问题根源——比如一条被错误写入长期记忆的过时信息。 - 天然的版本控制与备份:由于记忆就是文本文件,你可以轻松地使用
git对整个工作空间进行版本管理。这意味着你可以回滚智能体到某个特定时间点的“认知状态”,或者在不同设备间同步记忆,这对于开发调试和跨设备部署来说非常方便。 - 强制智能体进行记忆管理:这是我认为最精妙的设计。
neko没有提供“无限记忆”的幻觉。长期记忆文件MEMORY.md有2000字符的软限制。当接近限制时,系统会警告智能体,智能体必须主动使用memory_replace或memory_write工具去压缩、概括或删除旧信息,以腾出空间。这个过程模拟了人类的记忆筛选机制,迫使智能体学会“遗忘”和“提炼”,而不是无脑地堆积上下文,最终导致性能下降和成本飙升。
2.2 两层级记忆架构详解
neko的记忆系统并非杂乱无章,它遵循一个清晰的两层结构,我将其类比为人类的“长期记忆”与“短期工作记忆”。
核心长期记忆 (memory/MEMORY.md)这个文件是智能体的“人格核心”和“知识库”。它应该存储相对稳定、高频使用的信息。在我的天气助手项目中,这里存放着用户设定的城市偏好、温度单位(摄氏/华氏)、以及用户说过“我不喜欢雨天提醒”这样的长期偏好。
注意:你需要“训练”智能体如何维护这个文件。在系统提示词(System Prompt)中,我明确写道:“
MEMORY.md是你的核心记忆,只存放最重要、最持久的事实和用户偏好。对于临时对话信息,请写入每日日志。” 并通过几次手动修正,引导它学会了区分信息的重要性。
每日日志 (memory/YYYY-MM-DD.md)每天都会生成一个新的日志文件,例如memory/2025-10-27.md。智能体自动加载“今天”和“昨天”的日志,这提供了一个滚动的、为期两天的上下文窗口。
- 作用:记录会话中的临时信息、待办事项、一次性的查询上下文。例如,用户今天说“帮我查一下下午的会议时间”,这个上下文只需要保留一两天即可。
- 实操技巧:你可以通过
neko memory search命令跨所有日志文件搜索。例如,当用户问“我上周三让你提醒我什么事来着?”,虽然超出了滚动窗口,但你可以引导智能体使用memory_search工具,用正则表达式2025-10-2.*会议来查找相关记录。
回忆库 (memory/recall/*.md)这是由系统自动归档的完整对话记录。每个会话在结束后,可能会被智能体或系统规则决定是否值得长期保存,然后被移入recall目录。这是记忆系统的“冷存储”,不参与日常的上下文加载,仅在通过搜索工具主动查询时才被调用。
2.3 工具扩展生态:MCP协议集成
neko自身内置的工具(读写文件、执行命令、HTTP请求)是有限的。其强大的扩展能力来自于对模型上下文协议(Model Context Protocol, MCP)的支持。MCP是Anthropic提出的一种标准,允许AI模型动态发现和使用外部工具,而neko通过stdio传输方式集成了它。
这意味着什么?意味着你可以将任何暴露了MCP接口的服务变成neko智能体的工具。社区中已经有大量现成的MCP服务器:
@modelcontextprotocol/server-filesystem: 访问服务器文件系统(配置示例中已使用)。@modelcontextprotocol/server-sqlite: 让智能体直接读写SQLite数据库。@modelcontextprotocol/server-github: 让智能体拥有操作GitHub仓库的能力。- 你甚至可以自己用任何语言编写一个MCP服务器,只要遵循协议,
neko就能无缝集成。
配置示例:连接SQLite数据库假设你有一个家庭记账应用,想让智能体帮你查询数据。你可以这样配置config.toml:
[mcp.finance_db] command = "npx" args = ["-y", "@modelcontextprotocol/server-sqlite", "/path/to/your/finance.db"]重启neko后,智能体就会自动发现这个新工具,并能在对话中根据你的指令生成并执行SQL查询,然后将结果返回给你。这种设计将智能体的“大脑”(LLM)和“手”(工具)彻底解耦,使得功能扩展变得异常灵活和标准化。
3. 从零开始部署与深度配置指南
3.1 跨平台安装与编译实践
官方提供了便捷的安装脚本,但对于嵌入式平台或需要自定义功能的用户,从源码编译是必经之路。
在标准Linux/macOS上快速安装对于大多数桌面或服务器环境,一键安装脚本是最快的方式。它会将neko二进制文件下载到~/.local/bin目录。请确保该目录在你的PATH环境变量中。
curl -fsSL https://raw.githubusercontent.com/superhq-ai/neko/main/install.sh | sh安装后,运行neko --version验证是否成功。
在树莓派Zero 2W/其他ARM设备上从源码编译这是真正体现neko价值的场景。树莓派Zero 2W基于ARM Cortex-A53架构,我们需要编译aarch64-unknown-linux-gnu或aarch64-unknown-linux-musl目标。
- 准备编译环境:首先在树莓派上安装Rust工具链。由于Zero 2W资源有限,建议通过
rustup安装,并选择较快的镜像源。curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source $HOME/.cargo/env - 安装交叉编译依赖(可选):如果你在x86电脑上为树莓派编译,需要设置交叉编译工具链。但在资源受限的设备上,我推荐直接在树莓派上本地编译,虽然慢(可能需要30-60分钟),但最省事,避免兼容性问题。
- 克隆与编译:
git clone https://github.com/superhq-ai/neko.git cd neko # 使用 --release 模式编译优化后的版本 cargo build --release --target=aarch64-unknown-linux-gnu # 编译产物位于 target/aarch64-unknown-linux-gnu/release/neko - 处理可能的问题:编译过程中可能会遇到链接器问题,通常是缺少系统库。确保已安装
pkg-config和libssl-dev(或对应发行版的包,如openssl-devel)。
编译成功后,将这个二进制文件拷贝到任何地方即可运行,真正的“单文件部署”。# 例如在基于Debian的树莓派OS上 sudo apt update sudo apt install pkg-config libssl-dev
3.2 配置文件深度解读与优化
neko init命令会生成默认的~/.neko/config.toml文件。理解每个配置项对于打造一个高效可用的智能体至关重要。
[gateway]部分:服务与控制
[gateway] bind = "127.0.0.1:3000" # 网关绑定的地址。如果想让同一网络下的其他设备访问,可改为 "0.0.0.0:3000" workspace = "~/.neko/workspace" # 工作空间路径,存放所有记忆、日志、技能文件。bind地址选择:默认127.0.0.1是安全的,仅本机可访问。如果你在前端(如一个Web界面)调用neko的HTTP接口,或者使用反向代理(如Nginx),保持默认即可。若想直接暴露服务,务必在前面设置防火墙或反向代理,并考虑添加认证。workspace路径:可以改为SSD硬盘路径或网络存储路径,以提升IO性能或实现共享记忆。
[agent]部分:智能体大脑配置这是核心配置,决定了智能体的“智商”和“能力”。
[agent] model = "gpt-4o-mini" # 实际使用中,gpt-4o-mini是性价比很高的选择 provider = "openai" max_tokens = 4096 # 每次交互的最大token数(输入+输出)。调低可节省成本,但可能影响复杂任务。 temperature = 0.7 # 创造性。对于自动化任务,建议0.1-0.3;对于聊天,0.7-0.9。 tools = ["read_file", "write_file", "list_files", "exec", "http_request", "memory_write", "memory_search", "memory_replace", "cron_manage"]model选择:neko兼容任何提供OpenAI兼容API(/v1/chat/completions)的模型。除了OpenAI官方模型,你还可以使用:provider = "ollama",并配置[providers.ollama]的base_url = "http://localhost:11434",模型名填llama3.2:3b等本地模型。这是在树莓派上实现完全离线运行的关键!- 个人经验:在树莓派Zero 2W上,运行Ollama+3B参数的小模型已是极限,响应速度较慢(10-30秒)。更可行的方案是让
neko调用云端API(如GPT-4o-mini),树莓派仅作为轻量级运行时和网关,这样响应速度在2-5秒内,体验良好。
tools列表:这里是启用或禁用内置工具的地方。如果你担心安全,可以移除exec(执行系统命令)这个强大的工具。cron_manage工具允许智能体自己创建和管理定时任务,非常有用,建议保留。
[providers]部分:连接LLM服务
[providers.openai] api_key = "${OPENAI_API_KEY}" # 使用环境变量,安全! base_url = "https://api.openai.com" # 可改为第三方代理地址 # 如果你想同时配置多个供应商,以备切换 [providers.ollama] api_key = "ollama" # Ollama通常不需要key,但字段需存在 base_url = "http://192.168.1.100:11434" # Ollama服务地址重要安全提示:永远不要将API密钥硬编码在配置文件中。务必使用
${ENV_VAR}语法引用环境变量。可以通过.env文件加载,或在启动neko前设置export OPENAI_API_KEY='sk-...'。
[channels]部分:设置交互入口HTTP网关是默认开启的。这里重点讲Telegram配置,它让智能体变得触手可及。
[channels.telegram] enabled = true bot_token = "${TELEGRAM_BOT_TOKEN}" allowed_users = [123456789] # 你的Telegram User ID,限制访问,避免机器人被公开滥用。- 创建Telegram Bot:在Telegram中搜索
@BotFather,发送/newbot,按提示操作,最终获得一个bot_token。 - 获取你的User ID:在Telegram中搜索
@userinfobot,向它发送任意消息,它会回复你的数字ID。 - 配置与启动:将token和ID填入配置,重启
neko。然后,在Telegram中打开你创建的Bot,发送/start,你的智能体就“活”了。
4. 核心功能实战:打造个人自动化助手
4.1 技能(Skills)开发与安装
技能是neko实现复杂、可复用功能的核心模块。一个技能本质上是一个带有YAML Frontmatter的Markdown文件,它采用“渐进式披露”设计:元数据(描述、参数)始终对智能体可见,而完整的实现代码仅在技能被激活时才加载。
手把手创建一个“天气查询”技能假设我们要创建一个让智能体获取天气的技能。
- 创建技能文件
weather_fetcher.md:--- name: get_weather description: 获取指定城市的当前天气情况。 author: your_name version: 1.0.0 triggers: - "天气怎么样" - "今天气温如何" - "预报" parameters: city: type: string description: 城市名称,例如“北京”、“New York”。 required: true unit: type: string description: 温度单位,`c` 表示摄氏度,`f` 表示华氏度。 required: false default: "c" --- # 实现代码 ```python import requests import os def main(city: str, unit: str = "c") -> str: # 这里使用一个假设的天气API,请替换为真实的API(如OpenWeatherMap) api_key = os.getenv("WEATHER_API_KEY") if not api_key: return "错误:未配置天气API密钥。请设置 WEATHER_API_KEY 环境变量。" # 构建请求(示例,需适配真实API) url = f"https://api.weatherapi.com/v1/current.json?key={api_key}&q={city}" try: response = requests.get(url, timeout=10) data = response.json() temp = data['current']['temp_c'] if unit == 'c' else data['current']['temp_f'] condition = data['current']['condition']['text'] return f"{city}的当前天气:{condition},温度{temp}°{unit.upper()}。" except Exception as e: return f"获取天气失败:{str(e)}" - 安装技能:将
weather_fetcher.md文件放入~/.neko/workspace/skills/目录,或者使用命令:neko skills install /path/to/weather_fetcher.md - 使用技能:重启
neko后,智能体就认识这个技能了。当用户说“北京天气怎么样?”时,智能体会识别触发词,提取参数city=北京,然后动态加载并执行技能文件中的Python代码,最后将结果返回给用户。实操心得:技能中的Python代码是在
neko内置的沙箱中运行的,受限于[tools]部分配置的sandbox、memory_limit_mb和timeout_secs。对于网络请求等IO操作,务必做好异常处理和超时控制。建议将API密钥等敏感信息通过环境变量传入,而不是写在技能文件里。
4.2 定时任务(Cron)系统高级用法
neko的Cron系统不仅仅是一个定时触发器,它是一个完整的、由智能体参与管理的任务编排系统。任务结果可以自动路由回创建任务的频道(如Telegram聊天),实现了闭环自动化。
场景一:创建智能每日摘要我想让智能体每天上午9点,自动总结我指定的RSS源的头条新闻,并发送到Telegram。
# 1. 创建一个获取新闻摘要的技能(news_digest.md),技能内包含抓取RSS和摘要的逻辑。 # 2. 安装该技能。 # 3. 添加定时任务,并指定将结果“宣布”到特定的Telegram聊天。 neko cron add "请使用‘get_news_digest’技能,总结‘https://example.com/feed’的今日头条,要求简洁。" \ --schedule "0 0 9 * * *" \ --name "morning_news" \ --announce "telegram:123456789" # 你的Telegram Chat ID--schedule使用的是Cron表达式(秒 分 时 日 月 星期)。0 0 9 * * *代表每天9:00:00执行。--announce是关键。它告诉neko,当这个任务执行完毕后,将智能体的回复推送到指定的频道。这里telegram:123456789表示推送到ID为123456789的Telegram聊天。
场景二:让智能体自主管理提醒更强大的地方在于,用户可以直接通过对话创建定时任务。
- 用户在Telegram中对Bot说:“提醒我每天下午5点喝水。”
- 智能体理解意图后,会在内部调用
cron_manage工具,创建一个内容为“提醒用户喝水”的定时任务,执行时间设为0 0 17 * * *。 - 关键一步:智能体会自动将当前对话的“来源频道”(即这个Telegram聊天)作为
announce目标关联到任务上。 - 每天下午5点,任务触发,智能体生成提醒消息“该喝水啦!”,然后
neko的系统会自动将这条消息发送回当初创建任务的Telegram聊天中。 - 用户无需任何配置,就获得了一个完全由自然语言交互创建的个性化提醒系统。
管理与排查
neko cron list:查看所有定时任务及其状态、下次执行时间。neko cron history --lines 20:查看最近20条任务执行历史,包括成功/失败状态和输出日志,是调试任务失败原因的首要工具。- 任务定义存储在
workspace/cron/jobs.json,历史记录在workspace/cron/history.jsonl。你可以直接编辑jobs.json来手动调整复杂的时间表,但修改后需要重启neko或发送SIGHUP信号使其重载配置。
4.3 与外部系统的集成:HTTP网关与Webhook
除了Telegram,HTTP网关是另一个强大的集成点。neko start后,会在127.0.0.1:3000(或你配置的地址)启动一个HTTP服务。
基础交互API
# 发送消息 curl -X POST http://localhost:3000/message \ -H "Content-Type: application/json" \ -d '{"text": "Hello, what is the current time?"}' # 响应是一个流式输出(Server-Sent Events),你可以用工具处理,或使用neko自带的CLI neko message "Hello from CLI"这使得你可以将neko集成到任何能发送HTTP请求的系统中,比如:
- Home Assistant:当传感器触发时,调用
neko网关,让智能体分析情况并生成自然语言通知。 - 自定义仪表盘:构建一个简单的Web界面,与你的私人智能体对话。
- CI/CD管道:在部署完成后,让
neko总结变更日志并通知团队。
实现一个简单的Webhook处理器假设我们有一个第三方服务,当服务器CPU过高时会发送一个Webhook到我们的内部系统。我们可以写一个简单的Python脚本作为桥梁,调用neko来生成告警。
# webhook_listener.py from flask import Flask, request import requests app = Flask(__name__) NEKO_GATEWAY = "http://localhost:3000/message" @app.route('/alert', methods=['POST']) def handle_alert(): data = request.json # 假设data包含 {“host”: “server01”, “cpu”: “95%”} host = data.get('host') cpu = data.get('cpu') # 构造提示词,让neko智能体生成友好且包含行动建议的告警 prompt = f"系统监控告警:主机 {host} 的CPU使用率已达到 {cpu}。请生成一段给运维团队的告警消息,要求语气严肃但清晰,并建议首先检查的top进程。" response = requests.post(NEKO_GATEWAY, json={"text": prompt}, stream=True) # 处理流式响应...(此处简化) for line in response.iter_lines(): if line: print(line.decode()) # 这里可以转发到钉钉、飞书等 return "Alert processed", 200 if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)这样,我们就将一个原始的监控告警,通过neko转化为了更有可读性、甚至带有初步分析的自然语言消息,提升了告警的响应效率。
5. 生产环境部署、监控与故障排查
5.1 以系统服务方式运行(Systemd)
在树莓派或VPS上长期运行neko,最好将其配置为系统服务,实现开机自启、故障重启和日志集中管理。
创建Systemd服务文件sudo nano /etc/systemd/system/neko.service
[Unit] Description=Neko AI Agent Runtime After=network.target # 如果你依赖Ollama,可以加上 After=ollama.service [Service] Type=simple User=pi # 改为你的用户名,不要用root WorkingDirectory=/home/pi # 改为用户家目录 Environment="OPENAI_API_KEY=sk-..." # 也可以从环境文件加载 Environment="TELEGRAM_BOT_TOKEN=..." # 可选:加载环境变量文件 # EnvironmentFile=/home/pi/.neko/.env ExecStart=/home/pi/.local/bin/neko start Restart=on-failure RestartSec=10 StandardOutput=journal StandardError=journal # 安全限制(可选,但推荐) # CapabilityBoundingSet= # NoNewPrivileges=yes # ProtectSystem=strict # ReadWritePaths=/home/pi/.neko/workspace # 只允许写入工作空间 [Install] WantedBy=multi-user.target启用并启动服务
sudo systemctl daemon-reload sudo systemctl enable neko.service sudo systemctl start neko.service sudo systemctl status neko.service # 检查状态查看日志
# 查看全部日志 sudo journalctl -u neko.service # 实时跟踪日志 sudo journalctl -u neko.service -f # 查看最近100行 sudo journalctl -u neko.service -n 1005.2 常见问题与排查技巧实录
在数月的使用中,我积累了一些典型问题的解决方法。
问题1:智能体“遗忘”严重,总是重复问同样的问题。
- 排查:首先检查记忆文件。
cat ~/.neko/workspace/memory/MEMORY.md,看是否为空或接近2000字符限制。检查neko logs,看是否有“Memory is nearing capacity”的警告。 - 解决:
- 手动初始化记忆:如果
MEMORY.md是空的,智能体就没有长期记忆。你可以手动编辑这个文件,写入一些基础信息,例如:“你是我的个人助手,名字叫Neko。用户喜欢被称作[用户昵称]。当前时间是2025年。” - 引导智能体压缩记忆:当记忆快满时,系统会警告。你需要在对话中明确指令智能体去整理记忆。例如:“我看到你的核心记忆快满了,请检查
MEMORY.md文件,删除或概括那些不重要的、过时的信息,保留最关键的内容。” 智能体会使用memory_replace工具来执行这个操作。 - 调整系统提示词:在
config.toml中,你可以通过[agent]部分的system_prompt字段(如果支持)或通过修改记忆文件的开头,加入更明确的记忆管理指令。
- 手动初始化记忆:如果
问题2:Cron定时任务没有执行。
- 排查步骤:
neko cron list确认任务存在且enabled为true。检查next_run时间是否已过。neko cron history查看该任务最近是否有执行记录。如果有记录且失败,查看error字段。sudo journalctl -u neko.service --since "1 hour ago"查看系统日志,过滤“cron”关键词,看调度器是否在正常运行。
- 常见原因:
- 时区问题:Cron表达式使用服务器系统时区。确保你的VPS或树莓派时区设置正确 (
sudo dpkg-reconfigure tzdata)。 - 智能体执行失败:任务触发后,是交给智能体处理的。如果智能体当时因为网络问题调用LLM API失败,整个任务就会失败。查看历史记录中的错误信息。
announce目标无效:如果任务执行成功但你没收到通知,检查--announce参数指定的频道(如Telegram Chat ID)是否正确,以及neko的对应频道配置是否正常。
- 时区问题:Cron表达式使用服务器系统时区。确保你的VPS或树莓派时区设置正确 (
问题3:Telegram Bot 无响应。
- 排查:
- 检查
neko status,确认网关和所有频道(包括Telegram)运行正常。 - 检查配置中的
bot_token和allowed_users是否正确。 - 查看
neko logs,搜索“telegram”相关错误。常见错误是网络问题无法连接到Telegram API。
- 检查
- 解决:如果服务器在国内,连接Telegram API可能不稳定。可以考虑为
neko配置HTTP代理(通过环境变量HTTP_PROXY/HTTPS_PROXY),或者将neko部署在境外VPS上。
问题4:工具调用(特别是exec)执行失败或存在安全风险。
- 安全第一:除非绝对必要,否则在配置文件中禁用
exec工具。如果必须使用,务必在[tools]部分设置sandbox = true(如果支持),并严格限制exec_timeout_secs。 - 权限问题:
neko进程以什么用户运行,就拥有什么权限。如果你用pi用户运行,那么exec调用的命令也拥有pi用户的权限。确保该用户没有不必要的sudo权限。 - 路径问题:在工具中执行的命令,使用的是工作目录(
WorkingDirectory)或exec工具所在的上下文。使用绝对路径更可靠。
5.3 性能调优与资源监控
在树莓派Zero 2W这类设备上,资源就是一切。
- 内存监控:使用
htop或free -m命令监控内存使用。neko二进制本身很小(约10-20MB),但运行时内存占用取决于活动会话、加载的技能以及LLM API调用的响应大小。如果使用Ollama本地模型,内存压力主要来自Ollama进程。 - 优化配置:
- 降低
max_tokens:在[agent]部分,将max_tokens从4096降低到1024或512,可以显著减少单次API调用的数据量和内存占用,尤其适用于本地模型。 - 精简
tools列表:只启用你真正需要的工具。每个工具都会增加一点内存开销和初始化时间。 - 调整日志级别:默认的日志输出可能很详细。如果不需要调试,可以在启动时通过环境变量
RUST_LOG=neko=info来减少日志量,降低磁盘IO。
- 降低
- 工作空间备份:定期备份
~/.neko/workspace目录。你可以写一个简单的Cron脚本(用系统Cron,不是neko的Cron),每天压缩备份这个目录到云存储或其他地方。记忆是无价的。
经过这样一番从设计原理到实战部署,再到故障排查的深度探索,neko已经不再是一个陌生的开源项目,而是一个可以握在手中、部署在边缘、真正为你服务的智能体核心。它的简洁性既是限制,也是其能在最苛刻环境中发光的原因。