如何把 OpenSpace 接入 DeepCode(MCP 服务器加两个 host Skills)并验证嵌套执行?
如何把 OpenSpace 接入 DeepCodeMCP 服务器加两个 host Skills并验证嵌套执行【免费下载链接】DeepCodeDeepCode: Open Agentic Coding (Agent Harness Loop Engineering Multi-Agent Orchestration)项目地址: https://gitcode.com/GitHub_Trending/deepc/DeepCode目标是把外部项目 OpenSpace 接到 DeepCode 里让它的 MCP 服务器openspace-mcp和两个 host Skillsskill-discovery、delegate-task都能用并实际跑通一次外层 DeepCode 调用execute_task、内层 OpenSpace 完成编码任务的嵌套执行。按 docs/integrations/OPENSPACE.md 的说明接入只走两条普通扩展路径openspace-mcp作为标准 MCP 服务器放进顶层mcpServers配置两个 host Skills 目录按普通 DeepCode Skill 导入——没有 OpenSpace 专属运行时或 Plugin 适配器因此 MCP 生命周期、凭据引用、工具过滤、权限、超时和取消策略对 OpenSpace 与其他 MCP 服务器完全一致。前提条件DeepCode 已安装安装与初始化见 docs/guide/getting-started.md配置位于~/.deepcode/本机有 Python 3.12 或更高版本并且你手上有一个可信的测试仓库用于最终验证。安装 OpenSpace 并确认可用OpenSpace 要求 Python 3.12 或更高版本。从源仓库安装并验证它的控制台入口点git clone https://github.com/HKUDS/OpenSpace.git cd OpenSpace python3.12 -m pip install -e . mcp1.29,2 openspace-mcp --helpmcp1.29,2这个显式版本区间目前是必需的OpenSpace 源码使用 MCP Python SDK 1.x 的FastMCP导入而它上游的依赖范围仍是mcp1.0.0如果不加上限全新解析器可能装到 MCP 2.x导致openspace-mcp在启动前就失败。DeepCode 自带的 MCP 客户端也锁定在 2 以下但 OpenSpace 可执行文件运行在自己的 Python 环境里约束必须单独写。注意在后续导入 host Skills 时OpenSpace 仓库要一直保留在磁盘上。导入两个 host Skills进入目标项目目录把 OpenSpace 仓库里的两个 host Skills 目录导入为独立 Skillcd /absolute/path/to/project deepcode skill import /absolute/path/to/OpenSpace/openspace/host_skills/skill-discovery deepcode skill import /absolute/path/to/OpenSpace/openspace/host_skills/delegate-task deepcode skill list两条deepcode skill import命令里的/absolute/path/to/...需要替换为你机器上项目目录和 OpenSpace 仓库的实际绝对路径。项目级导入会把 Skills 复制到project/.agents/skills作为可审查的仓库文件保留Skills 存放约定见 docs/guide/skills-and-memory.md。两条命令都加--scope user则导入到用户目录对所有项目可用。deepcode skill list应该能看到skill-discovery和delegate-task。后续配置 MCP 时用到的OPENSPACE_HOST_SKILL_DIRS解析到的是当前项目自己的.agents/skills目录而不是 OpenSpace 源码里的那份副本。把 openspace 服务器加入 MCP 配置DeepCode 的用户级 MCP 服务器定义在~/.deepcode/deepcode_config.json的顶层mcpServers下参见 docs/integrations/MCP.md。把 examples/mcp/openspace.deepcode_config.json 的相关内容复制进去按需替换模型{ mcpServers: { openspace: { type: stdio, command: openspace-mcp, cwd: ${workspace}, env: { OPENSPACE_WORKSPACE: ${workspace}, OPENSPACE_HOST_SKILL_DIRS: ${workspace}/.agents/skills, OPENSPACE_MODEL: openrouter/anthropic/claude-sonnet-4.5, OPENSPACE_CLOUD_MODE: off, OPENSPACE_SKIP_DOTENV: 1 }, credentialEnv: { OPENROUTER_API_KEY: { credentialRef: provider:openrouter } }, enabledTools: [ search_skills, execute_task, fix_skill, cloud_browse_skills, cloud_auth_flow, upload_skill ], disabledTools: [ cloud_browse_skills, cloud_auth_flow, upload_skill ], approvalMode: prompt, tools: { search_skills: { approvalMode: auto } }, startupTimeoutSeconds: 30, toolTimeoutSeconds: 1200 } } }这份示例配置的用意文档原文逐条说明credentialEnv从 DeepCode 的私有 provider 凭据库解析 OpenRouter key而不是把密钥序列化进 JSONOPENSPACE_SKIP_DOTENV: 1禁用隐式.env加载子进程只拿到声明过的凭据云认证、云导入、上传工具cloud_browse_skills、cloud_auth_flow、upload_skill保持禁用长时或变更类工具execute_task、fix_skill执行前先询问本地search_skills走auto并继承 DeepCode 全局策略execute_task允许最长 1,200 秒对应 OpenSpace 对长任务的建议。${workspace}只在 MCP 进程启动时由 DeepCode 展开一次用于子进程工作目录、OPENSPACE_WORKSPACE和OPENSPACE_HOST_SKILL_DIRS它不是环境里 shell 变量的展开。因为用的就是这个占位符同一份用户级 MCP 定义会跟随当前 CLI、Desktop 或 App Server 活动项目而不是绑死某个任务仓库。配置引用了 DeepCode 的 OpenRouter 连接这个连接必须真实存在deepcode provider set openrouter --template openrouter --api-key deepcode provider test openrouter --model model-id deepcode mcp list--api-key打开隐藏输入密钥不会出现在 shell 历史里model-id替换为你要测试的模型标识。deepcode mcp list中应能看到openspace服务器条目。如果用 Desktop 而不是改配置文件打开MCP → Connect an MCP server创建同一台服务器凭据绑定选择 user scope。为嵌套执行配置 OpenSpace 自己的权限这是最容易踩空的一步批准mcp__openspace__execute_task只授权了这一次外层 MCP 调用。被该调用启动的 OpenSpace agent 有自己独立的权限引擎打不开 DeepCode 的审批对话框在 OpenSpace 默认模式下即使 DeepCode 批准了外层调用无头文件写入也会以permission_denied停下。因此对编码项目需要创建一个被 gitignore 的project/.openspace/settings.local.json只放行 OpenSpace 实际要用到的最窄路径和测试命令。文档给出的示例规则需要按你的仓库调整{ permissions: { defaultMode: default, allow: [ Edit(src/**), Edit(test/**), Write(src/**), Write(test/**), Bash(npm test:*), Bash(git diff:*), Bash(git status:*) ] } }acceptEdits模式更宽因为它允许整个工作目录内的非敏感写入bypassPermissions更宽文档明确不推荐把它作为默认。DeepCode 不会替你生成或放宽这份 OpenSpace 策略。验证完整链路在一个可信的测试仓库里新建 DeepCode Session首次指向该目录时先按提示完成信任确认然后分两步验证先选择$skill-discovery要求做一次本地 Skill 搜索再选择$delegate-task给 OpenSpace 一个小的、可回退的编码任务。逐项核对选中的 host Skill 被记录在该 Turn 里名为mcp__openspace__...的工具只在服务器初始化之后出现search_skills在没有上传/云凭据的情况下完成execute_task或fix_skill执行前 DeepCode 会先询问中断或超时会终止挂起的 MCP 调用最终仓库 diff 和测试在 DeepCode 里完成审查。由于示例配置用了approvalMode: promptexecute_task要配合 DeepCode 的Ask访问预设使用非交互的never审批策略无法暂停确认会直接安全地拒绝该调用且 MCP 策略永远不会放宽 Session 的全局审批策略。最后记住这条安全边界一次execute_task调用会启动嵌套的 OpenSpace agentDeepCode 能批准或拒绝外层 MCP 调用但无法逐一仲裁 OpenSpace 内部的 shell 或 MCP 调用。初次测试建议为 OpenSpace 配置自己的后端和沙箱策略并放在一次性 worktree 里运行最终 diff 回到 DeepCode 审查。DeepCode 的项目信任和全局 deny/只读规则仍在外层工具边界上生效MCP 专属策略只能让判定更严格。云端功能是可选项以后启用时走 OpenSpace 的openspace-cloud-auth bootstrap-agent-key流程并从私有用户配置绑定转发任何情况下不要把裸的云或 LLM 密钥写进deepcode_config.json。【免费下载链接】DeepCodeDeepCode: Open Agentic Coding (Agent Harness Loop Engineering Multi-Agent Orchestration)项目地址: https://gitcode.com/GitHub_Trending/deepc/DeepCode创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考