Scientific Agent Skills v2.72.0:按固定版本接入科研 Agent 技能

本文介绍Scientific Agent Skills v2.72.0版本的标准化接入方法,涵盖技能发现、版本固定、环境准备、链路验证及分层排错。强调按SKILL.md明确技能元数据,区分插件加载与运行依赖,支持插件结构(plugin.json + skills/),适配支持Agent Skills的客户端。要求按任务粒度选取技能、隔离Python环境(uv sync)、核验数据库凭据与许可,并在升级时重点检查被移除的docx/pdf/pptx/xlsx技能变更。

Scientific Agent Skills v2.72.0:按固定版本接入科研 Agent 技能

如果技能目录已经复制到电脑,Agent 却没有按预期处理科研任务,先检查三个位置:宿主有没有发现技能、依赖有没有装在正确环境、当前输入是否符合技能要求。Scientific Agent Skills 的接入可以沿这三层排查,避免把所有问题都归结为提示词不够长。

本文以 K-Dense 的 v2.72.0 为资料基准,介绍包结构、版本固定和首次验证思路。它是科研 Agent 技能库,包含面向专业工具、数据库和研究工作流的方法说明,需要支持 Agent Skills 的客户端配合使用。

技能文件、执行环境与结果复核的关系示意

明确接入对象

版本说明列出 177 个技能。每个技能用 SKILL.md 描述用途、流程与版本元数据,并按需提供参考文档、代码例子、辅助脚本或模板。安装这类文件,解决的是让宿主发现并向 Agent 提供相应方法的问题。

数据库账号、科学计算包、系统工具属于另一层。技能能够说明怎样调用它们,但不会因为文件被复制,就让所有依赖自动出现在环境中。排查前最好先画清这两层关系:一个是可被加载的方法,另一个是执行该方法实际需要的工具。

仓库还提供 plugin.json 和 skills/ 组成的 Agent Plugins 包结构。支持这一标准的客户端可以把它作为插件识别;不同客户端对安装位置、刷新与元数据的处理存在区别,应先确认所用宿主实际支持哪条加载路径,不同时尝试多套路径造成重复发现。

先固定版本,再选入口

README 提供了常见安装器与 GitHub CLI 两种方式。下面是其中的 GitHub CLI 版本固定写法,前提是已具备 GitHub CLI v2.90.0+ 与 gh skill 功能。使用前可检查客户端版本,避免把缺少子命令误判为技能包问题:

gh skill install K-Dense-AI/scientific-agent-skills --pin v2.72.0

这里的目的是使用确定的发行标签。若改用本地归档,应保留这个标签对应的完整提交信息,并按宿主配置导入相应技能目录。项目源码归档本身不提供通用的桌面安装向导,不需要寻找一个名为 setup 的安装程序。

文档也支持按具体技能选择,例如 scanpy。首次接入可以只取当前任务会用到的技能,先检查其 SKILL.md,再决定是否引入更多关联项。这样发现问题时,能缩小到具体技能、环境与任务,而不必同时追查整个库。

固定技能版本也便于复查:一段昨天可以执行的流程,今天如果结果不同,需要同时检查数据、依赖和技能是否变化。只保存一份聊天记录,通常看不出这些变化来自哪里。保留版本与依赖信息,才能减少这类不确定性。

准备环境时看哪个要求

仓库 README 对仓库工具列出 Python 3.13+,并使用 uv;系统范围包括 macOS、Linux 和 Windows 的 WSL2 环境。不要据此把“原生 Windows 上每个科研依赖都能运行”写进环境结论。

单项技能的 compatibility 可能规定另一组 Python 范围、包版本、系统工具及凭据。应先读选中技能的要求,再建对应环境。尤其不要为了满足仓库工具版本,直接替换一个既有科学计算环境的解释器;先判断运行的是仓库验证工具还是具体科研工作流。

uv sync 安装的是仓库开发与验证工具,并非全部科研包。更适合的组织方式是按工作流隔离环境,在任务记录中说明使用哪个解释器、哪些包和版本。Agent 后续执行时也应指向这套环境,避免出现命令行能导入包、Agent 所用解释器却找不到包的情况。

外部服务同样需要单独配置。Database Lookup 介绍了 80 个数据库来源,加上专用技能和多数据库包,形成库整体所说的 100 多个数据库覆盖。各来源可能公开、需注册或需许可,不能把目录中出现一个名称理解为已经获得访问权限。

数据库查询中的分页、数量核对与来源记录

图1:数据库查询的流程示意。K-Dense Inc.,MIT 许可。

用一项小任务验证链路

首次验证建议分成三个可观察阶段。

  1. 确认宿主显示或能发现所选技能;如果找不到,核对扫描目录、文件层级与宿主加载设置。
  2. 让 Agent 先说明输入要求、拟用工具、依赖与输出,不立刻启动完整分析。
  3. 使用小型样例执行获准步骤,检查产物和日志,再扩大数据量与流程范围。

比如选做数据整理,可以要求 Agent 先列字段、样本数量、缺失情况和准备采用的方法。这样能先发现输入理解错误。若直接要求生成一份完整研究报告,早期错误可能藏在很长的文字与图表里,最后才被看见。

验证产物时,不只检查文件是否存在。还要核对数据单位、列名、筛选条件、输出记录数量,以及结果是否保留必要的来源。对一个已知答案的小样例,这些检查可以建立清楚的基线;以后更换数据或技能版本,也有可比较的对象。

常见问题按层排查

找不到技能时,先看文件是否位于宿主实际扫描的位置,以及子目录中是否存在 SKILL.md。插件结构可被某个客户端识别,不代表任意目录深度都会被另一个客户端扫描。不要用重复拷贝整个库的方式掩盖路径问题。

技能可见但工具失败时,检查正在执行的环境、包是否存在以及系统工具是否可访问。涉及数据库再看凭据、网络和服务权限。此时重新加载技能可能无助于解决依赖或授权问题,应按报错落点处理。

流程运行但结果不合理时,回到输入与方法:有没有把原始数据当成已处理数据、是否缺少样本说明、参数是否合适、输出有没有忽略单位或批次条件。这属于科研流程验证,不能用“代码没有报错”替代。

README 的示例展示了多技能串联方式,适合帮助理解哪些环节可以连接。它们没有替读者证明某份实际数据已经具备所有前提。将示例改成自己的任务时,要逐一补齐输入、依赖和检查点。

升级到这一版时核对文档能力

v2.72.0 移除了 docx、pdf、pptx、xlsx 四个原先按 Anthropic 自身许可打包的技能,库中数量相应变为 177。已有脚本或提示词如果调用这些入口,需要先检查当前包里是否仍有对应能力,不能沿用旧版目录清单。

Scientific Slides 的文档改为用 PptxGenJS 或 python-pptx 构建,并通过 LibreOffice 与配套脚本进行渲染和验证。需要演示文稿工作流的人可以评估这一条路径,但不能把它自动等同于四个被移除技能的完整替代。

各技能还可能有不同许可,应查看 SKILL.md 的 license 字段并保留相应声明。

接入完成后,建议保留一份可复查的最小记录:技能标签与提交、实际依赖、样例输入、执行步骤和检查结果。下一次引入新技能时沿用这套记录,比只保留“安装成功”四个字更有帮助。

GitHub 仓库:https://github.com/K-Dense-AI/scientific-agent-skills

下载与获取

百度网盘:https://pan.baidu.com/s/17TgpOLmeVFSecmmPMi42cg?pwd=lq7j 提取码:lq7j

夸克网盘:https://pan.quark.cn/s/fb9ba646112c

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值