“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。
md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。
要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。
在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。
要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。
工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。
写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。
适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。
你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。
全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
Pluviobyte/rnskill:雪踏乌云的 AI Agent Skills 集合——为智能体装上可插拔的“超能力”模块
一个以可复用、模块化技能(Skills)为核心,为 AI Agent 提供灵活扩展能力的开源工具集。
项目背景与痛点:AI Agent 的“技能孤岛”困境
随着大语言模型(LLM)的爆发,AI Agent(智能体)的概念从学术圈快速蔓延到开发者社区。从 AutoGPT 到 BabyAGI,再到各类 LangChain 应用,人们试图让 LLM 不仅会“聊天”,更能“做事”——访问网页、操作文件、调用 API、执行代码。
然而,一个尖锐的问题随之浮现:每个 Agent 项目都在重复造轮子。
- 你想让 Agent 能查天气,得写一段调用 OpenWeatherMap 的代码;
- 你想让 Agent 能搜索新闻,得对接 NewsAPI;
- 你想让 Agent 能读写本地文件,得封装文件系统操作。
这些功能本质上是“技能”(Skills),但大多数项目将它们硬编码在 Agent 主逻辑里,导致:
- 复用困难:换了 Agent 框架,所有技能得重写。
- 扩展繁琐:增加一个新技能需要修改 Agent 核心代码,容易引入 Bug。
- 生态封闭:社区贡献的技能难以标准化分享,每个人都在自己的孤岛上。
Pluviobyte/rnskill 正是为了解决这个痛点而生。它尝试定义一套轻量、标准化的技能接口,让开发者像安装插件一样为 Agent 添加能力,同时让技能贡献者能轻松发布和共享。
什么是 rnskill?
rnskill 的全称是“雪踏乌云的 AI Agent Skills 集合”(SnowStepCloud AI Agent Skills Collection)。它本质上是一个技能(Skills)的注册表与运行时框架,提供:
- 一套 Skill 定义规范(基于 JSON/YAML 描述文件 + Python 实现)
- 一个 Skill 加载器(Loader),用于动态发现和实例化技能
- 一组 内置 Skill 示例(如网页搜索、文件读写、代码执行等)
- 一个 CLI 工具,方便管理和测试技能
核心思想:任何 Agent 只要遵循 rnskill 的接口协议,就能无缝使用所有已注册的技能。
快速上手:5 分钟让 Agent 拥有“超能力”
安装
bash
推荐使用 pip 安装
pip install rnskill
或者从源码安装
git clone https://github.com/Pluviobyte/rnskill.git
cd rnskill
pip install -e .
基本使用:加载并调用一个技能
python
from rnskill import SkillManager
初始化技能管理器,自动扫描内置技能和用户自定义技能目录
manager = SkillManager()
列出所有可用技能
available_skills = manager.list_skills()
print("Available skills:", available_skills)
输出示例: ['web_search', 'file_read', 'file_write', 'python_execute', ...]
获取一个技能实例
search_skill = manager.get_skill("web_search")
调用技能(参数由技能定义决定)
result = search_skill.execute(query="2024年诺贝尔物理学奖")
print(result)
输出示例: {'status': 'success', 'data': '2024年诺贝尔物理学奖授予...', 'source': 'Bing'}
自定义技能:写一个“今日油价”技能
创建一个文件 skills/oil_price_skill.py:
python
from rnskill import BaseSkill
import requests
class OilPriceSkill(BaseSkill):
"""获取今日国内油价"""
# 技能元数据(必须)
metadata = {
"name": "oil_price",
"description": "查询指定省份的今日汽油、柴油价格",
"version": "1.0.0",
"parameters": {
"province": {
"type": "string",
"description": "省份名称,如'广东'、'浙江'",
"required": True
}
}
}
def execute(self, province: str) -> dict:
# 这里调用真实 API(示例用 mock)
# 实际可对接 https://www.oilpriceapi.com/ 等
mock_prices = {
"广东": {"92号": 7.85, "95号": 8.45, "0号柴油": 7.50},
"浙江": {"92号": 7.80, "95号": 8.40, "0号柴油": 7.45}
}
if province in mock_prices:
return {"status": "success", "data": mock_prices[province]}
else:
return {"status": "error", "message": f"未找到{province}的油价信息"}
然后在技能目录注册(或自动发现),Agent 就能调用:
python
manager = SkillManager(skill_dirs=["./skills"])
oil_skill = manager.get_skill("oil_price")
print(oil_skill.execute(province="广东"))
与 Agent 框架集成(示例:LangChain)
python
from langchain.agents import Tool, AgentExecutor, LLMSingleActionAgent
from langchain.llms import OpenAI
from rnskill import SkillManager
将 rnskill 技能包装为 LangChain Tool
manager = SkillManager()
tools = []
for skill_name in manager.list_skills():
skill = manager.get_skill(skill_name)
# 动态创建 Tool
tool = Tool(
name=skill.metadata["name"],
func=skill.execute,
description=skill.metadata["description"]
)
tools.append(tool)
使用这些 Tool 构建 Agent...
核心亮点:为什么 rnskill 值得关注?
1. 极致的模块化与可插拔
rnskill 的设计哲学是“技能即插件”。每个技能都是一个独立的 Python 类,拥有清晰的输入输出契约。Agent 主程序无需知道技能内部实现,只需按约定传递参数即可。这带来了:
- 热插拔:运行时可以动态加载/卸载技能,无需重启 Agent。
- 沙箱隔离(规划中):未来可以每个技能运行在独立进程中,防止恶意技能影响主系统。
- 版本管理:每个技能有独立版本号,Agent 可以锁定特定版本。
2. 统一描述规范(UDS)
每个技能必须包含 metadata 字典,定义了:
name:唯一标识符description:自然语言描述,供 LLM 理解何时调用parameters:JSON Schema 风格的参数定义,包含类型、描述、是否必填returns(可选):返回值格式说明
这个规范让 LLM 可以自主选择技能并填充参数,是实现“自主 Agent”的关键。
3. 内置技能生态(开箱即用)
项目已包含 10+ 个实用技能:
| 技能名称 | 功能 | 依赖 |
|---|---|---|
| web_search | 通过 Bing/Google 搜索网页 | requests |
| file_read | 读取本地文件(支持 txt/json/csv) | 无 |
| file_write | 写入本地文件 | 无 |
| python_execute | 执行 Python 代码片段 | 无(需注意安全) |
| shell_command | 执行系统命令(受限) | 无(需注意安全) |
| current_time | 获取当前日期时间 | 无 |
| wikipedia | 查询 Wikipedia 摘要 | wikipedia-api |
| weather | 查询天气(需 API Key) | requests |
| calculator | 数学表达式计算 | 无 |
| url_fetch | 获取网页内容 | requests |
4. CLI 工具:技能管理器
bash
列出所有技能
rnskill list
测试某个技能
rnskill run web_search --query "Python 3.12 新特性"
验证自定义技能格式
rnskill validate my_skill.py
从远程仓库安装技能(规划中)
rnskill install author/skill_name
5. 与 LLM 原生亲和
所有技能的 description 和 parameters 都是自然语言描述的,这直接适配了 LLM 的 Function Calling 能力。实际上,rnskill 的设计深受 OpenAI Function Calling 和 Anthropic Tool Use 启发,但更通用、更轻量。
适用场景
场景一:快速构建个人助手
用 rnskill + 任意 LLM API(OpenAI/Claude/本地模型),可以 30 分钟搭建一个能搜索、能记笔记、能处理文件的个人知识助手。
场景二:企业 RPA 自动化
将 ERP 操作、数据库查询、邮件发送等封装为 rnskill 技能,让 LLM Agent 按自然语言指令执行复杂工作流。
场景三:AI 编程助手
将 python_execute、git_operation、code_review 等技能组合,构建能自主调试代码的 Agent。
场景四:教育实验
学生可以轻松为 Agent 添加新技能,理解“工具调用”和“模块化设计”的思想,非常适合 AI 课程教学。
同类项目对比
| 特性 | rnskill | LangChain Tools | OpenAI Plugins | AutoGPT Plugins |
|---|---|---|---|---|
| 设计哲学 | 轻量、通用技能框架 | 与 LangChain 深度绑定 | 专为 ChatGPT 设计 | 专为 AutoGPT 设计 |
| 接口标准 | 自研 UDS 规范 | Tool 接口 | OpenAPI 规范 | JSON Schema |
| 框架无关 | ✅ 可接入任何 Agent | ❌ 仅 LangChain | ❌ 仅 ChatGPT | ❌ 仅 AutoGPT |
| 本地运行 | ✅ 完全本地 | ✅ 可本地 | ❌ 需云服务 | ✅ 可本地 |
| 技能热加载 | ✅ 支持 | ❌ 需重启 | ✅ 但受平台限制 | ❌ 需重启 |
| 社区生态 | ⭐ 起步阶段 | ⭐⭐⭐ 成熟 | ⭐⭐⭐ 丰富 | ⭐⭐ 中等 |
| 安全沙箱 | 规划中 | 无原生支持 | 有(平台控制) | 无 |
| 学习成本 | 低(几十行代码) | 中(需理解 Chain) | 中(需写 API) | 中(需理解插件规范) |
rnskill 的核心差异化优势:
- 框架无关性:不绑定任何 Agent 框架,LangChain、Semantic Kernel、CrewAI、甚至自研框架都能用。
- 极简设计:一个技能就是一个 Python 文件,无复杂配置。
- LLM 优先:元数据设计直接面向 LLM 的自然语言理解。
局限性与未来展望
当前局限
- 安全机制不完善:
python_execute和shell_command技能存在代码注入风险,建议在沙箱环境使用。 - 技能市场缺失:目前只能本地管理技能,缺乏类似 npm/pip 的中心化仓库。
- 并发与性能:技能调用是同步的,高并发场景需自行包装异步。
- 文档偏少:项目较新,API 文档和示例有待丰富。
路线图(根据 Issues 和 Roadmap)
- 技能沙箱执行(Docker/Subprocess)
- 远程技能仓库(如
rnskill install) - 异步技能支持
- 技能链(Skill Chain):将多个技能组合成复合技能
- 图形化技能编辑器
- 与 MCP(Model Context Protocol)集成
总结:值得关注的开源新星
rnskill 不是要取代 LangChain 或 AutoGPT,而是试图解决 AI Agent 生态中一个基础但关键的问题:技能的标准化与复用。它像 AI 世界的“USB 接口”——让不同厂商的设备(技能)能即插即用。
对于个人开发者,它降低了构建 Agent 的复杂度;对于团队,它提供了技能管理的统一规范;对于社区,它有望催生一个技能集市。
虽然项目尚在早期(261 Stars),但设计思路清晰,代码简洁,值得每一位对 AI Agent 感兴趣的开发者关注和贡献。