【SKILL开发实战演练】从零开始构建自己的SKILL —— 科研脚手架(Research Scaffold)SKILL开发记录

之前写过一些关于SKILL的最佳实践的帖子,看到能给佬们分享一些自己学到的新知识非常有成就感。在佬们的一声声夸赞中逐渐迷失自我(不是)

那既然讲了最佳实践,最后还是要落到实践中,最近刚好博士要写开题了,就以此为契机将其作为一次难得的实践机会。因为SKILL的设计理念非常适合这种既有结构要求且又需要创意的任务。

刚好上周人类之光科研板块的建立,于是我开始了这个项目。
那为什么不放在人类之光板块呢? 因为个人觉得这是一次不错的开发经验分享,如果有佬友们正踌躇于SKILL开发,那么希望这个经验可以让他们迈出第一步,如果已经开始开发那么也希望可以学到一点新东西

(之后可能会单独在人类之光板块发一篇简单说明怎么使用该SKILL的帖子,助力每个科研梦想,后续怎么优化该SKILL也可能会再该板块进行讨论,有兴趣的朋友可以关注一下(想干的事情越多就觉得时间越少 唉

Nick-Hogo/research-scaffold: A SKILL-based scaffold for research proposals

Git项目链接就先放上面了,欢迎佬们提issue以及PR!

写在前面

在正式开始项目之前也有些话相对初涉科研的萌新们讲,虽然在下科研水平一般,也只能说是初窥门径,但有些话还是想说在前面,不太重要也许也只是写给曾经自己:

所谓科研,其实都是存在一系列的内在逻辑的,绝对不是严格的八股文,要点在于逻辑自洽,自成体系。使用专业缜密的思路对问题进行介绍以及剖析。

对于第一次接触的科研小白们,这套分析问题,解释问题的逻辑其实很难独自建立起来的,需要怎么组织内容的撰写,有哪些坑,技术深度以及创新点如何很好的叙述,只能依靠自己的感觉来完成报告的撰写,这就导致了尽管自己已经很努力了,自我感觉写的报告已经很好了,但由于缺少更高层面的指导,导致实际上问题一堆。

而对于真正想入门科研的小白来说这一关也是必须要自己想办法克服的,一个好的开题报告不止可以帮你应付毕业要求,也可以称为入门科研的叩门砖,也可以作为之后科研的Road Map,既然如此那么就让这个这项能力称为一个SKILL,让所有人都能轻松的开启这一步。

在下科研能力并不如很多我认识的博士同学一样出色,但仍然想将一些自己的经验跟理解,以这种形式分享出来,也欢迎如果有见解的同学,进一步完善SKILL的构建。

把大象装进冰箱分几步?

[!Note] 完成比完美更重要:
无论是写开题报告,写SKILL还是做任何事,一开始就将所有细节需求都想明白是一件几乎不可能的事情。
所以真正困难的不是怎么做到完美,而是怎么开始。
所有的细节都可以在后续的执行中不断完善以及补足,所以不要被一件很困难的事情吓到。

所以首先我们将任务进行拆解,我们明确一下这个SKILL的目的:

通过不断交互,让开题报告可以结合个人实际情况,按照模块根据个人需求不断扩充和调整。

为了达成这个目的大致将步骤分为以下几个部分:

    1. 意图对齐: 通过尽量少且高信息密度的问题,引导模型快速识别用户的研究意图、学科背景与开题报告的核心方向,建立个性化生成的上下文基础。
    1. 信息检索: 为后续生成提供“可核查的事实锚点”
    1. 结构冻结 : 在明确研究方向与约束条件的前提下,自动构建结构清晰、逻辑自洽的开题报告总体框架,作为后续内容扩展与调整的骨架。
    1. 渐进式生成: 围绕既定大纲,通过持续交互按模块逐步展开具体内容,并根据用户的反馈动态修正研究重点与表达方式。

确定大纲以及流程是我们进行SKILL开发的第一步,根据步骤进行逐步构建,这比单次生成具有更高的可控性以及灵活性,路要一步步走,饭要一口口吃。所以只要每次进步一点点,最后就能积累出意想不到的收获!

Step 1.意图对齐

在构建SKILL的时候需要记住两件事情:

1.相信现在的大模型已经足够聪明,具有很强的规划以及结构组织能力
2.相信大模型永远不能完全理解你的需求,永远不能放弃人为的介入以及调整

这两点看似矛盾,但实际上围绕着一个中心,大模型作为工具是好用的,但是决定工具上限的不是工具本身,而是使用工具的人,所以当你拿着工具的时候一定不要因为工具的便利而放弃自己的思考以及实践。

Tips:工具无法代替人,只有会用工具的人代替不会用工具的人

这里的第一步在于将你的抽象需求转化为文本可描述的详细文本,特别是需要有一些高度凝练的指导性方针,这正是大模型所具备的 出色能力 之一:

这里我是用web GPT作为 中译中 的工具,相较于API以及Claude Code,Web端的应用经过Openai的微调在用户意图感知以及交互上会好一点,然后我们将这里的输出存到本地(命名为input.md)作为指导性文件,给之后的SKILL生成提供大量有效的上下文,进一步发挥模型的能力。

在纲领性文件(input.md)的指导下,额外提供提示词(注意文件结构划分,以及上下文披露),这两句话就像开关,可以开启模型对应的能力(项目文件管理,渐进式披露),为什么会知道有这些能力呢,当然是看过最佳实践啦,哈哈哈,引流一下

这样我们生成了第一版的初始SKILL用于辅助用户快速构建开题报告关键信息

这里我之前安装过Claude 官方的Skill-Creator这个SKILL用于辅助创建SKILL,但正是因为上面指明了关键词 项目文件管理 以及 渐进式披露,因此不仅对文件参考内容进行目录划分(reference下的两个文件),并指出了后续的迭代方向辅助我们进一步思考项目的完整性。

而我们的工作也远没有到此结束,我们需要严格检查生成文件的合理性以及与我们之前构想的差异,需要仔细比对千万不要觉得大模型输出的一定是对的或者是完美符合你的构想,这里我主要观察到下面的问题:

由于Claude Code计算机背景更丰富,因此在进行问题讨论的时候会自动带入计算机背景的先验知识,导致SKILL的使用场景受限(对生化环材 工商管理等领域的同学可能并不适用)

因此笔者进行下面微调:

此时笔者并没有完全设想好该功能具体的实现方式,决定将这部分工作交由模型进行选择:

Claude 提出了Adapter的方案,笔者瞬间就明白这是设计模式中Adapter模式,并且觉得是该问题很适合的一种抽象方案(这里其实体现了设计者对于知识的掌握程度对于方案选择的重要性,如果笔者没学过设计模式可能会对该方案的合理性产生疑虑)

之后就是对SKILL的Phase 1进行进一步的完善:

这里的Adapter可以说为后面的学科拓展保留了灵活性,同时也给项目定下了这种Adapter的基调,欢迎后续不同领域的同学后续完善相关提示词的构建

Step 2.信息搜集

这里需要使用Claude 调用搜索工具来进行相关信息的检索,这里官方的WebSearch可能会存在局限,结合之前开发的grok-search工具来广泛的调用grok的检索能力

【多模型MCP协同新实践】突破Claude Code 官方 Web_Search 的安全内容审查 — 检索增强的 Grok MCP ( 补全 Vibe Coding 的最后一块拼图 - 开发调优 - LINUX DO

这样就可以尽可能全的搜集领域相关信息,同时为了满足学术专业性的要求,在提示词中添加额外的说明,这里需要尽可能清晰的说明自己的需求:

Claude 在获取需求之后对部分细节进行进一步二次确认,只需要根据自己需求进行选择即可

然后就是后续的规划以及完善:

这是新的文件目录,重点在于引入了知识库以及领域文章的注册表辅助后续进行检索。

这里的关键设计在于使用循环工作流来对文献进行扩充,因为学术研究的要求就是需要有丰富的参考文献以及相关背景调研要足够的丰富,同时也对真实性具有非常严格的要求。

这里还将搜索到的信息以及文献,关键观点以文本的形式进行记录,也是方便后续进行论文的引用以及事实核查。

Step 3. 结构冻结

这一步骤的目的在于形成一个具有良好结构的开题报告框架,包括各级标题以及内容划分。

这一步的关键在于由于开题报告通常需要涉及大量待填充的内容,而模型的上下文能力并不足以支持一次性生成具有良好结构,逻辑清晰,模块逻辑性强的全文.

为了防止模型在生成过程中不仅能保证模块内的逻辑流畅,以及模块间的逻辑关联,需要让模型首先将全文划分为具有强逻辑关联的子模块,预先构建模块间的逻辑链条,方便后续渐进式生成时充分挖掘模块间的逻辑关联。

类似的经过上述的迭代之后我们得到了更新的大纲生成工作流:

Step 4.渐进式生成

这里由于之前几步已经完成了非常详细的意图确认与分析,生成了具有明确结构的大致框架,这里的渐进式生成则是在上面的基础上制定了一些更细节类似写作风格,问题剖析方式,参考文献以及全文的联系怎么构建的信息,如下:

这样一个具备初步功能的SKILL就构建完成,其实第3步跟第4步中间还夹杂了大量个人的调整,但因为篇幅原因就不赘述了,其实目前对于Step 4渐进式生成中应该还存在大量可以优化的地方,不过就像我说的 完成比完美更重要,所以在连续肝了几天之后,笔者就暂时将这部分细节先缓缓,等后续再完善以及补充吧 2333

后续优化:

现在我们有很多参考文献在reference中,为了进一步方便管理以及后续修改,我们对文件路径进行进一步的细化以及整理,根据Step我们划分为若干个子文件夹:

至此大功告成,后面就可以修修补补了,笔者也是用上了自己的SKILL来写自己的开题报告了。

其实这个过程中感触最深的就是,虽然大模型提供了个人开发者相较于之前几乎可以称之为外挂的编码能力以及效率,但实际上对开发者个人的要求也是提高了:

需要卡法这具有独立的思维,能及时的发现并辨别模型的做法以及方案可能存在的不足或者偏差,同时知道如何修复这种偏差,这种能力个人觉得将成为Vibe Coding时代,区分能力高低的重要凭借。

46 个赞

:face_holding_back_tears: 太强了!

2 个赞

水哥速度就是快

佬真强,值得学习提示内容

1 个赞

卧槽,有点意思啊,能不能再做个写综述的

有出版社约我综述稿我就写(开始白日做梦

感谢佬友分享,学习一下

强,谢谢佬

大佬在搜索文献环节需要用你之前做的那个grok mcp工具吗,效果会不会更好 :thinking:

这两天忙着开题去了
目前的设计是再使用skill的时候会对搜索工具进行判断,如果存在grok mcp的话就会使用grok mcp代替原本的官方search,没有的话就使用原生的search
我使用下来还是感觉grok的在信息的搜索上会好很多