使用OpenSpace构建自我进化的AI代理:技能、MCP、血统与低成本复用
本教程详细介绍如何使用OpenSpace框架创建自我进化的AI代理,涵盖从环境设置、自定义技能创建到MCP集成和利用SQLite管理代理血统的完整工作流程,帮助构建更高效、可复用的代理系统。
本教程将引导你使用OpenSpace框架构建一个能够自我进化的AI代理系统。整个过程从环境设置开始,逐步深入到自定义技能创建、MCP(Model Context Protocol)集成,以及利用SQLite管理代理血统,最终实现低成本、可复用的代理行为。
首先,你需要准备Python 3.12以上的运行环境,并配置API密钥(如Anthropic或OpenAI)。通过稀疏克隆获取OpenSpace仓库,克隆时指定--filter=blob:none和--sparse,然后设置稀疏检出模式排除assets目录,再以可编辑模式安装项目。教程中详细演示了如何创建工作区(workspace)和技能目录(my_agent_skills),并设置环境变量,包括模型名称、工作区路径、宿主技能目录路径以及可选的云API密钥。环境变量写入OpenSpace目录下的.env文件和根目录下的.env文件中,便于后续使用。
在异步执行环境中,你可以使用OpenSpace的Python API通过async with OpenSpace() as cs:的方式提交任务。例如,一个生成员工工资单的任务——读取CSV员工工时数据,计算加班费(超过40小时1.5倍)并输出结果——会触发OpenSpace自动演化出新的技能。这些技能会被存储在SQLite数据库中,包含版本号、起源类型和血统元数据。你可以通过检查数据库结构了解技能是如何被创建(FIX)、派生(DERIVED)和捕获(CAPTURED)的。教程还演示了如何通过dump_db函数查看数据库中的表结构和记录。
为了展示技能复用,教程让你提交一个相关的税务计算任务——增加一个包含税率CSV,计算净工资——观察OpenSpace如何利用之前生成的工资单技能,实现低token消耗的智能重用。你还可以创建自定义的SKILL.md文件,定义新的技能,例如从CSV生成Markdown报告。将该文件放置在宿主技能目录中,代理在运行时就能自动发现并使用它们。教程还安装了delegate-task和skill-discovery这两个宿主技能,并创建了一个demo.csv用于测试。
MCP集成是另一大亮点。你可以启动OpenSpace的MCP服务器(基于streamable HTTP传输,绑定到127.0.0.1:8081),并通过GET请求探测其端点。即使返回MCP特定的HTTP状态码,也能确认服务器运行正常。教程还提供了MCP宿主配置示例,方便外部代理(如Claude Code、Codex等)连接工作区和技能目录。
最后,教程将展示如何将自定义技能上传到OpenSpace云端(如果配置了云API密钥),并检验仓库中的示例进化数据库(showcase/.openspace/openspace.db),该数据库包含60多个技能。通过按起源类型(FIX、DERIVED、CAPTURED等)聚合技能,你可以清晰了解进化模式的分布。整个流程完成后,你将拥有一个完整的自我进化代理系统,能通过技能重用降低token消耗,并支持仪表盘(需要Node.js 20以上)通过openspace-dashboard --port 7788命令进行可视化监控。