说实话,我第一次看到“GPT6国产平替”这五个字的时候,下意识觉得又是营销号在整活。GPT-6作为正式产品根本还没影,大家喊这名字,更多是在给“能写出高水平论文的推理模型”找个代号。真正让我上头的不是这个热词,而是这套学术写作 Skill。把国产模型和一个设计得当的 Skill 组合起来之后,我在两周内从“让 AI 写论文靠运气”变成了“让 AI 按流程写论文”,产出了一篇能直接投出去的经济类综述初稿。这套东西适合什么人?论文写到一半卡住的研究生、要给课题组搭标准化写作流程的导师、以及所有嫌“把需求丢进对话框”太碰运气的人。
1. 为什么学术写作需要一套 Skill,而不是直接把论文需求丢给 AI
先说个反直觉的结论:你让同一个模型用普通对话写论文,和让它加载一个 Skill 写论文,产出的质量差距不是 20%,是好几倍。问题不出在模型变聪明了,而是它的工作方式从“自由发挥”变成了“按流程执行”。
普通对话式写作最大的毛病是没边界。你把研究方向、目标期刊、字数要求一股脑丢进去,模型确实能吐出一堆文字,但它不知道自己是“学术导师”还是“热心网友”。于是你得到的内容经常是结构均匀、语气平稳、看起来什么都对,仔细一读什么也没论证。学术论文恰恰是最不适合“一次生成”的文本类型,它需要立论、证据、综述、方法论、结果推导、讨论回扣,每一步都有严格的逻辑契约。这一步没锁死,后面全盘崩。
Skill 解决的就是这件事。它本质上不是插件,也不是某种神秘的“外挂”,而是一份可执行的写作方法论文档——通常是SKILL.md格式,放在 Agent 能读取的技能目录里。当模型启动这个技能后,它不再自由生成,而是按照文件里的章节,先读角色设定,再做选题论证,再输出大纲,再分段写正文,每一步都有明确的输入和输出要求。说得直白点,就像你给代笔作家一份“采访提纲+排版白皮书”,而不是只说一句“帮我写篇好文章”。
1.1 直接对话式写作的四个翻车点
我见过太多人兴致勃勃地用 AI 写论文,然后被四个老问题反复折磨。
第一,结构千篇一律。不管你的研究是计量经济学还是教育学案例,模型都会给你摆出“引言—相关工作—方法—实验—结论”的骨架。它不理解目标期刊的偏好,不理解你的数据特点,更不理解哪些章节应该前置、哪些应该压缩。第二,逻辑空转。每一段读起来都通顺,但段与段之间没有递进关系,整个章节像一盘散沙。最典型的表现是引言部分:讲背景、讲意义、讲空白,然后直接跳到“本文结构如下”,中间少了“从现实矛盾到研究缺口”的关键步骤。第三,引用幻觉。这是最要命的。模型会一本正经地编出作者、年份、期刊名,甚至 DOI 都是假的。你不逐条去数据库核实,投出去就是学术不端隐患。第四,术语不准。外行话满天飞,比如把“区位选择”写成“位置选择”,把“内生性问题”解释成“内部矛盾”,审稿人一眼就能看出来这不是行内人写的。
这四个问题不是换个更大参数的模型就能解决的,因为它们本质上属于“过程失控”。模型没有被告知“你要像审稿人一样挑剔”,也没有被告知“每段必须先明确功能再动笔”,所以它选择了自己最熟悉的平均路线。Skill 的价值恰恰是把这些隐藏需求显性化。
1.2 Skill 本质上是一份“可执行的写作方法论文档”
你可能听说过 Agent 的 Skill 概念:在支持 Skill 机制的编辑器或客户端里,一个 Skill 就是一个文件夹,核心是SKILL.md,外加辅助的模板、词汇表、示例文件。Agent 会读取这份 Markdown,把它当作操作手册。它对你说话的语法、输出的格式、工具的调用方式,全都被手册约束住。
我理解 Skill 是一种过程管理工具。它不负责替你想出高深见解,它负责的是逼你(和模型)在每个环节只干一件事。比如写文献综述时,Skill 会先让你列出“代表人物、核心争议、研究空白”,而不是直接写一段综述。这样做的好处是,模型每一次只面对一个小任务,上下文不容易乱,你也方便在中间介入修改。对学术写作来说,这是最重要的特性:你不需要模型一口气写三万字的博士论文,你需要它像流水线一样,一步一步把零件加工好,最后你在总装线上亲自把关。
至于“GPT6 国产平替”这个说法,我把它当作一个流量标签来理解。真正落地的时候,我用的是一套国产模型作为推理底座,配合这套 Skill 做学术任务。效果我不敢说“无人能及”,但我能确认:在稳定度和可控性上,它远远超过了我过去所有“直接把需求丢给对话框”的尝试。
2. 学术写作 Skill 的核心工作流:我按这六段来组织
设计 Skill 的第一步,不是写提示词,而是定义工作流。我参考的是国内期刊和普通国际期刊的通用审稿逻辑,把一篇学术论文从选题到返修拆成了六个阶段,每个阶段都有独立指令和独立的产出物。
这六个阶段分别是:选题论证、文献地图、大纲锁定、分段正文、引用结构化、审稿模拟。每个阶段之间是严格串行的,上一个阶段的输出会成为下一个阶段的输入。这样做的好处是,你可以在任何一步插入人工判断,而不是等模型把整篇论文吐出来才发现方向不对。
2.1 选题论证:先输出“选题卡”而不是正文
我让 Skill 的第一步永远不是写文章,而是输出一张选题卡。选题卡包含四格内容:研究问题、预期贡献、创新点、可行性风险。模型需要先针对这四个维度逐一回答,并给自己打分。
比如你输入“共享经济平台监管的演化逻辑”,模型会先拆出:研究问题是什么?是监管滞后还是监管过度?预期贡献是提供一个新的分析框架,还是用某地数据做实证?创新点不能写“填补空白”,必须写具体到方法、数据或视角。如果选题卡里出现“意义重大”“很有价值”这种模糊表述,Skill 会直接要求重写。这一步看起来简单,但能过滤掉一半以上的假大空论文开题。
2.2 文献地图:让模型区分“可核验”和“印象”
到了文献阶段,我特别强调一件事:不要迷信模型对文献的记忆。Skill 会要求模型输出一张文献地图,每条记录包含作者、年份、核心观点、局限,并且必须带一个“可核验性”字段,分三档:可从公共数据库核验、可通过标题搜索核验、无法确认来源。
这是防幻觉最有效的手段。模型如果找不出一条真实文献,它会诚实标注“无法确认来源”,而不是给你编一个《Journal of Applied Something》。有了这张文献地图,你再逐条去数据库核实,把“可核验性”低的条目删掉或替换。整个流程下来,你手里的文献列表是经得起审稿人推敲的。
2.3 大纲锁定:从段落到标题逐层排布
大纲阶段不能只列章节标题。我让 Skill 输出的是带论证功能的大纲:每个三级标题下面,必须写明这段文字要完成什么动作。比如“引言第三段——从现实背景过渡到具体研究缺口”“文献综述第二段——比较两派观点并指出未解决的张力”。
这样做有一个立竿见影的好处:写完大纲之后,你基本已经能判断这篇文章能不能成立。如果某个段落的“功能”和其他段落重复,或者逻辑跳跃,此时改大纲的成本极低。等大纲定稿,后面的正文写作就变成了执行任务,而不是继续构思。
2.4 分段写作:一次只解决一个论证单元
有了大纲,我强制 Skill 不要一口气生成整篇,而是分段生成。每段提示词里包括当前段落的功能、目标期刊的读者群、上一段的结尾结论,以及限定字数。分段写作一方面能减少模型长文生成时的“上下文漂移”,另一方面也方便你逐段润色。
比如要求写“引言第二段”,Skill 给出的提示片段是这样的:
你在撰写一篇应用经济学论文,目标期刊是某CSSCI期刊。当前只完成引言第二段,该段功能是从宏观政策背景过渡到现实矛盾。要求:不少于350字,使用领域术语“监管套利”“平台外部性”,段尾用GB/T 7714格式标注2条参考文献,并标注可核验性。
模型输出完这一段后,我马上检查,不满意就重生成这一段。等所有段都通过,整篇拼接起来,质量比一次性生成稳定得多。你可能会觉得分段慢,但学术写作本来就不该图快。
2.5 引用结构化:让 Skill 输出可导入的参考文献记录
每次生成带引用的段落后,我会让 Skill 顺手输出一条结构化引用记录,而不是只在正文里带括号。记录格式用最通用的 BibJSON 或 BibTeX,再通过脚本转成 Zotero 或 EndNote 可导入的条目。
这条记录里必须包含完整字段:作者、标题、期刊、年份、卷期、页码,以及一个“待核验”标记。有了这个设计,你最后整理参考文献时不再需要从头翻网页,只需批量导入,然后人工检查“待核验”标签。对一篇三十条参考文献的综述来说,这能省下大半天时间。
2.6 审稿模拟与返修:让 Skill 自己挑剔自己
最后一个阶段是模拟审稿。我让 Skill 换一个角色设定:一个严格、较真、不近人情的匿名审稿人。它会阅读前五个阶段产出的完整论文,输出一份审稿意见,把问题分成 Major 和 Minor 两类,并且给出行号或段落定位。有了这份意见,我再把它作为新的输入,让 Skill 针对每个 Major 问题逐条修改。
这样一圈走下来,论文相当于经历了一次“内部预审”,很多低级漏洞在提交之前就被补上了。
3. 搭建 Skill 的关键工程细节:目录、触发条件、提示模板一次到位
理论说完了,来点能直接抄作业的工程细节。Skill 的目录结构和 Markdown 文件并不复杂,真正决定好不好用的是三个点:元信息里的触发词写得好不好、工作流指令的粒度够不够细、变量隔离做得到不到位。
3.1 一份可运行的 SKILL.md 结构
我习惯把学术写作 Skill 放在独立的文件夹里,最小可运行结构如下:
academic-writing/ ├── SKILL.md ├── templates/ │ ├── outline_template.md │ ├── section_template.md │ ├── reference_template.bib ├── vocabularies/ │ └── academic_terms.csv └── examples/ └── sample_section.mdSKILL.md是技能主文件,Agent 启动技能时会优先读取它。templates放输出模板,比如大纲模板、分段正文模板,模型会照着模板的字段填空。vocabularies放领域术语表,用 CSV 维护中英对照和禁用词,这样不同论文项目之间不会互相污染。examples放一段高质量示例输出,方便模型模仿句式和结构。
我特别建议你在SKILL.md里引用这些辅助文件,而不是把所有提示词堆在一个文件里。原因很简单:可维护性。后续你要优化术语表,只需要改 CSV;要调整输出格式,只需要改模板。如果全部塞在提示词里,改一处就可能牵一发动全身。
3.2 YAML 前置块与触发词
SKILL.md开头需要一段 YAML 前置信息,用来告诉 Agent 这个技能叫什么、什么时候应该启用。我的写法如下:
--- name: academic-writing description: 用于学术论文写作、修改、投稿润色。当用户需要“写论文”、“改论文”、“润色一段学术文字”、“生成论文提纲”、“处理审稿意见”等任务时自动调用。 allowed-tools: - Read - Edit - Write - WebSearch ---这里最容易踩的坑是 description 写得太含糊,比如只写一句“帮助用户写学术文章”。Agent 很可能在用户说“帮我改一段文字”时不触发,因为“文字”太泛了。要把触发词写得足够具体:论文、润色、参考文献、审稿意见、提纲、研究背景。反过来说,也不要写得太宽,否则任何写作任务都会触发学术 Skill,反而干扰其他场景。
3.3 工作流指令的写法:Context、Task、Format、Example
每一个工作流步骤,我都会用四段式来写提示指令:角色与背景(Context)、要完成的任务(Task)、输出格式(Format)、参考示例(Example)。这四段缺一不可,尤其不能省略 Example。
举例来说,分段写正文这一步的指令片段:
## Step 3:生成段落 Context: 你是在撰写一篇应用经济学论文,目标期刊偏好实证与案例结合。 Task: 根据上一阶段输出的大纲,只完成“引言”第2段。该段功能是从宏观政策背景过渡到具体研究缺口。 Format: 每段不少于300字,段尾用GB/T 7714格式列出参考文献,并标注该文献是否已核验。 Example: 从2015年以来,共享经济平台的扩张改变了传统监管的时点与对象……Model 在生成时会把 Example 当作风格锚点,这样产出的文本不会突然飘成鸡汤文或营销号。如果某一段的输出风格不对,我优先检查 Example 有没有给到足够贴近目标期刊的句式。
3.4 变量与项目记忆:一个 Skill 服务多个论文项目
同一个学术写作 Skill,不可能只用来写一篇论文。我给每个项目建一个project_config.yaml,里面声明研究方向、目标期刊、引用格式、核心论点、禁用词列表。Skill 在开始任务前先读这个文件,把它注入到上下文里,这样模型就能区分“这是经济学论文项目”和“这是教育技术论文项目”。
project: gig-economy-regulation research_field: 应用经济学 target_journal: 经济学动态 citation_style: GB/T 7714 core_arguments: - 平台监管存在“工具依赖”惯性 - 监管演化受技术形态与利益博弈双重驱动 forbidden_terms: - 综上所述 - 首先其次 - 具有重要意义项目配置与 Skill 本体分离,是团队协作时最好的实践。你改 A 论文的术语表,不会污染 B 论文的配置。每个项目目录下有自己的 config 文件,Skill 只负责提供方法论,不携带任何具体项目记忆。
4. 国产模型平替到底行不行?我拿两篇论文做了对照
讲完了 Skill 设计,再聊一个更实际的问题:国产模型跑这套流程,能跑得动吗?我前后用了两篇论文做对照,一篇是综述类,一篇是实证类。先说结论:能跑,而且稳定度比我想象中高,但有两个前提——你必须把任务切得足够细,以及你必须接受人工核对引用。
我为什么不直接用国外付费大模型?理由有三个:成本、接口可控、私有部署。国产模型的 API 价格普遍更友好,而且很多服务兼容标准的 OpenAI 协议,换底座几乎不用改代码。更关键的是,在课题数据没有公开之前,很多研究团队希望把生成过程放在内网或私有化服务器上,这时候国产开源权重模型几乎是唯一可选项。
4.1 选型原则:不是看单项分,而是看“长文稳定性”
网上评测满天飞,但我的选型原则很简单:一是中文术语准确度,二是长上下文不丢逻辑,三是输出格式的纪律性。推理竞赛题做得好不一定会写论文,论文写作更看重持续输出的稳定性。
我实测下来,主流国产模型在术语准确度上已经追得很接近,真正拉开差距的是长文生成过程中的逻辑漂移。所以我把大部分任务拆成“分段写作”,让模型每次只写一个论证单元,等于把长文问题拆成短文问题。这一步处理之后,国产模型的表现会明显上一个台阶。
4.2 实测:综述初稿三天出,中间返修两次
我拿“共享经济平台监管的演化逻辑”这个题目跑了一遍完整流程。Skill 先是输出了选题卡,让我调整了研究问题的表述;然后是文献地图,列出了若干条真实文献和几条待核验项。大纲阶段锁定了五个章节,我改了两处逻辑顺序。之后分段生成正文,整个过程分三天完成,总耗时大约六小时,其中大部分时间花在人工校对参考文献上。
模型生成的第一版有个典型问题:文献综述段落之间缺少张力,各段只是“介绍—介绍—介绍”,没有把两个学派的冲突点挑出来。我拿着审稿模拟阶段的意见,让它重写了那一段,改成“先呈现传统效率学派的解释,再引入制度学派的批评,指出二者在平台异质性上的分歧至今没有解决”。这一改,文章的核心贡献就立住了。
4.3 内网私有化部署的离线写作链路
如果你的课题组有保密要求,或者你不想让论文数据经过公网,完全可以把这整套链路放到内网。架构很直白:本地推理服务 + Agent 运行时 + Skill 目录。Agent 的配置指向本地 API 地址,Skill 目录在本地磁盘,模型推理不依赖外部服务。
一个简单的调用示例如下:
import requests url = "http://127.0.0.1:8000/v1/chat/completions" payload = { "model": "academic-local", "messages": [ {"role": "system", "content": "请使用学术写作Skill处理以下任务"}, {"role": "user", "content": "生成引言第二段,功能是从政策背景过渡到研究缺口"} ], "temperature": 0.7, "max_tokens": 3000 } resp = requests.post(url, json=payload) print(resp.json()["choices"][0]["message"]["content"])我把推理服务跑在一台带独立显卡的服务器上,Agent 和 Skill 目录都放在同网段内。这个方案最大的好处是数据不出实验室,情绪上也踏实。实际使用中,我建议把temperature设在 0.6 到 0.8 之间:太低会显得呆板,太高容易跑偏。长文生成时max_tokens不要小于 3000,但即便设了 3000,我仍然强烈建议你分段生成,而不是一次生成上万字。
4.4 保留项:哪些环节国产模型还吃力
不吹不黑,有三类场景我依然不太放心。
第一类是超长篇综述,两万字以上时即使分段,模型也可能在前文回顾和后文推论之间出现“记忆衰减”,需要人工把核心论点反复注入。第二类是中文文献的卷期页码,GB/T 7714 格式偶尔会缺页码或写错卷号,必须靠reference_template.bib做字段校验。第三类是复杂数学推导的表述,模型能看懂公式但容易在描述推导过程时跳步,这部分我基本只让它写框架,推导细节自己补。
5. 引用可靠性、查重与“去 AI 味”:投出去之前的硬仗
Skill 把写作流程管理好了之后,剩下三个真正决定论文能不能发表的问题:引用动不动就幻觉、查重率压不下来、一遍就能被看出来是 AI 写的。这三个问题没法靠“更聪明的模型”解决,只能靠规范和提示词硬约束。
5.1 用置信度标记堵住幻觉
我让 Skill 在每条引用后面加一个置信度标签,分三档:high表示可核验的真实文献,medium表示模型确定标题和作者但不敢保证卷期页码,low表示可能混淆了两篇文献。最后整理参考文献时,凡是medium和low项全部人工到数据库核对。
这样做有一个心理作用很重要:模型不再假装自己什么都知道。它在生成时会倾向于保守,而不是编造。你也可以在提示词里明确写一句“如果无法确认引用是否存在,请明说‘无法确认’,不要猜测”。这句提示能让幻觉率明显下降。
5.2 查重率控制
查重系统的本质是对比连续相同的词串,控制查重率的有效方式是训练模型不要直接复制记忆中的常见句式。我让 Skill 在润色阶段执行一个“拆句重写”规则:凡是超过 15 个连续汉字与常见学术句式雷同的片段,必须被打散重写。
具体到提示词里,我会这样要求:“将每个长句子拆成两个短句,改变状语位置,用具体名词替代模糊主语。例如‘本研究分析了平台监管的演化路径’改为‘本文聚焦平台监管的演化路径,首先梳理政策工具的迭代逻辑,再转入行为主体的策略变化’。”等查重初检结果出来,再针对红色片段逐句改。
5.3 去 AI 味不是玄学:禁用词表和句式变换
关于去 AI 味,网上很多说法神乎其神,但我实践下来,最有效的仍然是两招:禁用词表 + 句式替换。
禁用词表我会维护在vocabularies/academic_terms.csv里,包括:首先、其次、再次、总之、综上所述、本研究具有重要意义、众所周知、值得注意的是。这些词不是绝对不能用,而是当同一篇文章出现三次以上,AI 味就会很浓。
句式上,我要求模型多用“从……出发”“由此可以得出一个可检验的推论”“这一结果直接指向……”这类带因果关系的表达,替代“首先——其次——最后”的流水账结构。同时保留必要的学术衔接词,不能为了去 AI 味把所有连接词删光,否则读起来像电报。
5.4 模拟审稿人:让 Skill 自己挑自己的毛病
最后,我会让 Skill 进入审稿人角色,输出一份模拟审稿意见。角色设定要写得狠一点:“你是一位匿名审稿人,对逻辑不一致零容忍,对数据支撑不足零容忍。逐段阅读并找出 Major 和 Minor 问题。”
模拟审稿意见出来后,我再让 Skill 针对每个 Major 问题给出修改方案,并重写对应段落。这种做法相当于在正式投稿前完成了至少一轮内部返修。很多粗心错误,比如“某指标的解释和表格数据对不上”“讨论部分突然冒出一个前文没定义的概念”,都是在这个环节被揪出来的。
6. 落地时我踩过的坑
任何工具落地都不可能一帆风顺,我在跑这个方案时也踩了不少坑。挑五个最有代表性的写出来,希望能帮你跳过。
6.1 Skill 写了,Agent 死活不触发
第一次搭好 Skill 之后,我在对话框里输入“帮我把这段论文润色”,Agent 毫无反应。排查了半天,发现是 description 里只写了“当用户需要学术论文写作时使用”,没有把“润色”“改改”“参考文献格式”这些口语词写进触发词。改成强触发词列表后,基本一打一个准。
6.2 上下文一长就跑偏
分段写作能缓解漂移,但每段单独写时,模型容易忘记前文论证的逻辑。我的应对方法是给每段提示开头注入“上文卡片”,让 Skill 先读取项目配置里的core_arguments,再把上一段的结尾结论复制到当前提示中。这个操作质量并不高,因为你得手动维护卡片,但它确实解决了逻辑断裂问题。后来我改成让 Skill 用一个临时memory.md文件记录每段结论,下一段生成前自动读取。
6.3 术语表维护晚了
第一版 Skill 没有维护术语表,结果模型在写经济地理内容时,把“区位选择”全部写成“位置选择”。单看每句都对,放到整个领域里就很出戏。后来我把这些黑话全部收进vocabularies/academic_terms.csv,并指明“必须优先使用左边术语,禁止使用右边术语”,问题立刻缓解。建议每个项目开始跑之前,先用十分钟把核心术语表填好,而不是等着出问题再补。
6.4 内网部署卡在显存和并发
内网服务器的资源是有限的,跑一个较大的模型时,并发请求一多就会排队。我一开始同时开三个写作任务,直接把推理服务堵死。后来改成单任务串行,并且把上下文长度限制在合理范围内,用 KV Cache 优化推理速度,体验才顺畅起来。写作本质上就是串行的,这边建议不要贪并发。
6.5 版本管理要跟上
Skill 本身也需要版本管理。我给每个项目建了独立目录,用 Git 管理 Skill 的改动,每一次提示词优化都走一次评审记录。别觉得麻烦,否则你很可能出现这种情况:A 论文的术语表被 B 论文的配置覆盖,或者某次微调让润色质量下降,却不知道从哪里回滚。对一个团队来说,共享一个主分支加各自的分支,稳定性会高很多。
这套内容走到现在,我自己最大的收获,是重新理解了什么叫“让 AI 辅助写作而不是替你写作”。学术论文的创造主体始终是人,Skill 的价值在于把模糊的写作意图变成可执行的流程,减少模型自由发挥带来的不确定性。如果你也打算试,建议不要一上来就跑三万字的博士论文,先拿一个段落把 Skill 跑通,感受一下分段写作和审稿模拟的节奏,再逐步扩展到整篇。那个把提示词写成文件的时刻,你会回来感谢自己的。