十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Continue 开源实战:从 0 到 1 跑通环境、拆解架构并提交第一个 PR

Continue 开源实战:从 0 到 1 跑通环境、拆解架构并提交第一个 PR Continue 开源实战从 0 到 1 跑通环境、拆解架构并提交第一个 PR【免费下载链接】continueopen-source coding agent项目地址: https://gitcode.com/GitHub_Trending/co/continueContinue 是一个开源 coding agent它把各家大模型装进 VS Code 和 JetBrains让你在编辑器里直接获得补全、对话以及能调工具、改文件的 Agent。你不用再在 IDE 和网页聊天框之间来回粘贴提示词模型输出会直接落到你的工作区。仓库是 monorepo顶层目录先记这几行后面反复用到core/跨 IDE 共享的核心逻辑LLM 集成、编辑、索引、工具都在这里extensions/VS Code 与 JetBrains 两个插件的具体实现gui/React Vite Tailwind 构建的用户界面支持热更新docs/Mintlify 文档站的全部 MDX 页面packages/内部共享包配置解析、fetch 封装、模型信息等技术栈以 TypeScript 为主JetBrains 侧是 Kotlin构建工具是 Vite 与 esbuild。把开发环境跑起来——从 clone 到第一行调试按 CONTRIBUTING.md 的流程走时间线是依赖 → 拉代码 → 构建 → 调试。git clone https://gitcode.com/GitHub_Trending/co/continue cd continue nvm use # 切到 .nvmrc 固定的 Node 版本20.20.1 LTS npm i -g vite # gui 的构建链路依赖 Vite前三条分别是拉代码、进入目录、把 Node 切到仓库锁定的版本Vite 装一次即可。接着在 VS Code 里打开仓库Tasks: Run Task选install-all-dependencies。这个任务会按顺序装 root、core、gui、extensions/vscode 四个位置的依赖并打包扩展等于把整个 monorepo 一次建好。然后切到 Run and Debug选Launch extension点播放会弹出一个装好本地扩展的 Host VS Code 窗口调试就用它。在core/和extensions/vscode/里可以打断点gui/改了代码 Vite 热更新自动生效。⚠️ 新手最常踩的坑是 Node 版本仓库用.nvmrc锁了 20.20.1用 18 或 22 跑构建gui 会报一堆莫名其妙的错。我第一次跑通编译就是栽在这切回nvm use后立刻好了。只改文档的话不用跑整套扩展单独起文档服务器就行cd docs npm install npm run dev # 本地渲染浏览器打开 localhost:3000 实时预览挑一个最小任务切入——文档、Issue 或小功能低门槛切入点有三个补文档docs/customize/model-providers/下的 MDX 页经常缺配置示例或参数说明。改完cd docs npm run dev就能看渲染效果。修 typo 和死链在docs/和gui/src/里搜旧模型名、旧路径这类 PR 维护者合得很快。加一个推荐模型在 gui/src/pages/AddNewModel/configs/models.ts 加一条ModelPackage再进对应 provider 数组本地跑扩展即可在模型选择面板看到。重点拆「添加新 LLM provider」这条最经典的代码任务共 4 步新建core/llm/llms/MyProvider.ts类继承BaseLLM不熟的话对着 core/llm/llms/LlamaCpp.ts 抄骨架把类注册进 core/llm/llms/index.ts 的LLMClasses数组若支持图片输入再到 core/llm/autodetect.ts 的图片支持列表里加名字在docs/customize/model-providers/补一页文档给出config.yaml配置示例。核心改动就这两处机制一目了然// core/llm/llms/MyProvider.ts新 provider 只需继承 BaseLLM import { BaseLLM } from ../index; export default class MyProvider extends BaseLLM { static readonly providerName my-provider; // 实现 chat 等方法完整写法参考 LlamaCpp.ts } // core/llm/llms/index.ts注册进工厂数组 export const LLMClasses [ Anthropic, Ollama, // MyProvider, // 在这里加入 // ... 其余 provider 略 ];验证方式cd core npm test跑单测再在调试窗口里选新 provider 发一条消息能收到回复就算通了。看懂核心架构——3 个目录决定项目骨架core/llm/所有模型调用的统一入口。内部协作靠一张注册表llms/index.ts的LLMClasses列出全部 providerllmFromDescription()按配置文件里的 provider 名查到类并实例化提示词模板由templates/和rules/处理。要扩展加一个 provider 文件 注册即可其余核心代码不用动。core/edit/把模型输出流式地写进文件。streamDiffLines.ts负责逐行应用模型产出的 diffmyers.ts是底层差分算法searchAndReplace/是搜索替换编辑模式。要扩展就在同目录加新编辑策略。core/indexing/代码库索引与上下文检索。walkDir.ts遍历目录chunk/把代码切成片段CodebaseIndexer.ts维护索引retrieval/负责按查询取回相关片段。要换切分规则改chunk/要加新索引实现就照着现有实现新建。值得精读的三个文件core/llm/llms/index.ts理解模型注册与实例化机制core/edit/streamDiffLines.ts理解流式 diff 如何落到文件core/indexing/CodebaseIndexer.ts理解索引构建全流程从提交 PR 到被合并——协作与进阶提交前过一遍这张清单相关测试已更新core下npm test通过根目录npm run format跑过Prettier 无 diff改动聚焦不相关的修复拆成独立 PR新特性附了截图或短录屏docs/里受影响页面已同步填了 PR 模板并在评论区签了 CLA审查时维护者主要盯三件事命名与可读性是否跟得上项目既有风格、索引和构建这类热路径的性能影响、同一份 core 在 VS Code 与 JetBrains 两侧是否都兼容。想再深入一点可以从认领一个模块的维护、参与项目讨论提 RFC、到帮新贡献者看 PR 逐级走。第一次贡献不必贪大一个能跑通的文档 PR 就是最好的开始。git clone https://gitcode.com/GitHub_Trending/co/continue下一步就做这件事clone 下来从 issue 列表挑一个 good first issue按上面的流程跑通环境然后提交你的第一个 PR。【免费下载链接】continueopen-source coding agent项目地址: https://gitcode.com/GitHub_Trending/co/continue创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表