fischer-agentkit/src/agentkit/cli/templates.py

141 lines
3.0 KiB
Python

"""Template files for agentkit init"""
AGENTKIT_YAML = """\
# AgentKit Configuration
# See https://github.com/fischer/agentkit for documentation
server:
host: "0.0.0.0"
port: 8001
workers: 1
api_key: null # Set to enable API key authentication
rate_limit: 60 # Requests per minute
llm:
default_provider: "openai"
providers:
openai:
api_key: "${OPENAI_API_KEY}"
base_url: "https://api.openai.com/v1"
models:
gpt-4o:
alias: "default"
gpt-4o-mini:
alias: "fast"
deepseek:
api_key: "${DEEPSEEK_API_KEY}"
base_url: "https://api.deepseek.com/v1"
models:
deepseek-chat:
alias: "deepseek"
memory:
semantic:
backend: "pgvector"
connection: "${DATABASE_URL:-postgresql+asyncpg://agentkit:agentkit@localhost:5432/agentkit}"
episodic:
backend: "redis"
connection: "${REDIS_URL:-redis://localhost:6379/0}"
working:
backend: "redis"
connection: "${REDIS_URL:-redis://localhost:6379/1}"
skills:
auto_discover: true
paths:
- "./skills"
logging:
level: "INFO"
format: "text" # "text" or "json"
"""
ENV_EXAMPLE = """\
# AgentKit Environment Variables
# Copy this file to .env and fill in your values
# LLM API Keys (at least one required)
OPENAI_API_KEY=sk-your-openai-key
DEEPSEEK_API_KEY=sk-your-deepseek-key
# Database (required for semantic memory)
DATABASE_URL=postgresql+asyncpg://agentkit:agentkit@localhost:5432/agentkit
# Redis (required for episodic/working memory)
REDIS_URL=redis://localhost:6379/0
# Server (optional)
AGENTKIT_API_KEY= # Set to enable API key authentication
"""
DOCKER_COMPOSE = """\
version: "3.8"
services:
agentkit:
build: .
command: serve --host 0.0.0.0 --port 8001
ports:
- "8001:8001"
env_file: .env
depends_on:
redis:
condition: service_healthy
postgres:
condition: service_healthy
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8001/api/v1/health')"]
interval: 30s
timeout: 10s
retries: 3
redis:
image: redis:7-alpine
ports:
- "6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
postgres:
image: pgvector/pgvector:pg15
ports:
- "5432:5432"
environment:
POSTGRES_USER: agentkit
POSTGRES_PASSWORD: agentkit
POSTGRES_DB: agentkit
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U agentkit"]
interval: 10s
timeout: 5s
retries: 5
volumes:
pgdata:
"""
EXAMPLE_SKILL = """\
# Example Skill Configuration
name: example_skill
description: "An example skill for demonstration"
agent_type: assistant
mode: llm_generate
version: "1.0"
prompt: |
You are a helpful assistant. Respond to the user's request clearly and concisely.
tools: []
quality_gate:
enabled: false
evolution:
enabled: false
"""