SDK Installation

Install and configure the Actions SDK for building custom agents.

Requirements

Before installing the SDK, ensure you have:

  • Node.js 18+ - Required for ES2022 features
  • TypeScript 5.0+ - For decorator support
  • GCP Project - Firestore, Pub/Sub, Cloud Run access
  • LLM API Key - OpenAI, Google AI, or Anthropic

Installation

Install the Actions SDK package:

bash
1
2
3
4
5
6
7
8
# Install the Actions SDK
$ pnpm add @hyperfold/actions-sdk
# Or with npm
$ npm install @hyperfold/actions-sdk
# Or with yarn
$ yarn add @hyperfold/actions-sdk

Peer Dependencies

Install required peer dependencies for GCP services:

bash
1
2
3
4
5
6
7
# Required peer dependencies
$ pnpm add @google-cloud/firestore @google-cloud/pubsub @google-cloud/vertexai
# Optional: For specific integrations
$ pnpm add stripe # Stripe payments
$ pnpm add @shopify/shopify-api # Shopify integration
$ pnpm add openai # OpenAI models

Project Setup

Create a new agent project using the CLI template:

bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Create a new agent project from template
$ hyperfold agents init my-agent --template=negotiator
# Project structure:
my-agent/
├── src/
│ ├── agent.ts # Main agent class
│ ├── handlers/
│ │ ├── search.ts # Search handler
│ │ ├── quote.ts # Quote handler
│ │ └── checkout.ts # Checkout handler
│ └── tools/
│ └── pricing.ts # Custom pricing logic
├── config/
│ ├── agent.yaml # Agent configuration
│ └── pricing-policy.yaml # Pricing rules
├── prompts/
│ └── system.txt # System prompt
├── tests/
│ └── agent.test.ts # Unit tests
├── package.json
├── tsconfig.json
└── .env.example

TypeScript Configuration

Ensure your tsconfig.json enables decorators:

json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"compilerOptions": {
"target": "ES2022",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"lib": ["ES2022"],
"outDir": "./dist",
"rootDir": "./src",
"strict": true,
"esModuleInterop": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"declaration": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}
The experimentalDecorators and emitDecoratorMetadata options are required for SDK decorators to work correctly.

Configuration

Configure environment variables for your agent:

bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# .env
# Required: GCP project for Firestore, Pub/Sub, etc.
GOOGLE_CLOUD_PROJECT=my-project-id
GOOGLE_APPLICATION_CREDENTIALS=./service-account.json
# Required: LLM provider (choose one)
OPENAI_API_KEY=sk-...
# GOOGLE_AI_API_KEY=...
# ANTHROPIC_API_KEY=...
# Required: Payment provider (if processing payments)
STRIPE_SECRET_KEY=sk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...
# Optional: Integrations
SHOPIFY_API_KEY=shpat_...
SALESFORCE_CLIENT_ID=...

GCP Service Account

Create a service account with the following roles:

  • roles/datastore.user - Firestore access
  • roles/pubsub.publisher - Pub/Sub publishing
  • roles/pubsub.subscriber - Pub/Sub subscriptions
  • roles/aiplatform.user - Vertex AI embeddings
bash
1
2
3
4
5
6
7
8
9
10
11
12
# Create service account
$ gcloud iam service-accounts create hyperfold-agent \
--display-name="Hyperfold Agent"
# Grant required roles
$ gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:hyperfold-agent@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/datastore.user"
# Download key file
$ gcloud iam service-accounts keys create ./service-account.json \
--iam-account=hyperfold-agent@$PROJECT_ID.iam.gserviceaccount.com

Verification

Verify your installation is working:

bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Verify SDK installation
$ pnpm exec hyperfold-sdk --version
@hyperfold/actions-sdk v1.2.0
# Check TypeScript decorators work
$ pnpm tsc --noEmit
# Run local development server
$ pnpm dev
> Agent running at http://localhost:3000
> ACP manifest: http://localhost:3000/.well-known/acp/manifest.json
# Test health endpoint
$ curl http://localhost:3000/health
{"status":"healthy","version":"1.0.0"}
Your SDK is installed and ready. Start building with @HyperfoldAgent.