SkillOpt 的 Devin 插件:为 Cognition Devin 接入 SkillOpt-Sleep 夜间技能进化循环的 MCP 集成指南

发布时间:2026/9/21 14:57:51
SkillOpt 的 Devin 插件:为 Cognition Devin 接入 SkillOpt-Sleep 夜间技能进化循环的 MCP 集成指南 人工智能大模型AI Agent提示工程【免费下载链接】SkillOptSkillOpt is a text-space optimizer that trains reusable natural-language skills for frozen LLM agents through trajectory-driven edits, validation-gated updates, and deployable best_skill.md artifacts.项目地址https://gitcode.com/gh_mirrors/sk/SkillOpt点击查看免费下载SkillOpt-Sleep 是 SkillOpt 项目中用于让 LLM Agent 在夜间自动挖掘重复任务、复盘轨迹并以门控更新方式沉淀可复用技能的引擎。本篇文章聚焦于它的 Devin 集成方案通过一个纯标准库实现的 MCPstdio服务器把skillopt_sleep引擎以sleep_*工具的形式暴露给 Cognition 的 DevinCLI 与 IDE 均可使用并借助一个Devin 专用 harvester把本地 Devin 数据转换为引擎能消费的 Claude Code 兼容 JSONL。读完本文你将掌握该插件的文件布局、数据转换原理、安装步骤、七个 MCP 工具的完整参数语义、handoff无密钥后端的工作方式以及数据边界注意事项并能在自己的 Devin 工作区中跑通运行睡眠周期 → 查看提议 → 采纳的完整流程。为什么 Devin 需要独立的集成插件DevinCognition添加自定义工具的标准方式是MCPModel Context Protocol因此plugins/devin/目录以 MCP 服务器为核心形态提供集成。但有一个关键障碍Devin 并不会把 Agent 会话记录以 SkillOpt-Sleep 引擎能够直接读取的格式落盘。于是该插件在 MCP 服务器之外额外提供一个Devin 专用 harvesterharvest_devin.py把本地所有可用数据源统一转换成引擎可读的 Claude Code 兼容 JSONL 会话文件从而复用与其它共享引擎集成完全相同的python -m skillopt_sleep动作见 mcp_server.py 中_run_engine对python -m skillopt_sleep action ...的调用。从源码结构看这套插件的设计原则是薄适配层、零重复逻辑转换harvest由插件负责把 Devin 生态的数据翻译成引擎的会话格式优化optimize完全交给核心引擎adapter 不做任何采纳后二次复制核心引擎直接将审阅过的提议应用到选定目标并自行负责备份与回滚行为README 中 The adapter performs no post-adoption copy 即指此意参见 harvest_devin.py 与 devin-rules.snippet.md。目录结构与各文件职责plugins/devin/下的文件及其用途如下README Whats here 的完整清单文件用途mcp_server.py纯标准库 MCPstdio服务器暴露sleep_*工具harvest_devin.py将 Devin ATIF-v1.7 转录、agentmemory、.devin/skills转换为 JSONL附带taskKey与结果outcome信封judge.py验证门validation gatedeferred/judge 分支的参考评分器mcp-config.example.json开箱即用的 MCP 服务器配置模板install.sh把 hooks 与 rules 复制进项目的.devin/并打印 MCP 注册命令devin-rules.snippet.md由install.sh复制到.devin/rules/skillopt-sleep.md的规则片段hooks/hooks.v1.jsonSessionEnd 钩子配置由install.sh安装/合并到.devin/hooks.v1.jsonhooks/on-session-end.sh尽力而为best-effort的活动标记脚本由钩子调用数据采集harvester 把三类 Devin 本地数据变成 JSONL三个数据源与所在位置harvest_devin.py会从以下三个本地数据源合成 JSONL 会话README What it harvests数据源位置Devin 转录ATIF-v1.7~/.local/share/devin/cli/transcripts/*.jsonagentmemory~/.agentmemory/standalone.jsonSkill 文件.devin/skills/*/SKILL.md工作区workspace自动检测来自~/.config/Devin/User/workspaceStorage/*/workspace.json从源码看检测顺序还有两个额外的回退层级harvest_devin.py 的_detect_workspaces环境变量SKILLOPT_DEVIN_WORKSPACES冒号/分号分隔的绝对路径列表跨平台用os.pathsep分割Devin 注册表~/.config/Devin/User/workspaceStorage/*/workspace.json按 mtime 从新到旧排序当前工作目录兜底。由于 Devin 是 VS Code 家族应用其用户数据目录随操作系统移动Linux~/.config/App、Windows%APPDATA%\App、macOS~/Library/Application Support/App源码中的_app_data_roots()与_devin_transcript_candidates()会按当前 OS 依次探测所有候选路径。三种来源如何被翻译成会话ATIF-v1.7 转录source:user/source:agent消息被直接转换为 user/assistant JSONL 回合每条转录还会被提炼出taskKey见下与 outcome 信封并写入outcomes.jsonlagentmemory每条记忆的title成为合成的用户提示content成为助手回复Skill 文件每个.devin/skills/name/SKILL.md的描述被转换为一个会话——用户提问请使用skill技能助手回复如何应用该技能正文截取前 1200 字符。输出目录结构与~/.claude/projects/slug/sessionId.jsonl对齐即out_dir/projects/slug/session_id.jsonl其中slug是项目绝对路径的 SHA-256 前 16 位十六进制与 Claude Code 的方案一致见_slug()。默认输出目录为~/.skillopt-sleep-devin环境变量SKILLOPT_DEVIN_CLAUDE_HOME可覆盖。为验证门准备的 taskKey 与 outcome 信封SkillOpt 的门控gate只在任务可重复且存在可检查的正确性信号时才有效README 明确The gate only works where tasks recur and have a checkable correctness signal。为此harvester 给原始转录补充两样东西源码注释中的原话稳定的taskKey把重复出现的内容折叠成同一个重复任务。_normalize_task_key()生成的键格式为语言:意图:目标例如java:fix:order-service——语言通过_LANG_HINTSjava/python/ts/js/sql/go/rust正则推断意图通过_INTENT_HINTSfix/implement/refactor/test/review/optimize/explain推断目标优先取 CamelCase 标识符、其次文件名、再次首个非停用词outcome 信封_detect_outcome()从 agent 消息中正则匹配通过/失败信号如BUILD SUCCESS、N passed、0 failed、traceback等产出successverifiertests或build 证据文本以及可复跑的命令引用reference.repro。若没有任何硬信号则退化为_judge_rubric_fallback()successNone、verifier:judge并附带由_build_rubric()从任务文本推导出的评分标准rubric告知门控延迟到 judge 评分而不是直接信任。源码中还有一个容易被忽略的工程细节合成的 user/reply 之间被刻意间隔至少 5 秒ts 5000以避免单轮会话被误判为3s的无头回放而遭引擎 harvest 过滤器丢弃源码注释引用了 skillopt_sleep Issue #62 的处理。采样夹具 devin_sample.json 展示了一份最小 ATIF-v1.7 转录OrderService.persist()的空指针修复任务含rtk mvn test -DtestOrderServiceTest - BUILD SUCCESS, 142 passed, 0 failed这样的可检查信号可用于理解 outcome 提取的正则匹配对象。独立运行 harvesterharvest_devin.py也可以脱离 MCP 服务器单独运行python plugins/devin/harvest_devin.py \ [--out-dir PATH] \ [--agentmemory ~/.agentmemory/standalone.json] \ [--devin-transcripts /path/to/transcripts] \ [--workspaces /ws/a /ws/b ...] \ [--quiet]默认--out-dir为~/.skillopt-sleep-devin--devin-transcripts按 OS 自动探测--workspaces缺省时走上面描述的自动检测。结束时打印三类来源各自转换的会话数及总数。参考评分器judge.py 如何给无硬信号任务打分对于没有测试/构建硬信号的任务harvester 会在 outcome 信封中写入verifier: judge和rubric。验证门在回放replay阶段调用 judge.py 为候选回复打分分数落在[0, 1]只有新技能在留出任务上严格得分更高时门控才接受技能编辑。judge.py 刻意保持自包含self-contained——完整部署中由 SkillOpt 引擎拥有回放评分但提供可独立运行的参考实现便于脱离引擎做冒烟验证。两种后端通过环境变量SKILLOPT_JUDGE选择heuristic默认关键词覆盖率打分离线、无需 API Key、确定性输出。每条评分标准只要回复中出现其任一内容词即视为满足最终得分为满足数/总条数claude经 Anthropic API 的 LLM 评分器需要ANTHROPIC_API_KEY模型默认claude-haiku-4-5-20251001可用SKILLOPT_JUDGE_MODEL覆盖。实现采用纯标准库urllib密钥缺失或调用失败时优雅降级回 heuristic保证门控永不硬错误。# 从文件读取 rubric 与 reply python plugins/devin/judge.py --rubric rubric.json --reply reply.txt # 从 stdin 读取 replyrubric 内联传入 echo reply | python plugins/devin/judge.py --rubric-inline [Addresses OrderService, ...]安装与注册三步接入 Devin前置条件Python ≥ 3.10且零第三方依赖——MCP 服务器是纯标准库实现json/subprocess/sys等见 mcp_server.py 顶部 import。这也意味着插件不需要额外的pip install。第 1 步向项目安装 hooks 与 rules在仓库根目录执行bash plugins/devin/install.sh /path/to/your/project脚本会做三件事详见 install.sh幂等、可重复执行把 on-session-end.sh 复制为project/.devin/hooks/skillopt-sleep-on-session-end.sh并赋予执行权限把 hooks.v1.json合并到project/.devin/hooks.v1.json若已存在则用内嵌 Python 按事件合并数组、跳过完全重复的条目避免破坏项目已有 hooks不存在则直接复制把 devin-rules.snippet.md 复制为project/.devin/rules/skillopt-sleep.md让 Devin 在会话中主动了解这些工具规则文件会提示 Devin当用户询问 sleep 周期或技能进化时优先调用这些工具而非解释概念并要求始终以绝对工作区路径传project。最后脚本打印 MCP 注册命令。SessionEnd 钩子默认开启但它只是一个记录会话结束时间戳的廉价活动标记写入~/.skillopt-sleep/session-end.log供本地检查或外部自动化使用当前引擎按转录时间戳进行 harvest并不消费该标记。钩子非阻塞、不消耗任何 API 预算绝不会导致会话失败脚本内exit 0保证。第 2 步注册 MCP 服务器直接使用install.sh打印的命令或参考 mcp-config.example.jsondevin mcp add skillopt-sleep \ --env SKILLOPT_DEVIN_CLAUDE_HOME$HOME/.skillopt-sleep-devin \ -- python3 /abs/path/to/SkillOpt/plugins/devin/mcp_server.py其中SKILLOPT_DEVIN_CLAUDE_HOME指定转换后 JSONL 的存放目录默认~/.skillopt-sleep-devinmcp_server.py还会读取SKILLOPT_SLEEP_REPO环境变量来定位仓库根用于PYTHONPATH缺省时按自身路径向上推导两级。第 3 步用自然语言驱动安装完成后直接向 Devin 说run the sleep cycle运行睡眠周期what did the last sleep propose?上次睡眠提议了什么adopt it采纳它七个 MCP 工具完整语义与参数MCP 服务器暴露以下工具与 TOOLS 表 对应每个工具底层都调用python -m skillopt_sleep action ...工具对应引擎 action作用sleep_statusstatus显示迄今运行的夜晚数 最新暂存staged提议sleep_dry_rundry-run预览一轮周期harvestminereplay不暂存真实后端仍会产生 provider 调用sleep_runrun运行完整周期暂存一份供审阅的提议sleep_adoptadopt应用审阅过的 legacy 或 per-skill 提议先备份sleep_harvestharvest调试用列出挖掘到的重复任务sleep_scheduleschedule安装夜间 cron 条目--hour/--minutesleep_unscheduleunschedule移除夜间 cron 条目status、dry-run、run、harvest这四个读取数据的动作在执行引擎前会先自动运行harvest_devin.py刷新本地缓存源码中的_HARVEST_ACTIONS集合并把--claude-home指向转换目录、默认--source claude因为 Devin 转录已被转换成 Claude 格式。统一参数_TOOL_SCHEMA所有工具共享同一套输入 Schemamcp_server.py服务端在运行时还会二次校验_validate_tool_arguments类型、控制字符、数值边界、enum、互斥模式都逐一检查因为客户端不可信、不能指望客户端强制 schema参数类型/取值范围说明projectstring要进化的项目目录默认 cwdbackendenummock/claude/codex/copilot/handoffmock不消耗 API默认后三者使用对应已认证 CLIhandoff无模型子进程与 API Keyscopeenuminvoked/allharvest 范围默认仅被调用项目sourceenumclaude/codex/auto转录来源默认claudemodelstring后端特定的模型覆盖tasks_filestring已审阅 TaskRecord JSON 路径跳过 harvesttarget_skill_pathstring要进化/暂存/采纳的显式SKILL.md路径progressboolean向 stderr 打印阶段进度max_sessionsinteger 0–1,000,000每次运行的 harvest 会话数上限max_tasksinteger 0–1,000,000每次运行的挖掘任务数上限lookback_hoursinteger 0–1,000,000harvest 时间窗口小时默认 72auto_adoptboolean门控通过时自动采纳默认 falsejsonboolean返回机器可解析的 JSON 输出edit_budgetinteger 0–1,000,000每晚最大有界编辑次数默认 4另外两个参数只在特定工具上有效服务端会强制约束_ADOPT_ONLY_ARGS/_SCHEDULE_ONLY_ARGShour0–23默认 3、minute0–59默认 17仅用于sleep_schedulestaging、skills、all_skills、legacy仅用于sleep_adopt。关于 sleep_adopt 的采纳控制重点在sleep_adopt之前务必先查看sleep_status与审阅过的 staging manifest再选择与之一致的控制参数staging—— 指定要采纳的精确 staging 目录替代最新一晚skills—— 要采纳的技能名数组每个技能名会被转发为一条独立的--skill参数不做 shell 插值源码中_append_adopt_args用 argv token 逐条追加若技能名以-开头则改为--skillname形式防止被解析为选项all_skills—— 采纳所有已暂存的 per-skill 提议legacy—— 仅采纳受管的SKILL.md/CLAUDE.md这一对 legacy 文件。skills、all_skills、legacy三种选择模式只能选其一禁止组合服务端modes 1时直接报错。裸调用不带任何选择参数仅为了兼容仅 legacy 暂存的场景fan-out 暂存多技能必须显式选择。若要对特定的 Devin 技能操作把它的SKILL.md作为target_skill_path传入——adapter 在核心引擎返回后不会做第二次复制。工具返回约定exit_code、isError 与 json 模式工具结果会在structuredContent中保留引擎的exit_code普通非零退出会置isError: true退出码 3 是预期的handoff_pending状态不是 MCP 工具错误isError只在退出码不属于{0, 3}时为 true当json: true时文本内容content就是引擎可解析的 JSON stdout而 harvest 与引擎诊断信息仍单独放在structuredContent.diagnostics中互不混淆。后端选择与 handoff 无密钥模式mock默认完全本地、不产生任何 API 花费适合先跑通工作流claude/codex/copilot使用各自已安装并认证的 CLI 与预算对应 SkillOpt 的claude_backend、codex_backend、copilot_backend插件本身不实现额外的 API Key 流程handoff以无模型子进程、无 API Key的方式运行整轮周期。引擎把待处理的模型调用写入.skillopt-sleep-handoff/PROMPTS.md与pending.json以退出码 3 结束你把答案放入answers/id.md后用相同参数重新运行sleep_run即可继续devin-rules 片段提示通常需要 3–6 轮往返。handoff模式由引擎侧统一实现见skillopt_sleep中_handoff_dir_for/_flush_handoff等逻辑Devin 插件与其它的共享引擎集成共用同一套机制。若你有已审阅的任务文件可传tasks_file跳过 harvest在使用真实后端之前务必检查/脱敏该文件并确保其元数据包含reviewed: truedevin-rules 片段中的明确要求。数据边界与隐私注意事项Devin harvester 只读取本地的 ATIF 转录、agentmemory 与 skill 文件并转换为引擎会话格式。使用mock后端时整个工作流完全本地化一旦切换到真实后端截断后的摘录与派生任务会被发送到所选 provider用于挖掘mining、回放replay、判定judging与反思reflection。需要特别强调README 原文转换步骤并不保证出站提示中不含机密——在启用真实后端之前请审阅敏感数据源与 provider 政策。相关指引见共享的 plugins/README.md 数据边界章节 与 已实现 CLI 参考。另外devin-rules 片段还提醒了一个容易踩的坑sleep_schedule/sleep_unschedule是底层共享引擎的 cron 控制当前被调度的命令不会执行 Devin 的转换步骤因此不要把它当作无人值守的 Devin harvest 工作流使用——夜间自动化的正确姿势是让 Devin 会话中主动调用sleep_run或显式把 harvest 纳入调度链路。小结一条可验证的本地闭环从安装到生效整套流程可以总结为一条闭环install.sh植入钩子与规则 → Devin 每轮会话结束留下转录/记忆/技能文件 → MCP 服务器每次数据读取前自动运行 harvester 转成 JSONL → 引擎执行status/dry-run/run挖掘重复任务并暂存提议 → 人工或 Devin审阅sleep_status与 manifest 后用sleep_adopt显式采纳 → 引擎只对选定目标应用提议并自行备份。全程零第三方依赖、默认零 API 花费且采纳行为始终掌握在审阅者手中。赞分享人工智能大模型AI Agent提示工程【免费下载链接】SkillOptSkillOpt is a text-space optimizer that trains reusable natural-language skills for frozen LLM agents through trajectory-driven edits, validation-gated updates, and deployable best_skill.md artifacts.项目地址https://gitcode.com/gh_mirrors/sk/SkillOpt点击查看免费下载相关推荐为 Devin Desktop 接入 Hindsight 长期记忆MCP 集成完整指南为 Devin Desktop 接入 Hindsight 长期记忆MCP 集成完整指南 Devin Desktop原 Windsurf / Codeium人工智能AI AgentAgent 记忆MCP 服务为 Devin Desktop 接入 Hindsight 长期记忆hindsight-devin-desktop 双 Agent 配置实战为 Devin Desktop 接入 Hindsight 长期记忆hindsight devin desktop 双 Agent 配置实战 本指南基于 hin人工智能AI AgentAgent 记忆MCP 服务gbrain skillopt 完全指南把 SKILL.md 当参数训练的自进化技能优化器gbrain skillopt 完全指南把 SKILL.md 当参数训练的自进化技能优化器 gbrain skillopt 是 gbrain 仓库中自我进化人工智能RAGAgent 记忆MCP 服务知识管理创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询