项目简介
Snak Agent Template 是一个 TypeScript 项目模板,用于快速构建基于 Snak 框架的 AI 代理。这些代理能够与大型语言模型 (LLM) 交互,并利用工具(Plugins)执行任务,特别适合与 Starknet 区块链集成。此模板配置了代理作为 Model Context Protocol (MCP) 服务器运行,方便 LLM 客户端通过标准协议进行连接和交互,为其提供上下文和功能。
主要功能点
- 构建 AI 代理: 提供一个基础结构,用于开发能够理解并响应 LLM 指令的智能代理。
- 集成外部工具/插件: 支持通过配置轻松添加自定义工具,使代理能够执行特定任务,例如与 Starknet 区块链进行交互、查询数据等。
- 作为 MCP 服务器运行: 核心功能之一是能够以 MCP 服务器的角色启动,监听来自 LLM 客户端的请求(如执行工具、获取资源等)。
- 上下文和记忆管理: 通过集成数据库(如 PostgreSQL with pgvector),支持代理维护会话状态和长期记忆。
- Starknet 集成示例: 模板默认包含一个连接 Starknet 并查询区块号的示例,展示了如何构建链上交互功能。
安装步骤
- 环境准备: 确保您的系统已安装 Node.js (请参照 'package.json' 中的版本要求), pnpm 包管理器, Git 版本控制工具, 以及 Docker (用于运行 PostgreSQL 数据库)。
- 克隆仓库:
git clone https://github.com/kasarlabs/snak-template.git cd snak-template - 安装依赖:
pnpm install - 配置环境变量: 在项目根目录创建 '.env' 文件,并填写以下必需的环境变量:
关于支持的 AI 提供商和模型列表,请参考 Snak 主仓库的文档。# Starknet 配置 (必需) STARKNET_PUBLIC_ADDRESS="您的 Starknet 公钥地址" STARKNET_PRIVATE_KEY="您的 Starknet 私钥" STARKNET_RPC_URL="您的 Starknet RPC 节点 URL" # AI 配置 (必需) AI_PROVIDER_API_KEY="您的 AI 提供商 API Key (例如 OpenAI, Anthropic)" AI_MODEL="您想使用的 AI 模型名称 (例如 gpt-4, claude-3-opus-20240229)" AI_PROVIDER="您的 AI 提供商名称 (例如 openai, anthropic)" # 数据库配置 (与 Docker Compose 配合使用) POSTGRES_USER="postgres" POSTGRES_PASSWORD="password" POSTGRES_DB="snak" POSTGRES_HOST="localhost" # 如果 Docker 在本地运行,通常是 localhost 或 host.docker.internal POSTGRES_PORT="5454" - 启动数据库: 如果您计划使用模板提供的 PostgreSQL 数据库,请通过 Docker Compose 启动它:
数据库将默认运行在宿主机的 5454 端口。pnpm run docker-setup
服务器配置
此 Snak 代理可以作为 MCP 服务器启动。要使 MCP 客户端连接并使用此代理,客户端需要知道如何启动这个服务器进程以及如何与其通信。
以下是 MCP 客户端配置中用于启动此 Snak 代理服务器的示例 'command' 和 'args':
// 这是一个示例配置片段,表示如何启动 Snak 代理作为 MCP 服务器 { "server_name": "我的SnakStarknet代理", // 客户端自定义的服务器名称 "command": "pnpm", // 启动服务器的命令,即使用 pnpm 执行脚本 "args": ["run", "start"] // 传递给命令的参数。这将执行项目 package.json 文件中定义的 'start' 脚本,启动 Snak 代理。 // 警告: 上述配置仅用于启动服务器进程。MCP 客户端还需要知道具体的连接方式(如协议: stdio, sse, websocket; 地址; 端口等)。 // 这些连接细节需要在项目的 config/agents/default.agent.json 文件中的 MCP 服务器配置部分进行设置, // 然后根据该文件中的实际配置来调整 MCP 客户端的连接参数。 }
用户需要编辑 'config/agents/default.agent.json' 文件来定义 MCP 服务器的具体监听细节(例如,如果使用 WebSocket,需要指定监听的地址和端口)。MCP 客户端则需要根据这些配置信息来建立与服务器的连接。
基本使用方法
- 完成安装和配置: 确保已按照上述步骤安装依赖、配置 '.env' 文件,并(可选)启动了数据库。
- 构建项目:
这将编译 TypeScript 代码到 'dist' 目录。pnpm run build - 启动代理 (MCP 服务器):
执行此命令将根据 'config/agents/default.agent.json' 中的配置启动 Snak 代理。如果配置了 MCP 服务器,代理将在启动后开始监听来自 MCP 客户端的连接请求。此时,您的 MCP 客户端即可连接到此代理并与其交互。请注意,默认的启动脚本 ('pnpm run start') 在初始化完成后可能会执行一个示例性的 Starknet 查询。pnpm run start
信息
分类
AI与计算