
人工智能AI 应用AI Agent交互助手MCP Clients本地部署【免费下载链接】CodePilotA multi-model AI agent desktop client — connect any AI provider, extend with MCP skills, control from your phone. Built with Electron Next.js.项目地址https://gitcode.com/gh_mirrors/co0dep/CodePilot点击查看免费下载本文基于 CodePilot 仓库内的 Harness Home 产品思考、技术交接文档 与 执行计划 整理并结合src/lib/harness-home/、src/lib/assets/等源码实现进行印证与展开。Harness Home 是 CodePilot 中用户所有 Harness的领域聚合根——它不是一张新增的 UI 页面而是一整套以用户所有权ownership与可移植性portability为第一原则的领域模型与文件系统协议。它解决的核心问题是当用户长期积累的助理身份、Memory、Skill、MCP、CLI、Rules 与生成素材的生命周期长于任何单个模型、CLI 或 Agent 框架时如何让这些资产不被任何运行时绑架。读完本文你将掌握 Harness Home 的领域边界、文件事实源写模型、L0–L3 分级接入策略、Capability Package 设计、Asset Library 的 durable 语义以及 CodePilot 作为 Full Reference Runtime 的可测试 conformance 约束。一、为什么 Harness Home 不是一张新页面1.1 用户真正要拥有的资产清单产品思考文档明确列出了用户长期拥有的六类内容它们构成了 Harness Home 的领域边界助理身份与 Memory个人助理的 identity 与长期记忆包括memory.md、daily memory 等文件Skill、MCP、CLI、Rules 与它们的配置即能力Capabilities维度的资产项目 / 助理 / Runtime 下的 scope 与覆盖同一能力在不同作用域下的配置与覆盖规则图片、视频、音频、网页等可复用素材即资产Assets维度由 Skill 承载的工作流、设计方法和可视化规则创作方法论层面的资产。这些内容的生命周期通常比单个模型、CLI 或 Agent 框架更长。因此 insights 文档 的定位是Harness Home首先是 ownership 与 portability 的产品承诺其次才是 UI 信息架构。1.2 领域统一、入口分散的决策执行计划 Program 状态表 中记录的 UI 决策是不新增独立 Harness Home 页面素材继续进入素材库Assistant services 从助理入口激活推荐 / 安装 / 来源页暂缓。理由是用户当前的任务心智是分散的配默认值、权限和路径时会去Settings管 Skill / MCP / CLI 时会去Plugins整理记忆时会从Assistant Workspace进入找生成结果时会去素材库继续创作时会从项目或聊天引用Asset。把所有这些入口强行合并到一张 Home 页面只会先增加抽象成本却不一定增加控制感。技术上这对应了代码中的分层src/lib/harness-home/承载领域合同与仓库而src/app/settings/、src/app/plugins/、src/app/gallery/等保持各自入口共享同一领域对象。二、文件不隔离Assistant 服务显式激活2.1 助理目录首先是普通目录2026-08-04 用户明确纠正了隔离的边界项目若主动使用助理目录AGENTS.md、CLAUDE.md、memory.md、daily memory 和其他文件都应保持可读原生项目规则照常生效用户也可以显式要求模型读取 Memory 文件。Program C 不把助理目录做成沙箱也不把文件拆到另一个地方——binding 不是文件 ACL。2.2 只有显式 binding 才开启自动服务需要单独控制的是自动行为项目聊天不能仅因 cwd 相同就自动获得助理 identity 合成Memory hint / search / index / writeback / extractionHeartbeat心跳。执行计划 D3 决策 明确working_directory不是 Assistant service activation token也不是文件拒绝规则。Program C P0 的目标是把当前按 cwd equality 推断的实现收窄为persistedassistant_binding_ref同时保留普通文件读取的正例。当前assistant_binding_ref尚未落地见 handover 文档仍未关闭节这是阅读本文时需要注意的实现前提。三、Canonical Repository文件是事实源数据库只做索引3.1 写模型总览Handover 文档给出了明确的职责划分文件是 definition、identity、memory 和 method 的事实源SQLite 只承担 Asset、索引、关联和迁移状态。对应到源码src/lib/harness-home/repository/是文件事实源的实现包含 file-repository.ts、writer-lease.ts、transaction.ts、hash.ts 与 paths.ts。3.2 固定写入顺序Handover 文档记录的写入顺序为六步源码中FileHarnessRepository.commit()file-repository.ts逐一落实校验 root、scope、schema、Secret 和引用commit 前会校验harnessId不可变、generation 必须是expectedGeneration 1拒绝 last-write-wins、manifest 中引用的每条 path 都必须与写入内容 hash 一致取得单写者 leaseacquireWriterLease负责独占写权崩溃恢复先要求 opaque machine identity 相同再由本机 OS 证明原 owner PID 已死亡异机或旧版无 identity 的 lease 始终保留冲突recoverDeadWriterLease在同一 root 下建立 staged transaction 和 prepared journalprepareRepositoryTransaction生成事务 journal校验 expected hash、写临时文件并 durable flushprepared/committed journal 自身先 fsync 再原子替换平台支持时同步父目录manifest-last 原子替换manifest 最后落盘保证内容引用在 manifest 之前可见journal 收口刷新 consistency generationapplyPreparedTransaction后刷新内存 manifest 与 lease。3.3 路径安全与只读一致性扫描路径校验必须同时覆盖lexical containment、realpath containment 和 symlink 拒绝paths.ts中的assertNoSymlinkTraversal/resolveRepositoryPath。journal 中记录的 staged path 也要重新验证——journal 不能被当作可信输入。启动扫描按 transaction 目录独立容错缺 journal 的不可恢复 staging 会被清理但不能遮住同级有效事务损坏 journal 仍 fail closed且失败打开必定释放刚取得的 writer lease。只读打开会进行 consistency scanscanConsistency()file-repository.ts。扫描用1 MiB 流式 hash并按dev/ino/size/mtimeNs/ctimeNs缓存最多 32 个 generationMAX_CONSISTENCY_CACHE_GENERATIONS 32。未变化文件不会每轮重复读完整内容能改变这组 stat identity 的外部编辑会触发重新 hash。但注意保持全部五项完全不变的底层替换不在缓存机制的可观察范围内不能笼统宣称任何外部编辑都必然被缓存键发现。3.4 Taste Memory 与 Creative Method 的门禁Taste Memory 按记录隔离合法记录继续进入 Runtime projectionJSON/schema/scope/evidence 结构损坏的历史记录保留在文件事实源中以id/path/contentHash/reason返回诊断不让整个 GET 或投影失败。L1 import 在写入前执行同一 evidence 校验对同一损坏 identity 的更新 / 撤销 fail closed必须先显式修复。Creative Method 的 trigger/non-trigger在写入、导入与历史读取时共用逐项校验trim 后不能为空、长度不超过 240、不能含 C0/C1 控制字符。confirmed状态也不能绕过该门禁因此空 trigger 不会意外注入每轮上下文空 non-trigger 也不会全局压制方法。四、Secret 与中立边界canonical 文件不写私有概念4.1 SecretRef 与 SecretStore契约层 contracts.ts 定义了SecretRefexport interface SecretRef { readonly scheme: secret; readonly namespace: | environment | external-owned | (string {}); readonly key: string; readonly scope: string; readonly version: number; }关键约束是manifest、export、diagnostics 永远只含secretRef和 availability metadataSecret value 解析仍委托现有产品 secret stores当前不是 OS keychain。执行计划 D7 决策 明确secretRef只标识用途和解析 key不携带 Secret 明文src/lib/harness-home/codepilot-secret-store.ts是产品集成文件负责把中立领域绑定到现有产品 secret store但不属于 canonical schema。4.2 Harness boundary guardcanonical contract 不得出现codepilotprovenance、产品 MIME、Claude/Codex 私有路径或 Runtime 私有 import。仓库通过 scripts/check-harness-adapter-boundary.mjs 递归扫描 canonical 文件.husky/pre-commit对代码改动强制执行。脚本的核心逻辑canonicalHarnessFiles()遍历src/lib/harness-home下所有.ts文件仅豁免产品组合根index.ts、codepilot-secret-store.ts与adapters/、runtime/两个目录checkCanonicalNeutrality()用两个正则检测违规FRAMEWORK_IDENTITYclaude|codex|codepilot等框架身份词与RUNTIME_SPECIFIC_IMPORT指向 adapters/runtime/codex/claude 的 import。adapter changed-files 检查仍要求显式 base只允许 adapter 自身、registry 和 conformance 预算内改动。产品集成文件可以知道 CodePilot、Claude Code、Codex这种 binding 不属于 canonical schema。五、开放不等于每个框架都做成完整 RuntimeL0–L3 分级5.1 问题的根源过去接新 Harness 太重是因为读取它的资产和让它完整接管聊天执行被混成了一件事。执行计划将二者拆成两类 adapterHarnessAdapterL0 发现、L1 导入 / 导出和冲突处理adapters/types.ts 中的HarnessAdapter接口discover、importPlan、exportPlan?、projectRuntimeAdapterL2 基础执行、L3 session/stream/tool/permission/artifact/interrupt。5.2 L0–L3 分级与用户价值Level名称用户价值是否需要完整 RuntimeL0Discover安全发现外部 config / memory / skills并保留 provenance否L1Portable Projectionimport/export、冲突检测、canonical projection否L2Execution Bridge通过稳定 CLI/RPC 发起基本执行部分L3Full Runtimesession、stream、permission、artifact、interrupt、usage是新框架默认先评估 L0/L1只有用户价值明确且协议稳定时才进入 L2/L3。这样一个新框架即使没有稳定 SDK也可以先让用户带走资产。5.3 L0/L1 的落地实现adapters/base.ts 提供了三个关键实现buildAdapterImportPlan()把发现到的资产映射到 manifest 索引identity→identityRefs、rule→ruleRefs、memory→memoryRefs、skill→skillRefs、mcp→mcpRefs不支持 / 不可移植的资产单独列出buildExportPlan()为每个引用生成create | skip_same | conflict | unsupported四类动作外部目标已存在且内容不同时标记 conflict绝不覆盖applyExplicitExportPlan()必须显式用户确认confirmedByUser: true才执行dry-run 后目标若被外部修改则中止只回滚本次创建的临时文件已存在的外部文件永远不会被删除。适配器注册表 adapters/registry.ts 当前注册了三个 adapterassistant-workspace、claude-code、codex并通过descriptors.seal()封存。5.4 L2/L3 的真实能力约束L2/L3 才解决执行session、stream、tool、permission、artifact、interrupt。关键原则是真实能力缺失必须降级perceptible-only / unavailable不能靠 prompt 假装支持。这一点贯穿到 Runtime projection 与 capability 校验中见下一节。六、CodePilot 为什么仍然是 Full Reference Runtime6.1 参照实现的价值与边界开放架构需要一个能验证这套 canonical capability 真的可执行的参照实现。CodePilot Runtime 最适合承担这个角色因为它能同时控制产品 UI、工具、素材和创作链。但Full Reference 不能反过来成为锁定执行计划 D4 决策 给出五条约束stable capability 必须在 CodePilot 可执行draft capability 可以先记录为 pending外部 Runtime 独有能力可以留在 overlaycanonical 文件必须使用中立 identityCodePilot 私有绑定只留在 integration layer。核心约束是集合包含关系stable canonical capabilities ⊆ CodePilot executable capabilities。6.2 referenceStatus 三态CanonicalCapabilityRefcontracts.ts的referenceStatus只有三种pendingdraft capability尚未完成 CodePilot mount / conformanceexecutable真实 mount、contract tests、smoke evidence 已完成rejected决定不进入 canonical保留为 runtime overlay 或移除。从 draft 升 stable 必须满足referenceStatusexecutable。Settings、模型上下文和 UI 不得把pending显示为可用。6.3 可测试的 conformance 而非口号runtime/descriptor.ts 中的canonicalCapability()依据 capability matrix 计算 reference statusnative exposure 不是 unsupported 则为executablecapability 本身 unsupported 则为rejected否则pending。文件末尾的assertCodePilotFullReference()在模块加载时立即执行export function assertCodePilotFullReference(): void { const descriptor requireRuntimeDescriptor(codepilot_runtime); if (descriptor.integrationLevel ! full) { throw new Error(CodePilot Runtime must be the Full Reference Runtime.); } for (const capability of descriptor.capabilities) { if ( capability.maturity stable ( capability.referenceStatus ! executable || capability.execution ! executable ) ) { throw new Error( Stable capability ${capability.id} is not executable in the CodePilot Full Reference Runtime., ); } } }这使最完整变成可测试的 conformance——任何 stable capability 若在 CodePilot 中不可执行进程会在启动期直接报错而不是留到运行时悄悄降级。6.4 Runtime Projection 的诚实投影projection.ts 的buildRuntimeProjection()把能力分成三类executableCapabilities、perceptibleOnlyCapabilities、unavailableReasons。只有referenceStatus executable且出现在executableCapabilityIds集合中的能力才进入可执行列表其余一律降级为 perceptible-only 并附带原因——不支持项必须携带明确原因不伪造 parity。七、Capability PackageSkill/MCP/CLI 不再是互不相干的安装状态7.1 统一 Package 而非多目录真源产品思考指出Skill/MCP/CLI 不应被某个 Runtime 私有目录绑住也不应该在产品里被表达成几个互不相干的安装状态。执行计划 D6 决策 给出组合式方案Skill decides when/how Broker lets MCP / CLI / builtin / model actions invoke each other renderer presents typed Artifacts Asset Library persists materialized results and lineage即Skill 决定何时可视化、选择何种表达和如何检查质量Broker 让 Package 内外的 MCP、CLI、内置工具、renderer 与媒体模型 action 相互调用并逐跳校验 policy解释型可视化优先使用受控 primitives/templates图片/视频使用 model-specific prompt compiler 和 capability descriptorCodePilot renderer 展示 typed Artifact成功 materialize 的结果进入 Asset Library 并保留模型/参数/reference lineage。7.2 设计方法并入 Package不再建立平行产品系统历史 Design Method / Taste / creative-project foundationschema/API/tests保留兼容与安全修复但独立 Method v0、Taste UI 或大型 golden program 不再作为完成门禁。项目 art direction 可以进入 project Skill/config一次选择不会自动成为长期 Taste。creativereference package 先用少量真实场景验证效果、Runtime/model/permission/Provider policy 和更多图像/视频模型适配。对应契约层的CreativeMethodDefinitioncontracts.ts有一个值得注意的设计confirmationEvidenceRef字段在 candidate 方法中故意省略——A method cannot become active merely because a model produced plausible-sounding guidance即方法不能仅因模型产出了听起来合理的建议而自动激活。八、素材库为什么属于 Harness Homedurable Asset 语义8.1 素材是创作用户最直观的长期资产对创作用户而言Memory 和 Skill 只是过程资产图片、视频和网页结果才是最直观的长期资产。产品思考给出的需求清单真实 producer breadcrumbprompt、模型、Runtime、project 与 methodparent/derived lineage可检索标签可再次引用删除时知道是否还有消费者。因此素材库不是独立于 Harness 的 Gallery而是Harness Home 中最先可见的一块 UI。8.2 Artifact 与 Asset 分离D5执行计划 D5 决策 定义了严格分离Artifact是 turn 内临时、可流式、可失败的结果Asset是已物化、有 hash/provenance/稳定路径、可再次引用的长期对象只有 producer-backed kind 才能进入 Asset registryHTML 只有完整生成、通过 trust/CSP 分类并写入稳定 bundle 后才成为 Assetcomponent/document在没有真实 materializer、validator 和 consumer 前只属于候选设计不进入首版 schema 或 UI。8.3 producer-backed kind registryassets/kind-registry.ts 是 Asset kind 的权威注册表当前注册四种 kindimage、video、audio、html_bundle。每个 kind 必须完整声明producers、materializer、validator、previewConsumer、inputConsumers、trustPolicy、conformanceSuite缺一不可registerAssetKind会直接 throw。以 image 为例const image: AssetKindDescriptor { id: image, displayName: { zh: 图片, en: Image }, producers: [ media-saver:base64, media-saver:file-import, image-generator, codex-media-import, legacy-media-backfill, ], materializer: src/lib/media-saver.ts, validator: validateMediaAssetFile(image/*), previewConsumer: GalleryGrid/GalleryDetail/MediaPreview, inputConsumers: [image generation reference, video generation reference, chat attachment], trustPolicy: canonical-media-directory content hash, conformanceSuite: asset-library-conformance.test.ts, };assertRegisteredAssetProducer(kind, producerId)校验 producer 是否已注册——AssetKindId 由 producer-backed registry 校验不是任意字符串都算支持。8.4 HTML Bundle 的物化与安全模型网页不能只是聊天里的临时 iframe。只有完成原子物化、hash、信任边界和静态预览后才算用户真正拥有。仓库中有完整的 html-bundle-materializer.ts 与 html-bundle-security.tshandover 文档给出的安全要点HTML archive 只复制入口及其真实本地依赖闭包扫描器是quote-aware 的线性状态机anchorhref不作为归档依赖link[href]的 stylesheet/icon/apple-touch-icon/manifest/preload/modulepreload 进入本地依赖闭包preconnect/dns-prefetch 不复制文件但外部地址进入 metadata 披露script、iframe、object、embed、form、base、meta refresh、危险 scheme、scope escape 和 symlinkfail closed外部资源只记录到 metadata不在截图时加载解决外部网页资源在截图时偷偷请求的问题。Electron 缩略图electron/html-thumbnail-security.ts使用独立无缓存 partition、拒绝全部权限和新窗口/导航通过webRequest只允许当前 strict preview 的精确同源 scope。请求串行单次 12 秒 deadline超时停止并销毁隐藏窗口。Gallery 和详情只渲染持久化 PNG不嵌入归档网页。缩略图 IPC 在创建窗口前解析首个路径段必须完整匹配 canonicalws.base64url absolute path不能靠字符串前缀、包含性 token 或编码分隔符蒙混。HTMLtitle在写入 metadata 与旧 metadata 读取两侧都经过统一 display-text sanitizer移除 bidi override/isolate 与不可见控制符原始归档 bytes/hash 不改。九、Codex 重复图片问题durable Asset 与 preview-only 的区分9.1 问题本质同一张图片出现三份并不只是去重算法不够好。产品思考明确指出系统此前没有区分三种语义这是用户要长期拥有的生成结果这只是 Runtime 为了让用户看见而返回的预览这是同一结果的另一个路径/内容表示。现在的规则是generation 是 durable Assetview 是 preview-only并按路径和内容复用。这个区分也应推广到未来的视频帧、网页截图和中间渲染可见不等于值得归档归档必须是明确的生命周期跃迁。9.2 Codex 图片持久化规则Handover 文档记录 CodexMediaBlock必须显式携带 persistenceimageGeneration→durable_asset物化一次、写一个 AssetimageView→preview_only仅供聊天预览不新增 Asset DB 行同一 session 内先 generation 后 view按原始路径和内容 hash 复用preview-only 外部内容只复制进受管.previews不删除外部源。9.3 源码级实现src/lib/codex/media-import.ts 的materializeCodexEventMedia()逐块处理 Codextool_completed事件中的 media纯 base64 块无localPath原样放行data:URL 渲染不经过/api/media/serve计算 persistence优先取sourceMetadata?.persistence否则按output.type imageView推断为preview_only其余为durable_assetpreview_only走stageFileForMediaPreview复制进受管.previewsdurable_asset先尝试findReusableImportedFile按路径复用否则走importFileToLibrary落库并携带producerId: codex-media-import、runtimeId: codex_runtime、prompt、model、parentAssetIds 等 provenance 信息单块失败只丢弃该块console.warn不阻塞整条事件全部失败时事件降级为无 media聊天侧回退到结构化输出卡片。这条规则直接解决了同一张 Codex 图片在素材库出现三份其中两份只有 ID 且无法删除的问题。历史残留行不会被自动删除但现在可以通过 legacy 兼容路径管理。9.4 Asset Library 的兼容读取与永久删除asset_records是media_generations上的 typed index不替换旧表。Gallery 每次最多 backfill 100 条 terminal media成功行建立 producer-backed Assetmissing/modified 明确记录 integritypoison row 失败写asset_backfill_failures(source_table, source_id, failure_revision)并分类permanent 同 revision 跳过transient 冷却后重试在线 backfill 限制 100 行、32 MiB 累计 / 单文件与 75ms 调度预算超预算行记为 deferred显式无界迁移仍会恢复修改永久失败的迁移逻辑时必须 bump failure revision旧 permanent 失败才会重试tag 回填逐项 salvage坏标签不会让整行永久卡住。未完成、失败、外部路径或无法 materialize 的 legacy row 仍以legacyOnly卡片展示可搜索、收藏、加标签和删除 DB 记录——不再是只有 ID、无法删除的死记录。删除只移除 Asset Library 明确拥有的 canonical media 路径外部文件永远不删。永久删除有两层门禁活跃 consumer 阻断共享 content bytes 保留。十、这轮对用户已经产生的变化与成功标准10.1 已落地变化清单产品思考文档总结了这轮 Harness Home 收敛后用户能直接感知的变化Codex 生成图不再因 preview event 重复进入素材库历史失败 / 外部 / 未物化行仍能看见和管理不再是只有 ID、无法删除的死记录网页卡片只播放静态缩略图不持续运行网页搜索、标签、收藏、永久删除和详情滚动能覆盖所有注册 kind窗口变化时瀑布流增减列并填满余宽外部网页资源不会在截图时偷偷请求Harness canonical 文件有自动中立边界后续接新框架更不容易把产品私有概念写回用户数据。Handover 文档给出的验证证据包括全量测试 4917/4917、production build 通过、真实 Codex Runtime session 只调用一次 generation 与一次同图 image view、素材库唯一标记查询从 0 变为 1、Gallery 在 1024/1280/1600 宽分别呈现 2/3/5 列且控制台 0 warning / 0 error。10.2 成功标准不是代码里出现这个名字Harness Home 真正成立不是因为代码里出现这个名字而是用户能够项目若使用助理目录仍能正常读取规则与文件但不会仅凭 cwd 自动开启个人 Memory 服务换模型、换 RuntimeSkill/MCP/CLI/Asset 仍属于自己先轻量接入一个框架不被迫完成整套 Runtime安装一个 Capability Package并在不同 Runtime 通过同一 action identity 调用授权/修复由 Package 统一表达内部 bridge 证据仍可诊断从素材库继续创作而不是在聊天记录里寻找临时结果通过 Skills 与可相互调用的 actions 完成设计、可视化、图片和视频不再学习一套新的工作流产品。十一、阅读地图与仍未关闭的事项11.1 关键文件索引文件职责src/lib/harness-home/contracts.ts框架中立的 manifest、scope、provenance、SecretRef、AssetRef、Method/Taste 类型src/lib/harness-home/repository/文件事实源、lease、staging journal、原子提交、恢复、hash consistencysrc/lib/harness-home/adapters/L0/L1 source adapter 与 registrysrc/lib/harness-home/runtime/L2/L3 descriptor、projection 与产品 Runtime bindingsrc/lib/assets/producer registry、Asset typed index、lineage、HTML materializer 与永久删除src/lib/codex/media-import.tsCodex durable Asset 与 preview-only media 的去重、物化electron/html-thumbnail-security.tsHTML 静态缩略图的同源 scope 与串行超时策略scripts/check-harness-adapter-boundary.mjscanonical 中立边界扫描11.2 尚未关闭的事项诚实边界Handover 文档明确列出仍未关闭的事项阅读与引用时不应越过这条事实边界L0/L1 adapter 目前主要是 code/API/conformance surface尚无正式导入 / 导出 UI第四个 Full Runtime 仍需要少量产品 binding touchpoints未达到只注册 descriptorA4 三 Runtime 真实凭据 / permission / resume / interrupt packaged smoke 未执行packaged app 的 Asset Library human gate 未执行Program C P0Assistant service binding 尚未落地现有 identity/Memory 自动服务与 Heartbeat 仍主要依赖 cwd equalityProgram C P1canonical Skill/MCP 多为 perception-onlyCLI/renderer/model adapter 尚未进入统一 PackageCapability Broker 与三 Runtime bridges 未落地Program C P2creative尚未验证模板化可视化质量、policy resolution、media model descriptor/adapter 与完整 Artifact→Asset lineage推荐 / 安装 / 来源页面按用户决定 deferred不属于当前关闭门禁。关键回归测试可参考 handover 文档验证节包括harness-home-repository.test.ts、harness-home-runtime-conformance.test.ts、harness-home-boundary-guard.test.ts、asset-library-conformance.test.ts、codex-media-import.test.ts、html-bundle-conformance.test.ts等可作为继续深入仓库的起点。赞分享人工智能AI 应用AI Agent交互助手MCP Clients本地部署【免费下载链接】CodePilotA multi-model AI agent desktop client — connect any AI provider, extend with MCP skills, control from your phone. Built with Electron Next.js.项目地址https://gitcode.com/gh_mirrors/co0dep/CodePilot点击查看免费下载相关推荐CodePilot Harness Home 用户所有权架构指南Memory、Capability Package 与 Asset 的领域设计与落地实现CodePilot Harness Home 用户所有权架构指南Memory、Capability Package 与 Asset 的领域设计与落地实现 本文人工智能AI 应用AI Agent交互助手MCP Clients本地部署styled-components v7 Peer 依赖门槛升级指南React 19、React Native 0.85 与 css-to-react-native 移除styled components v7 Peer 依赖门槛升级指南React 19、React Native 0.85 与 css to react nat人工智能AI 应用AI Agent交互助手MCP Clients本地部署CodePilot Memory Runtime 解耦实战跨 Claude/Codex/Native 的 Runtime 中立记忆架构与辅助调用修复CodePilot Memory Runtime 解耦实战跨 Claude/Codex/Native 的 Runtime 中立记忆架构与辅助调用修复 本文基于人工智能AI 应用AI Agent交互助手MCP Clients本地部署上一篇Redis客户端终极选型Jedis/Lettuce/Redisson全方位对比下一篇3分钟上手Godot滑块控件从数值调节到交互优化创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考