AI团队经验沉淀避坑指南:省3天+成功率翻倍!

各位跨境实战精英们,大家好!
咱们做跨境,都知道效率是生命线,尤其是在技术迭代飞快的当下,如何让团队知识沉淀下来,避免重复“造轮子”,简直是核心竞争力。今天,我想跟大家聊一个实战利器——如何用人工智能大模型,给咱们的研发团队搭建一个“集体记忆库”,让AI不仅能帮你写代码、解Bug,还能帮你记住团队踩过的坑、总结出的经验。
想象一下,咱们团队辛辛苦苦跑了一周的实验,Sigrid(一位Sionic AI的同事)花三天时间,试了五十多种ColBERT参数配置,最终发现,文本块长度设在4000字符左右时,FDE在检索任务中表现优于MaxSim。这可不是小发现,这能为以后遇到同样问题的同事节省好几周时间!
【小知识普及:】 FDE,也就是固定维度编码,是谷歌DeepMind在MuVERA论文里提出的一种技术,它能把ColBERT的多向量表示压缩成单个固定大小的向量。咱们Sionic AI还把实现开源到了sionic-ai/muvera-py,获得了300多个星。它让ColBERT风格的检索在大规模应用中变得实用,因为你可以直接用标准的向量数据库,而不需要复杂的后期交互基础设施。
但问题来了,这个宝贵的经验,可能就静静地躺在某个群聊里,只有少数几个同事看到了。过俩月,保不准又有人会重复同样的实验,根本不知道答案早就有了。这在咱们技术团队里简直是家常便饭——知识就在那里,却没人找得到,也用不上。AI虽然能帮咱们训练模型,但它不记得团队昨天、上周学到了什么。它了解训练数据里的一切,却对咱们同事在周二的发现一无所知。
所以,咱们就动手搭建了一个系统来解决这个问题。核心思想特别简单:当你用Claude Code跑完一个实验后,只需敲一个命令,Claude就会“复盘”你的操作,提取关键信息,然后总结成一个“技能”文件。这个技能文件会进入咱们团队的共享注册表。下次,团队里任何一个人向Claude问起相关问题时,它就能立刻调取出你同事的发现和经验了。说白了,这就像是给Claude装上了一个团队的集体记忆,而不是你个人的专属记忆。
快速上手,给Claude装上“团队记忆”
整个设置过程,快的话,三十秒就能搞定。在Claude Code里面,你只需要运行两个命令:
/plugin marketplace add your-org/your-skills-repo
/plugin install all-skills@your-skills-repo
这就完事了!从现在起,Claude就能访问咱们团队记录下来的所有技能了。我们Sionic AI内部就是这么用的,但这个思路很简单,你完全可以为自己的团队也搭建一套。接下来,我将通过一个我们上周真实入库的实验,一步步教你如何操作。
“求助”利器:/advise 命令
想象一下,你正准备开始一个新的模型剪枝实验,这时候你敲下/advise命令。Claude会立即查询团队的技能注册表,发现上个月有人对Ministral3模型跑过剪枝实验,它会把当时的经验教训告诉你。你会收到哪些方法不可行的警告,以及哪些超参数是有效的。这样,你就能直接跳过你同事已经经历过的三天的试错过程。
看看/advise在实际操作中是怎样一番景象:

“复盘”神器:/retrospective 命令
当你刚完成一次实验,并且从中获得了宝贵的经验时,在结束会话前,你可以输入/retrospective。Claude会回顾你与它的所有对话,提炼出关键的洞察,将其编写成一个技能文件,然后为团队的技能注册表创建一个Pull Request(PR)。一旦有人审核并合并了这个PR,这些知识就正式成为Claude“知道”的一部分了。

这个技能文件会涵盖所有重要信息,包括可运行的代码、你最终确定的参数,以及一路走来犯过的错误——尤其是那些错误,它们往往是最有价值的。咱们新媒网跨境认为,从失败中吸取教训,是进步最快的方式。
Claude会帮你把“知识”写下来
知识管理最难的地方从来都不是存储,而是让人愿意把东西记录下来。辛苦跑完一轮实验后,谁还想打开文档,把整个过程总结一遍呢?当时的情境是清晰的,但写文档的精力已经耗尽了。所以,大多数宝贵的洞察,往往就这么留在了个人脑海里,最终慢慢消散。
为了解决这个痛点,咱们让Claude来承担这个“写文档”的活儿。
当你与Claude Code完成一次训练会话后,只需简单地敲下/retrospective。这是唯一你需要记住的命令。Claude Code会仔细阅读你的所有对话记录,包括你执行的每一条命令,遇到的每一个错误,尝试的每一个修复方案,然后从中提取出对他人有帮助的部分。它会将这些信息结构化地整理成一个技能文件,自动创建一个Git分支,提交文件到团队的注册表,并开启一个Pull Request。
一个真实的PR看起来是这样的:
这个PR包含三部分内容。SKILL.md文件承载着真正的知识:你当时想做什么,哪些方法奏效了,哪些失败了,以及你最终使用的参数。
# plugins/training/grpo-external-vllm-server/skills/grpo-external-vllm-server/SKILL.md
---
name: grpo-external-vllm-server
description: "基于ms-swift外部vLLM服务器的GRPO训练技能。使用场景:(1) 在单独的GPU上运行vLLM服务器进行GRPO训练时,(2) 遇到vllm_skip_weight_sync相关错误时,(3) 遇到OpenAI API响应解析错误时。已在gemma-3-12b-it上验证。"
author: Hojin Yang
date: 2025-12-08
---
# grpo-external-vllm-server - 研究笔记
## 实验概览
| 项 | 详情 |
|------|---------|
| **日期** | 2025-12-08 |
| **研究员** | Hojin Yang |
| **目标** | 在ms-swift中,使用外部vLLM服务器设置GRPO训练并修复错误 |
| **模型** | google/gemma-3-12b-it |
| **环境** | NVIDIA A100-SXM4-80GB x 8, ms-swift, vLLM, DeepSpeed ZeRO2 |
---
## 已验证工作流程
### 步骤1:启动vLLM服务器(独立GPU)
```bash
#!/bin/bash
export CUDA_VISIBLE_DEVICES=6,7
vllm serve google/gemma-3-12b-it \
--host 0.0.0.0 \
--port 8000 \
--served-model-name default \ # 重要:ms-swift请求的模型名为'default'
--tensor-parallel-size 2 \
--gpu-memory-utilization 0.9 \
--dtype bfloat16 \
--trust-remote-code
(...)
plugin.json文件告诉Claude何时展示这个技能,也就是触发条件。如果你写了任何值得保留的脚本,它们也会被收录进去。
# plugins/training/grpo-external-vllm-server/.claude-plugin/plugin.json
{
"name": "grpo-external-vllm-server",
"version": "1.0.0",
"description": "基于ms-swift外部vLLM服务器的GRPO训练技能。使用场景:(1) 在单独的GPU上运行vLLM服务器进行GRPO训练时,(2) 遇到vllm_skip_weight_sync相关错误时,(3) 遇到OpenAI API响应解析错误时。已在gemma-3-12b-it上验证。",
"author": {
"name": "Hojin Yang"
},
"skills": "./skills",
"repository": "https://github.com/sionic-ai/sionic-research-skills"
}
你的同事或经理可以进行审核。有时他们会添加更多上下文,或者指出需要更多细节的地方,然后合并。从那一刻起,任何向Claude询问相关话题的人,比如RoPE嵌入、检索模型训练或grooking任务,都能自动获得这份知识。
这种方式比传统文档效果更好的原因在于“时机”。Claude是在所有上下文都还清晰时编写技能的。它亲眼“目睹”了你调试张量不匹配的过程,它知道哪些方法失败了以及原因。所有这些信息都被直接记录下来,而不需要你两天后绞尽脑汁去回忆重构。
使用这种模式几周后,我们发现了一个意想不到的现象。大家在会话中开始更清晰地解释他们的思路和推理过程,因为他们知道Claude会在最后进行复盘和记录。/retrospective的输出质量,完全取决于之前的对话。当你知道你的思考过程可能会成为团队的共享资源时,你自然会在操作时将自己的想法更好地表达出来。
那些被引用最多的技能,往往不是记录“完美成功”的案例,而是记录“失败”的案例。“我尝试了X,但因为Y而失败了”,这句话在整个系统中,比任何冗长的解释都更有价值。成功的故事告诉你一条可行的道路,而失败的故事则直接告诉你哪些路是完全不用走的,这才是真正的避坑指南。
开启新实验前的“明灯”
咱们这套系统,另一半的价值体现在你开始编写任何训练代码之前。当你计划一个实验,想要知道团队在类似问题上已经积累了哪些经验时,/advise就派上用场了。
我来举个真实的例子。你准备训练一个小型Transformer模型来学习用Base-100分词进行加法运算。你的参数预算在0.5M到4M之间。在深入研究之前,你先问问Claude团队在这方面知道些什么。
Claude Code会搜索技能注册表,并找到相关的实验。在这个案例中,它从ColBERT FDE参数搜索日志中提取信息,不是因为任务完全相同,而是因为其中的方法论可能有用。响应会先对你的请求进行结构化分析,然后将过往实验中的经验教训映射到你当前的情况。
返回的结果可不是泛泛之谈。它是从团队实际实验中提炼出来的模式。
- 参数影响分析: ColBERT技能文档记录了
ksim=4有效,因为“16个桶适合token分布”。它还指出d_proj=32会导致信息损失,而R_reps=16是最佳选择,但需要权衡内存。Claude会将这些发现转化为你算术任务的假设。 - 失败模式: 这才是真正有用的地方。ColBERT技能记录了
d_proj=32导致性能下降,因为“128到32的投影会丢失信息”。这个教训是:要么使用64+,要么完全禁用。你还没犯这个错误,而现在,你也不会犯了。
整个响应大概只需三十秒就能生成。你不仅能获得过往实验中结构化的方法论,已知的失败模式警告,与你正在讨论的其他话题的整合,还有可直接运行的代码。所有这些,都在你亲自动手写一行代码之前就准备好了。
这就是我们所说的“团队记忆”。知识已经存在,/advise让它触手可及。
怎样的“技能”才是真正的好技能?
不是所有的技能都同样有用。有些技能被反复查阅,而另一些则可能无人问津。这其中的区别,主要取决于三点:触发条件、失败记录和具体数据。
当你向Claude Code寻求建议时,它不会盲目阅读注册表里的所有技能。它会扫描技能的描述字段,挑选出与你当前情况最匹配的那些。这意味着,像“剪枝实验”这样模糊的描述,可能永远不会被触发。而一个更具体的描述,就像下面这样:
“基于ms-swift外部vLLM服务器的GRPO训练技能。使用场景:(1) 在单独的GPU上运行vLLM服务器进行GRPO训练时,(2) 遇到vllm_skip_weight_sync相关错误时,(3) 遇到OpenAI API响应解析错误时。已在gemma-3-12b-it上验证。”
新媒网跨境了解到,你会发现这种模式很有讲究。它明确了任务,列出了Claude应该在哪些具体情境下被激活,并说明了验证环境。如果下个月有人遇到了vllm_skip_weight_sync错误,Claude就能因为描述中包含了这个精确短语而找到这份技能。所以,我们使用模板来强制执行这种规范。
写出好的描述需要练习。人们最初创建的技能往往过于宽泛。在实际看到哪些技能被频繁调用,哪些没有之后,作者们就会学会如何写得更具体。
# templates/experiment-skill-template/skills/EXPERIMENT_NAME/SKILL.md
---
name: grpo-external-vllm-server
description: "ms-swift外部vLLM服务器的GRPO训练技能。使用场景:(1) 在独立GPU上运行vLLM服务器进行GRPO训练,(2) 遇到vllm_skip_weight_sync错误,(3) 遇到OpenAI API响应解析错误。已在gemma-3-12b-it上验证。"
author: Hojin Yang
date: 2025-11-08
---
# grpo-external-vllm-server - 研究笔记
## 实验概览
| 项 | 详情 |
|------|---------|
| **日期** | 2025-11-08 |
| **实验员** | Hojin Yang |
| **目标** | 在ms-swift中,使用外部vLLM服务器进行GRPO训练的设置与Bug修复 |
| **模型** | google/gemma-3-12b-it |
| **环境** | NVIDIA A100-SXM4-80GB x 8, ms-swift, vLLM, DeepSpeed ZeRO2 |
---
## 已验证工作流程
### 步骤1:启动vLLM服务器(独立GPU)
### 步骤2:执行GRPO训练(剩余GPU)
```bash
export CUDA_VISIBLE_DEVICES=1,2,3,4
NPROC_PER_NODE=4 \
swift rlhf \
--rlhf_type grpo \
--model google/gemma-3-12b-it \
--use_vllm true \
--vllm_mode server \
--vllm_server_host 127.0.0.1 \
--vllm_server_port 8000 \
--vllm_skip_weight_sync true \ # 重要:使用标准vllm serve时必须
--train_type full \
--torch_dtype bfloat16 \
--deepspeed zero2.json \
...
-----
## 失败尝试(非常重要!)
| 尝试 | 失败原因 | 经验教训 |
|---------|---------------|----------------|
| 未使用 `vllm_skip_weight_sync` 执行 | 404 `/update_flattened_params/` 错误。标准 `vllm serve` 不支持此API。 | 使用 `vllm serve` 而非 `swift rollout` 时,`--vllm_skip_weight_sync true` 是强制性的。 |
| 未使用 `--served-model-name` 运行vLLM | 404 Model `default` 未找到。ms-swift请求的模型名称为 `default`。 | 必须在vLLM服务器参数中添加 `--served-model-name default`。 |
| 使用默认ms-swift代码解析OpenAI API响应 | `service_tier` TypeError, `'dict' object has no attribute 'message'`。 | 需要修改ms-swift `vllm_client.py` 代码(见下方补丁)。 |
-----
## ms-swift 代码补丁(必需)
### 补丁1:`rollout_mixin.py` - 跳过权重同步
添加到 `swift/trainers/rlhf_trainer/rollout_mixin.py` 中 `_move_model_to_vllm` 函数的开头:
正如你上面看到的,每一个技能模板都包含一个“失败尝试”表格。这个表格的阅读量甚至超过了其他任何部分。成功路径固然好,但失败路径才是真正节省时间的关键。“我尝试了X,但因为它Y而失败了”这句话的价值,远超几段的解释。
模板还会要求在references/troubleshooting.md中提供一个故障排除文件。里面包含了真实的错误信息、实际的症状和精确的修复方法。当Claude展示一个技能时,它就能从这个文件中提取信息,给出精确的答案,而不是猜测。
另外,任何模糊的建议都没有帮助。“使用一个小的学习率”对不同的人来说,理解是不同的。所以,被大量使用的技能都包含了可以直接复制粘贴的配置。
# 实验日志:grpo-external-vllm-server
## 2025-11-08
### 目标
在 `ms-swift` 中使用外部vLLM服务器进行GRPO训练。
### 环境
* **GPU:** NVIDIA A100-SXM4-80GB x 8
* **框架:** ms-swift, vLLM, DeepSpeed ZeRO2
* **模型:** google/gemma-3-12b-it
-----
### 遇到的问题与解决方案
#### 问题1:404 `/update_flattened_params/` 错误
* **症状:** vLLM服务器日志中出现404错误。
* **原因:** 即使设置了 `vllm_skip_weight_sync=true`,`_move_model_to_vllm` 函数仍尝试调用权重同步API。
* **解决方案:** 在 `rollout_mixin.py` 中添加了对 `vllm_skip_weight_sync` 的逻辑检查。
...
### 结果
* 确认在修复所有Bug后,GRPO训练正常启动。
* 验证了 **外部vLLM服务器 + ms-swift GRPO训练** 的组合。
### 超参数
# GRPO训练配置(可直接复制粘贴)
rlhf_type: grpo
use_vllm: true
vllm_mode: server
vllm_server_host: 127.0.0.1
vllm_server_port: 8000
vllm_skip_weight_sync: true # 使用标准vllm serve时强制要求
...
### 经验教训
1. **权重同步:** 请注意,当使用 `vllm serve` 而非 `swift rollout` 时,权重同步API是不可用的。
2. **API兼容性:** 使用与OpenAI API兼容的服务器时,请警惕响应格式的差异。
3. **进程管理:** 强烈建议在分布式训练脚本中始终包含清理逻辑。
plugin.json告诉Claude这个技能的存在。SKILL.md包含实际的知识。references/文件夹存放支持材料。脚本则放在scripts/中,方便大家直接复制使用。
每个技能都遵循相同的布局:
plugins/training/experiment-name/
├── .claude-plugin/
│ └── plugin.json # 元数据和触发条件
├── skills/experiment-name/
│ └── SKILL.md # 主要知识文档
├── references/
│ ├── experiment-log.md # 日常实验笔记
│ └── troubleshooting.md # 错误 → 解决方案映射
└── scripts/
└── (可复用代码)
这个结构可不是随意定的,我们迭代了好几周才确定下来。早期的版本把所有东西都放在一个文件里,结果变得非常笨重。后来把故障排除拆分成独立文件,不仅更容易维护,也方便Claude Code搜索技能。
当你打开一个涉及plugins/文件夹的PR时,GitHub Actions会自动验证其结构。比如,plugin.json是否包含所有必需字段?SKILL.md是否存在?描述字段是否足够具体?
# 来自咱们的GitHub Actions工作流
- name: Check SKILL.md exists
run: |
for plugin_json in $(find plugins -name "plugin.json" -path "*/.claude-plugin/*"); do
plugin_dir=$(dirname $(dirname "$plugin_json"))
skill_md=$(find "$plugin_dir/skills" -name "SKILL.md" | head -1)
if [ -z "$skill_md" ]; then
echo "❌ Missing SKILL.md: $plugin_dir"
exit 1
fi
done
如果验证通过,PR会收到一条评论,列出所有受影响的插件。合并后,另一个Action会自动重新生成marketplace.json,确保注册表无需手动更新,始终保持最新。
我们已将上述模板发布在咱们仓库的templates/experiment-skill-template/中。当你运行/retrospective时,Claude会以此模板为起点。当然,你也可以手动复制它来编写技能。
这个模板是有些“主观”的。它会要求你包含一些你可能想不到的信息,比如硬件要求、软件包版本、下一步计划等。这是有意为之。一个六个月前编写的技能,只有当其他人能够实际重现其环境时,才真正有用。
实战演练:训练一个小型Transformer模型学习加法
接下来,我来带大家走一遍一个真实的研究会话。我们的目标是训练一个Transformer模型,使用Base-100分词来学习整数加法。参数预算在0.5M到4M之间。我想在投入漫长的训练之前,先搞清楚哪种超参数组合效果最好。
我首先输入/advise。
Claude会搜索技能注册表,找到相关的实验。在这个案例中,它从ColBERT FDE参数搜索中提取信息,并非因为任务完全相同,而是因为其方法论可以借鉴。响应包含对我的请求的结构化分析,然后将过去的实验经验映射到我的当前情况。
返回的不是泛泛之谈。ColBERT技能文档中提到,ksim=4有效是因为“16个桶适合token分布”,d_proj=32会导致信息丢失。Claude将这些转化为关于算术任务的假设(例如,记录d_model、n_layers、pos_encoding和output_format)。
但更有趣的是,在此会话之前,我曾与谷歌DeepMind的Gemini 3 Deep Think讨论过基础设施。Claude也将这一上下文整合进来了。Gemini的见解是:“当总参数数量减少时,瓶颈会从显存转移到计算。”对于10M参数以下的小模型,GPU利用率不高,CPU/IO反而成了瓶颈。Claude捕捉到这一点,并建议对微小模型采用激进的批处理大小。这对我这种习惯了LLM训练中批处理大小为4的人来说,是完全想不到的。
/advise的响应以一份实验前清单和具体代码结束。要遍历的RoPE theta值:10、30、100、500、10000。批处理大小搜索空间:[512, 1024, 2048, 4096]。所有这些,在我写一行代码之前就都准备好了。
我请Claude创建实验基础设施。
它生成了一个完整的项目:包含阶段和成功标准的TECHSPEC.md,大约700行的train.py,evaluate.py,sweep.py,以及一个基线配置。TECHSPEC定义了三个预期结果:最佳情况(1M参数以下95%+准确率),现实情况(2-3M参数95%+),最差情况(需要超过4M参数)。在训练开始前就将这些写下来非常重要,因为在看到结果后,很容易就会不自觉地修改目标。
我启动了四个基线实验:上限(256d-6L,3.18M参数)、中等(192d-4L,1.4M)、下限(64d-3L,253K),以及作为负对照的微型模型(32d-2L,77K)。
所有运行都出现了相同的错误信息,发生在apply_rotary_pos_emb的第377行。
RuntimeError: The size of tensor a (32) must match the size of tensor b (16) at non-singleton dimension 3.
Claude阅读日志,识别出问题并解释道:标准的RoPE实现输出的频率张量形状是[seq_len, head_dim/2],但注意力层期望的是[seq_len, head_dim]。对于算术这种短序列(小于32个token),这种不匹配会导致一切崩溃。修复需要两处改动:torch.cat((freqs, freqs), dim=-1)以匹配头维度,以及.unsqueeze(0).unsqueeze(0)以进行正确的4D广播,使其与查询和键张量对齐。
Claude Code修补了train.py并重新运行。现在实验顺利完成了。
W&B(一个外部工具)技能展示了所有四次运行。上限模型在第1900步达到了91.5%的评估精确匹配。微型模型的准确率接近零。Claude通过MCP查询W&B,提取最终数据。
扩展法则非常陡峭。参数增加40倍(从77K到3.18M)带来了98倍的精确匹配改进。这项任务的最小可行规模似乎在253K到500K之间;253K模型的准确率为37.6%,高于随机,但仍不足。对于这些短序列,RoPE theta=100表现良好。
Claude更新了TECHSPEC,标记第一阶段完成,并记录了基线结果。
会话结束。是时候提交PR了。
假设两天后,你的同事想运行第二阶段。现在的问题是,在相同的参数数量下,是“宽而浅”的模型还是“窄而深”的模型表现更好?我在设计实验之前,再次输入/advise以获取其他“技能”的提示。
Claude找到了我两天前创建的技能。它展示了第一阶段的结果:3.18M参数达到90.62%,1.4M参数达到79.31%,并指出第二阶段已准备就绪。
它甚至已经有了一个假设:“在固定参数数量下,宽而浅的模型优于窄而深的模型。理由是‘加法是一个局部操作,不需要深入推理’。”
响应中包含了一个受控的、参数匹配的扫描设计。六对宽模型与深模型配置,参数数量相同,再加上一个深度消融实验,以找到可靠进位传播所需的最小层数。总共十八次运行。
我不需要记住,甚至不需要重新解释第一阶段的结果,也不需要重新推导RoPE theta设置。Claude都知道,因为这个技能已经存在了。
所以这个循环会持续下去——运行实验,遇到问题,解决问题,记录一切,然后下一次会话开始时,所有这些上下文都已经加载完毕了。这种知识共享和复用,正是咱们跨境团队追求的效率和进步。
这套系统背后的秘密
技能注册表负责知识管理。但要做到每天运行上千个实验,仅仅有好的文档还不够。
一切都从TECHSPEC开始。在Claude写任何代码之前,我通常会花好几个小时,和Anthropic的Claude Opus 4.5、谷歌的GPT-5.1 Pro以及Gemini 3 DeepThink等顶尖模型一起阅读。我们研读前人的论文、失败的尝试,以及关于各种“爆炸”事件的博客文章。这会形成大概20页的笔记,我们再将其提炼成一个Markdown文件。这不仅仅是一个提示词,它更像是一份研究合同。里面写明了我们想要学习什么,哪些假设很重要,要扫描哪些参数范围,预算限制,以及成功的样子。Claude阅读这份文件,就知道每一个实验存在的意义。我们称之为“规范驱动建模”。它与简单地在命令行敲命令然后期待结果,有着本质的区别。
基础设施方面也至关重要。我们运行着一个名为Creep Colony的系统,它在一个HashiCorp Nomad集群上管理GPU容器。管理服务运行在Kubernetes中,但实际的GPU工作负载则调度到Nomad客户端节点上。当一个代理说“我需要扫描200个配置”时,这就会转化为作业规范。系统会读取TECHSPEC,估算每个配置所需的计算资源,并将作业打包到集群上。这就是如何在一天内训练上千个模型,而无需打开任何终端窗口的奥秘。
今天就搭建你自己的“技能注册表”
你不需要我们那套复杂的基础设施。技能注册表、/advise和/retrospective命令,只需一个GitHub仓库和一些Claude Code配置就能运行。我已经在GitHub Gist上放了一个最小化可用的设置。包括文件夹结构、CLAUDE.md和验证工作流。你可以复制它,然后根据自己团队的需求进行修改。
从仓库结构开始:
your-org/research-skills/
├── plugins/
│ ├── training/
│ │ ├── your-first-experiment/
│ │ │ ├── .claude-plugin/
│ │ │ │ └── plugin.json
│ │ │ ├── skills/your-first-experiment/
│ │ │ │ └── SKILL.md
│ │ │ ├── references/
│ │ │ │ └── experiment-log.md
│ │ │ └── scripts/
│ │ └── another-experiment/
│ └── evaluation/
├── templates/
│ └── experiment-skill-template/
├── scripts/
│ ├── validate_plugins.py
│ └── generate_marketplace.py
├── marketplace.json
└── CLAUDE.md
根目录下的CLAUDE.md文件非常重要。它告诉Claude Code在这个仓库中应该如何表现。我们的文件包含了/advise和/retrospective命令的指令、技能模板的位置以及关于PR格式的规则。当有人克隆这个仓库并在其中运行Claude Code时,这些指令会自动加载。
这是一个最小化的CLAUDE.md:
# 研究技能注册表
## 命令
### /advise
在开始新工作前,搜索技能注册表以查找相关实验。
1. 阅读用户的目标
2. 通过扫描描述字段,在plugins/中搜索相关技能
3. 总结相关发现:哪些有效,哪些失败,推荐的参数
### /retrospective
将当前会话中学到的知识保存为新技能。
1. 总结对话中的关键发现
2. 使用templates/experiment-skill-template/创建新的插件文件夹
3. 在SKILL.md中填写:目标,哪些有效,哪些失败,最终参数
4. 创建一个分支并向main开启PR
## 技能模板
使用templates/experiment-skill-template/作为新技能的基础模板。
## 规则
- 每个技能都需要一个带有触发条件的具体描述字段
- 始终包含一个“失败尝试”表格
- 包含精确的超参数,而非模糊的建议
GitHub Actions主要做两件事:验证PR和更新市场索引。请注意,marketplace.json就是当有人运行/plugin marketplace add时Claude Code所读取的文件。它列出了所有可用的技能及其描述。每当一个技能被合并时,Action都会重新生成它,确保注册表始终是最新的,无需手动更新。
# .github/workflows/validate.yml
name: Validate Plugins
on:
pull_request:
paths: ['plugins/**']
jobs:
validate:
runs-on
风险前瞻与时效提醒:
各位跨境同仁,技术发展日新月异,今天好用的工具和方法,明天可能就会有更好的替代品。所以,咱们在利用这套“团队记忆”系统时,也要时刻保持敏锐,定期审视和更新技能库。特别是那些涉及具体框架版本、API接口的技能,更要注意时效性。同时,在部署和管理这类系统时,合规性也是不能忽视的一环,确保数据存储和知识共享符合相关法律法规和公司内部规范,保护好咱们团队的知识产权和商业机密。
希望今天的分享能给您的团队带来启发,让我们在跨境这条路上,走得更稳、更远、更高效!
新媒网(公号: 新媒网跨境发布),是一个专业的跨境电商、游戏、支付、贸易和广告社区平台,为百万跨境人传递最新的海外淘金精准资讯情报。
本文来源:新媒网 https://nmedialink.com/posts/ai-team-guide-skip-3-days-double-success.html


粤公网安备 44011302004783号 













