人工智能AI 技能MCP 服务AI 评测【免费下载链接】OpenSpaceOpenSpace: The Skill Management Layer for AI Agents -- https://open-space.cloud/项目地址https://gitcode.com/gh_mirrors/opens/OpenSpace点击查看免费下载OpenSpace 以 MCP 服务器形态接入各类宿主 Agent让宿主可以把超出自身能力的编码、DevOps、Web 调研与桌面自动化任务委托给 OpenSpace 执行并借助其本地技能库与云端技能社区自动检索、执行、进化技能。本文基于 delegate-task 技能文档 与姊妹篇 skill-discovery 技能文档结合仓库源码逐工具拆解cloud_auth_flow、execute_task、search_skills、cloud_browse_skills、fix_skill、upload_skill六个 MCP 工具的参数、调用序列与底层实现帮助读者在自己的宿主 Agent 中打通发现技能 → 委托执行 → 自动进化 → 回传/上传的完整闭环。一、为什么要委托给 OpenSpace适用场景OpenSpace 的定位是 The Skill Management Layer for AI Agents它把可复用的技能沉淀为带SKILL.md的目录并在真实使用中自动进化从而逐步降低 Token 消耗、提升可靠性。当宿主 Agent 面临以下情形之一时就应考虑把任务委托给 OpenSpace你缺乏相应能力任务需要超出你当前可用工具范围的工具或能力你尝试过但失败了你产出了错误结果而 OpenSpace 可能已经有一份经过测试的技能复杂多步骤任务任务涉及大量步骤、工具或多个环境受益于 OpenSpace 的技能库与编排能力用户明确要求用户主动要求把任务委托给 OpenSpace。无论宿主通过stdio、sse还是streamable-http连接OpenSpace 暴露的工具集完全一致均包含cloud_auth_flow、execute_task、search_skills、cloud_browse_skills、fix_skill、upload_skill六个工具。二、以 MCP 服务器方式接入启动方式与关键环境变量六个工具全部由 MCP 服务器 openspace/entrypoints/mcp/server.py 注册暴露其文档字符串给出了三种启动方式# 自动模式TTY 下走 SSE被 MCP 宿主调用时走 stdio python -m openspace.entrypoints.mcp.server # 以 SSE 传输监听 8080 端口 python -m openspace.entrypoints.mcp.server --transport sse # 以 Streamable HTTP 传输监听 8081 端口 python -m openspace.entrypoints.mcp.server --transport streamable-http # 自定义端口SSE9090 python -m openspace.entrypoints.mcp.server --transport sse --port 9090传输选择也支持环境变量OPENSPACE_MCP_TRANSPORT取值stdio/sse/streamable-http监听地址与端口分别由OPENSPACE_MCP_HOST默认127.0.0.1与OPENSPACE_MCP_PORT控制显式传入--port会被视为 HTTP/SSE 意图见 server.py 的run_mcp_server。服务器在惰性初始化 OpenSpace 引擎时会读取以下环境变量server.py_get_openspace环境变量作用默认值OPENSPACE_MODEL指定 LLM 模型由 host_detection 解析OPENSPACE_WORKSPACE工作目录无OPENSPACE_MAX_ITERATIONS引擎 grounding 最大迭代次数20OPENSPACE_ENABLE_RECORDING是否开启 shell 录制trueOPENSPACE_BACKEND_SCOPE逗号分隔的 grounding 后端范围无OPENSPACE_HOST_SKILL_DIRS逗号分隔的宿主技能目录启动时自动注册无OPENSPACE_SESSION_STORAGE_DIR/OPENSPACE_CONFIG_HOME会话存储根目录工作区下.openspaceOPENSPACE_CLOUD_API_KEY云端技能搜索/上传所需的 API Key无其中OPENSPACE_HOST_SKILL_DIRS非常关键execute_task与search_skills每次调用都会重新扫描这些目录从而立刻发现宿主 Agent 自上次调用以来新建的技能server.py_auto_register_skill_dirs。三、六个 MCP 工具总览工具职责是否需要云端cloud_auth_flow注册/登录用户并签发云端 Agent API Key是建立访问execute_task委托任务自动检索技能、执行、按需进化可选search_scopeall时search_skills本地技能检索返回结果供决策否cloud_browse_skillsLLM 引导的云端包/技能浏览与导入是fix_skill通过进化引擎执行手动 FIX 作业否本地进化upload_skill将可信技能上传至云端社区是四、cloud_auth_flow建立云端访问与 Agent 密钥仅当用户要求使用云功能或某个云端操作报告密钥缺失/无效时才需要调用cloud_auth_flow。调用时需向用户收集email与agent_namepassword只能通过安全密文输入渠道获取且长度必须为 8 到 72 个字符底层校验见 auth_flow.py_require_email_password。不要索要 passcode/OTP因为该工具不接受此类输入。若宿主支持安全密码输入直接调用{ action: bootstrap_agent_key, email: userexample.com, password: securely-collected-password, agent_name: openspace-local-agent }若不支持安全密码输入则请用户手动执行 CLIopenspace-cloud-auth bootstrap-agent-key --email userexample.com --agent-name openspace-local-agent该 CLI 由 openspace/cloud/cli/auth.py 实现支持register-user、login-user、bootstrap-agent-key、list-agents、rotate-agent-key、verify-agent-key六个子命令其中bootstrap-agent-key对应--agent-name必填参数--no-persist可禁止把密钥写入本地。底层实现openspace/cloud/auth_flow.py支持的 action 集合为register_user、login_user、bootstrap_agent_key、list_agents、rotate_agent_key、verify_agent_key。bootstrap_agent_key内部执行注册或复用用户 → 签发 owner 作用域下的 Agent 密钥 → 落盘保存 → 用 v2 smoke 或 v1 auth/me 验证的完整链路若遇到 409 名称冲突还会自动恢复已有 Agent 并轮换密钥。安全边界所有返回内容都会经过脱敏处理openspace/cloud/redaction.py工具不会返回原始 API Key、Bearer Token 或密码。完成后只向用户报告密钥是否已保存并验证通过绝不在对话中复述任何密钥内容。五、execute_task任务委托的核心入口execute_task是委托任务的唯一入口OpenSpace 会检索相关技能、执行任务并在必要时自动进化技能。{ task: Monitor Docker containers, find the highest memory one, restart it gracefully, search_scope: all }参数必填默认值说明task是—自然语言任务指令search_scope否all本地 云端无 API Key 时自动回退为仅本地max_iterations否20最大 Agent 迭代次数复杂任务调大简单任务调小底层执行链路server.pyexecute_task为自动注册OPENSPACE_HOST_SKILL_DIRS与skill_dirs参数指向的技能目录若search_scopeall且云端可用OPENSPACE_CLOUD_API_KEY已配置且云模式启用先做云端技能候选检索通过openspace.execute(ExecutionRequest(...))执行任务技能引导执行失败时回退到纯工具任务结束后为每个进化出的技能在其目录内写入.upload_meta.jsonserver.py_write_upload_meta预存origin、parent_local_skill_ids、change_summary等上传元数据。响应由 openspace/entrypoints/mcp/response.py 统一格式化核心结构如下{ status: success, response: Task completed successfully, evolved_skills: [ { skill_dir: /path/to/skills/new-skill, name: new-skill, origin: captured, change_summary: Captured reusable workflow pattern, upload_ready: true } ] }响应中还会包含execution_time、iterations、skills_used、task_id、session_id、tool_call_count与截断的tool_summary。若进化出技能response.py还会附加action_required提示默认以private可见性上传除非用户明确要求公开分享。当search_scopeall且云端检索到候选技能时响应额外携带cloud_skill_candidates数组与cloud_action_required说明——云端候选不会静默下载必须显式调用cloud_browse_skills(actionlocal_placement)与import_skill完成本地分类路径选择与导入对应 server.py_cloud_search_candidates的只发现、不下载设计。六、search_skills本地技能检索在决定自己处理还是委托之前先用search_skills检索本地已安装技能{ query: docker container monitoring }参数必填默认值说明query是—检索词自然语言或关键词limit否20最大返回条数与execute_task内部检索的区别search_skills把结果返回给 Agent 用于决策而execute_task的内部检索直接喂给执行引擎Agent 看不到检索中间结果。需要云端结果时必须改用cloud_browse_skills以便逐个检查包与技能并显式选择避免两处 Agent 决策重叠。底层排序由 openspace/cloud/search.py 的hybrid_search_skills与SkillSearchEngine完成Phase 1 BM25 粗排 → Phase 2/3 向量余弦相似度 词法加权 → Phase 4 去重截断search.pySkillSearchEngine.search。嵌入向量优先使用已配置的 OpenAI其次 OpenRouter均不可用时回退为纯词法排序本地候选与云端候选在构建时都会经过check_skill_safety安全过滤search.pybuild_local_candidates。七、cloud_browse_skillsLLM 引导的云端技能与包浏览这是一个单工具分步走stepwise的云端入口每次调用后按返回的next_actions[].action继续调用同一个工具让 LLM 全程参与包/技能的选择决策。合法 action 包括local_placement、local_taxonomy、recall、pull_projection、search_skills、fetch_skill_detail、import_skill、import_package_bundle并支持若干别名见 server.pycloud_browse_skills。推荐流程技能优先{ action: search_skills, query: browser login automation, limit: 5 }检查results[]每项包含cloud_skill_id、title、summary、package_id、package_path。需要先看包大纲再选技能时使用包发现{ action: recall, query: browser login automation, limit: 5 } { action: pull_projection, search_id: search_id, package_ids: [package_id] }检查pulls[].packages[]、pulls[].skills[]、projection_hash与root_package_path。注意这是 JSON 投影而非真实的 zip 文件。需要在一个包内做技能级排序时使用包内限定搜索{ action: search_skills, package_id: package_id, query: browser login automation }导入前可选地查看精确元数据{ action: fetch_skill_detail, cloud_skill_id: cloud_skill_id }选择或创建本地分类路径{ action: local_placement, query: browser login automation } { action: local_placement, local_category_path: technology/computing/browser-automation }检查返回的existing_path_candidates、new_child_path_examples与local_category_path_policy。可以选择已有路径也可以在其附近新建子路径。对 DERIVED/CAPTURED 进化建议需把选定的路径放入local_category_path。导入精确选定的云技能到所选本地路径{ action: import_skill, cloud_skill_id: cloud_skill_id, local_category_path: technology/computing/browser-automation/login }local_category_path是与云包路径package_path相互独立的本地包分类路径它采用与云包路径相同的分类风格但独立存储可以从类云路径起步、再用更细的本地子路径分化对应 server.py_local_category_path_policy与 skill-discovery 技能文档。需要包大纲或捆绑产物时显式导入包 bundle{ action: import_package_bundle, package_id: package_id }不要把包 bundle 导入当作默认搜索步骤——它只在包已被选中、且需要包大纲文件或捆绑产物时使用server.pycloud_import_package_bundle。八、fix_skill对损坏技能执行手动 FIX当本地技能损坏时fix_skill会先创建TriggerJob再让 OpenSpace 通过进化引擎精确消费drain该作业。它从不直接编辑技能文件而是走完整的 FIX 进化流水线。{ skill_dir: /path/to/skills/weather-api, direction: The upstream endpoint path changed; update all URLs and add the new units parameter }参数必填说明skill_dir是技能目录路径必须包含SKILL.mddirection是哪里坏了、怎么修——越具体越好底层流程server.pyfix_skill校验SKILL.md存在 → 注册技能目录并同步 SkillStore → 构造ManualTriggerRequest(actionfix, ...)来自 openspace/skill_engine/triggers→trigger_engine.from_manual_request生成 TriggerJob → 通过 runtime 的drain_evolution_jobs驱动进化引擎完成决策、准入、验证与提交。状态判定只有当status为fixed时才能认为技能已修复若结果是accepted_audit_only进化模式为 audit_only、rejected或failed不要自动调用upload_skill而应向用户报告 job/action ID 与原因对应 server.py_manual_fix_result的多种终态。九、upload_skill把可信技能上传到云端社区上传前有一道本地信任门槛公/私上传都要求本地 SkillStore 中存在匹配的trusted记录provisional 与 unknown 状态的技能只能留在本地。该门槛由 openspace/cloud/upload_trust.py 的require_trusted_skill_for_upload实现可能抛出三种拦截错误码SKILL_NOT_TRUSTED本地记录存在但信任状态未达trustedSKILL_TRUST_UNKNOWNSkillStore 不可用、或目录/ID 未注册SKILL_RECORD_PATH_MISMATCHSkillStore 记录与实际目录路径不匹配。这三种错误都会在触达云端之前拦截upload_trust.pyrequire_trusted_skill_for_upload。对于已提交committed的进化技能血缘元数据已通过.upload_meta.json预存只需提供skill_dir与visibility非 fix 且无预存放置的上传则先使用upload_skill作为分步式云端包选择器再执行上传。交互式云端放置流程4 步不带cloud_package_path调用upload_skill(skill_dir...)检查domain_index.sub_domain_nodes与interaction_flow调用upload_skill(skill_dir..., cloud_sub_domain_package_id...)检查一个有界的子树选择subtree.selectable_regular_packages[].package_path中的已有包或在subtree.creatable_parent_packages[].package_path下追加一个新子路径段调用upload_skill(skill_dir..., visibility..., cloud_package_path...)工具会把路径解析为确认的 UUID 放置、保存.upload_meta.json、重新校验后上传。新云包路径允许创建但只能作为合格父包下的一个新 regular package 段禁止直接上传到 domain/sub-domain 路径也禁止一次上传创建多个缺失段对应 server.py_upload_cloud_package_path_policy。{ skill_dir: /path/to/skills/weather-api, visibility: private, cloud_package_path: Technology/Computing/API clients }参数必填默认值说明skill_dir是—技能目录路径必须包含SKILL.mdvisibility否privatepublic或privatecloud_package_path非 fix 且无预存放置时必填自动Agent 选择的已有 regular 包路径或合格父包下的一个新子 regular 包段cloud_sub_domain_package_id否—选择/创建cloud_package_path前浏览一个上传子树cloud_package_query否—过滤云端包选择器结果cloud_package_path_prefix否—展开/过滤一个云路径前缀cloud_package_limit否12选择器最大返回行数origin否自动技能创建方式parent_local_skill_ids否自动本地父技能 IDOpenSpace 上传前解析为云端父 ID关于origin的约束server.pyupload_skill文档字符串imported/captured不得携带父技能 IDderived至少需要 1 个带云绑定的父技能fixed需要恰好 1 个带云绑定的父技能。此外同时传入cloud_package_path与cloud_package_id/cloud_parent_package_idcloud_new_package_segment会被判为PACKAGE_PLACEMENT_CONFLICTING_FIELDS冲突错误。何时上传场景动作技能处于 provisional 或不在 SkillStore 中保留本地成功使用直到其成为 trusted技能原本来自云端上传为private除非用户明确要求分享改进可信的修复/进化具有普遍价值广泛测试期上传为private仅在用户明确分享意图时用public修复/进化仅针对特定项目上传为private或跳过用户要求分享按用户希望的可见性上传十、注意事项与最佳实践execute_task可能耗时数分钟——这是多步骤任务的正常表现若execute_task超时先检查宿主侧的 MCP 超时设置建议客户端单次工具调用超时 ≥ 600 秒。从stdio换成 HTTPsse/streamable-http并不能消除宿主侧的单次调用时限server.py 文档字符串upload_skill需要云端 API Key即使上传失败进化出的技能仍保存在本地SKILL_NOT_TRUSTED、SKILL_TRUST_UNKNOWN、SKILL_RECORD_PATH_MISMATCH会在本地拦截阻止进入云端包浏览或上传阶段每次调用 OpenSpace 后都要向用户汇报任务结果、是否进化出新技能、以及你的上传决策。相关仓库资源技能定义openspace/host_skills/delegate-task/SKILL.md、openspace/host_skills/skill-discovery/SKILL.mdMCP 服务器openspace/entrypoints/mcp/server.py、openspace/entrypoints/mcp/response.py云端认证与 CLIopenspace/cloud/auth_flow.py、openspace/cloud/cli/auth.py、openspace/cloud/redaction.py技能搜索与信任门槛openspace/cloud/search.py、openspace/cloud/upload_trust.py包放置与本地映射openspace/cloud/package_placement.py、openspace/cloud/local_mapping.py进化触发openspace/skill_engine/triggers赞分享人工智能AI 技能MCP 服务AI 评测【免费下载链接】OpenSpaceOpenSpace: The Skill Management Layer for AI Agents -- https://open-space.cloud/项目地址https://gitcode.com/gh_mirrors/opens/OpenSpace点击查看免费下载相关推荐H2O-3 CoxPH 模型 init 参数详解系数初始值的底层原理与实战用法H2O 3 CoxPH 模型 init 参数详解系数初始值的底层原理与实战用法 本文聚焦 H2O 3 中 Cox 比例风险模型Cox Proportiona机器学习深度学习AutoML大数据后端Apache Spark SQL UNPIVOT 子句完整指南语法、参数与底层实现原理Apache Spark SQL UNPIVOT 子句完整指南语法、参数与底层实现原理 UNPIVOT 是 Apache Spark SQL 在 SELECT大数据数据分析批处理流处理机器学习图计算JSZip generateAsync 完整指南选项详解、底层原理与实战示例JSZip generateAsync 完整指南选项详解、底层原理与实战示例 导读 generateAsync options , onUpdate 是 JS开发工具上一篇环世界模组管理效率工具从入门到精通下一篇老旧 Mac 免费升级 macOS 完整指南OCLP 实操教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?