Skill: tevfikgulep/agent-factory (version 1.0.5)

--- name: agent-factory description: | Ajan oluşturma ve ajanlar arası geçiş (v1.0.5 - chromium destekli + tüm yetenekler). Kullanım: - /create_agent İsim - Yeni ajan oluşturur ve config'e ekler - /switch ajan-id - Ajan değiştirir --- # Agent Factory Ajan yönetimi için kullanılır: ajan oluşturma ve ajanlar arası geçiş. ## 1. /create_agent Komutu Yeni ajan oluşturmak için: ``` /create_agent Muhasebeci /create_agent Coderman /create_agent Analist ``` ### Parametreler - **İsim**: Ajanın görünen adı - **Emoji**: Varsayılan: 🤖 - **Görev**: Varsayılan: "Kullanıcıya yardımcı olmak" ### Script Kullanımı ```bash /home/ubuntu/.openclaw/workspace/skills/agent-factory/scripts/create_agent.sh \ --id "ajan-id" \ --name "İsim" \ --emoji "⚙️" \ --task "Görev tanımı" ``` ### Oluşturulan Dosyalar Script otomatik olarak oluşturur: - IDENTITY.md - Kimlik kartı - SOUL.md - Görev ve davranış kuralları - USER.md - Kullanıcı bilgileri - AGENTS.md - Çalışma kuralları - TOOLS.md - Araçlar - MEMORY.md - Uzun süreli hafıza - HEARTBEAT.md - Boş (heartbeat kapalı) - cron/README.md - Cron dosyaları için şablon - cron/ornek.py - Örnek cron scripti ## ⚡ Tüm Ajanların Otomatik Eriştiği Yetenekler Yeni oluşturulan her ajan aşağıdaki yeteneklere sahiptir: ### 1. Web Search (Brave API) - Tüm ajanlar web araması yapabilir - API Key: Gateway config'de tanımlı - Kullanım: `web_search` tool ### 2. Browser (Chromium) Her ajan tarayıcı kontrolü yapabilir: #### Screenshot Almak için: ```bash # Browser snapshot browser action=snapshot profile=openclaw targetUrl=https://orneksite.com ``` #### Web Sayfası Taramak için: ```bash # Sayfa içeriğini çek browser action=open profile=openclaw targetUrl=https://orneksite.com browser action=snapshot profile=openclaw ``` #### Etkileşim (tıklama, form doldurma): ```bash browser action=act profile=openclaw request='{"kind": "click", "ref": "button-id"}' browser action=act profile=openclaw request='{"kind": "type", "ref": "input-id", "text": "değer"}' ``` **Not:** `profile=openclaw` izole browser için, `profile=chrome` mevcut Chrome sekmeleri için. ### 3. Web Fetch - Hafif HTML içerik çekme (API yanıtları için) - Kullanım: `web_fetch` tool ### 4. Google Sheets (gog) - Sheets okuma/yazma - Kullanım: gog CLI ### 5. Cron Jobs - Her ajan kendi cron job'unu oluşturabilir - cron/ klasörü otomatik oluşturulur ## 2. /switch Komutu Ajan değiştirmek için: ``` /switch angarya /switch main ``` ### Alternatif Yöntemler **Telegram'da:** - `angarya: <mesaj>` - Ajan'a doğrudan mesaj - `/pm angarya <mesaj>` - Aynı işlev **Sub-agent olarak:** - "Angarya'ya şunu yaptır: ..." → Ajanı çağırır ## 3. Ajanlara Görev Gönderme Sen benim üzerinden başka ajanlara görev gönderebilirsin: ``` Angarya'ya sor ne yapıyor Angarya'ya şunu yaptır: çalışan servisleri kontrol et ``` ## 4. Varsayılan Modeller Yeni ajan, OpenClaw'ın ana ajanının varsayılan modellerini kullanır: Bu modeller, OpenClaw'ın kendi varsayılan model ayarlarıdır — bu skill'i kuran herkes kendi OpenClaw'ındaki model yapılandırmasını kullanır. ## Örnek Kullanımlar | Komut | Açıklama | | -------------------------------- | ------------------------------- | | `/create_agent Muhasebeci` | Yeni ajan oluştur | | `/switch angarya` | Angarya'ya geç | | `angarya: merhaba` | Angarya'ya mesaj gönder | | "Angarya'ya sor ne yapıyor" | Angarya'nın durumunu kontrol et | | "Angarya'ya şunu yaptır: ls -la" | Angarya'ya görev ver | ## Not - Oluşturulan ajanlar config'e otomatik eklenir - Gateway restart gerekir: /restart

path: scripts/create_agent.sh
content: #!/bin/bash
# Agent Factory - Yeni Ajan Oluşturma Scripti
# Kullanım: ./create_agent.sh --id "ajan-id" --name "İsim" --emoji "Emoji" --task "Görev"

set -e

# Argümanları parse et
while [[ $# -gt 0 ]]; do
  case $1 in
    --id)
      AGENT_ID="$2"
      shift 2
      ;;
    --name)
      AGENT_NAME="$2"
      shift 2
      ;;
    --emoji)
      AGENT_EMOJI="$2"
      shift 2
      ;;
    --task)
      AGENT_TASK="$2"
      shift 2
      ;;
    *)
      echo "Bilinmeyen argüman: $1"
      exit 1
      ;;
  esac
done

# Zorunlu alanları kontrol et
if [[ -z "$AGENT_ID" ]] || [[ -z "$AGENT_NAME" ]]; then
  echo "Hata: --id ve --name zorunludur!"
  echo "Kullanım: ./create_agent.sh --id 'angarya' --name 'Angarya' --emoji '⚙️' --task 'Görev'"
  exit 1
fi

# ID'yi küçük harfe çevir ve özel karakterleri kaldır
AGENT_ID=$(echo "$AGENT_ID" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9_-]//g')

# Varsayılan değerler
AGENT_EMOJI="${AGENT_EMOJI:-🤖}"
AGENT_TASK="${AGENT_TASK:-Kullanıcıya yardımcı olmak}"

echo "🤖 Agent Factory - Ajan Oluşturuluyor..."
echo "   ID: $AGENT_ID"
echo "   İsim: $AGENT_NAME"
echo "   Emoji: $AGENT_EMOJI"
echo "   Görev: $AGENT_TASK"
echo ""

# Klasör yapısı - sadece ID kullan (id-workspace yerine)
WORKSPACE_DIR="/home/ubuntu/.openclaw/agents/${AGENT_ID}"
AGENT_DIR="/home/ubuntu/.openclaw/agents/${AGENT_ID}/agent"

echo "📁 Klasörler oluşturuluyor..."
mkdir -p "$WORKSPACE_DIR/memory"
mkdir -p "$WORKSPACE_DIR/sessions"
mkdir -p "$WORKSPACE_DIR/skills"
mkdir -p "$AGENT_DIR"

# IDENTITY.md
echo "📝 IDENTITY.md oluşturuluyor..."
cat > "$WORKSPACE_DIR/IDENTITY.md" << EOF
# IDENTITY.md - Kimlik

- **Name:** ${AGENT_NAME}
- **Creature:** AI asistanı
- **Vibe:** Samimi, yardımsever
- **Emoji:** ${AGENT_EMOJI}
- **Avatar:** _henüz yok_

---

Bu dosya ajanın kimlik kartıdır.
EOF

# SOUL.md
echo "📝 SOUL.md oluşturuluyor..."
cat > "$WORKSPACE_DIR/SOUL.md" << EOF
# SOUL.md - Kimlik

## Görev
${AGENT_TASK}

## Davranış
- Kullanıcıya yardımcı ol
- Samimi ve sıcak ol
- Gereksiz yere konuşma
- Öğrenmeye açık ol

## Sınırlar
- Özel bilgileri paylaşma
- Dışarıya veri gönderme
- Güvensiz işlem yapma

## Vibe
Asistan gibi değil, dijital dost gibi davran.
EOF

# USER.md
echo "📝 USER.md oluşturuluyor..."
cat > "$WORKSPACE_DIR/USER.md" << EOF
# USER.md - Kullanıcı

- **Name:** Tevfik Gülep
- **Notlar:** _Ajan bu alanı zamanla dolduracak_

---

Bu ajanın ana kullanıcısı hakkında bilgiler.
EOF

# AGENTS.md
echo "📝 AGENTS.md oluşturuluyor..."
cat > "$WORKSPACE_DIR/AGENTS.md" << EOF
# AGENTS.md

Bu ajanın çalışma klasörü. Diğer ajanlar gibi aynı kurallar geçerlidir.

## Her Session'da

1. Read SOUL.md — bu kimsin
2. Read USER.md — kime yardım ediyorsun
3. Read memory/YYYY-MM-DD.md — bugün ne olmuş

## Memory

Günlük notlar: memory/YYYY-MM.md
Uzun süreli: MEMORY.md

## Güvenlik

- Özel bilgileri sakla
- Güvensiz işlemleri reddet
EOF

# TOOLS.md
echo "📝 TOOLS.md oluşturuluyor..."
cat > "$WORKSPACE_DIR/TOOLS.md" << EOF
# TOOLS.md - Araçlar

Bu ajanın araçları. Ana ajanın araçlarıyla aynı.

## Sistem

- Gateway: systemctl ile yönetilir
- Session: Telegram ve WhatsApp üzerinden erişim

## Notlar

Ajanın kullandığı özel araçlar veya ayarlar buraya.
EOF

# MEMORY.md
echo "📝 MEMORY.md oluşturuluyor..."
cat > "$WORKSPACE_DIR/MEMORY.md" << EOF
# MEMORY.md - Uzun Süreli Hafıza

Bu ajanın uzun süreli hafızası.

---

*Boş başlangıç - zamanla dolacak*
EOF

# HEARTBEAT.md
echo "📝 HEARTBEAT.md oluşturuluyor..."
cat > "$WORKSPACE_DIR/HEARTBEAT.md" << EOF
# HEARTBEAT.md

# Keep this file empty to skip heartbeat API calls.
EOF

# BOOTSTRAP.md (varsa ana workspace'dan kopyala)
if [[ -f "/home/ubuntu/.openclaw/workspace/BOOTSTRAP.md" ]]; then
  echo "📝 BOOTSTRAP.md kopyalanıyor..."
  cp "/home/ubuntu/.openclaw/workspace/BOOTSTRAP.md" "$WORKSPACE_DIR/"
fi

# Cron klasörü oluştur (gelecekte kullanmak için)
mkdir -p "$WORKSPACE_DIR/cron"

# Cron README oluştur
cat > "$WORKSPACE_DIR/cron/README.md" << 'CRONEOF'
# Cron Dosyaları

Bu klasör {AGENT_NAME} ajanına ait cron işleri için.

## Kurallar
- Her cron dosyasının başına owner bilgisi ekle:
  ```python
  # Owner: {AGENT_ID}
  # Ajan: {AGENT_NAME}
  ```

## Örnek Kullanım
1. Bu klasöre yeni .py dosyası oluştur
2. Dosyanın başına yukarıdaki owner bilgisini ekle
3. İşlemi yaz
4. Dosyayı /home/ubuntu/.openclaw/workspace/cron/ klasörüne kopyala
5. OpenClaw cron job olarak ekle

## Not
OpenClaw cron sistemi henüz ajan başına klasör desteklemiyor.
Bu klasör gelecekteki kullanım için hazırlık niteliğindedir.
CRONEOF

# Örnek cron dosyası oluştur
cat > "$WORKSPACE_DIR/cron/ornek.py" << 'ORNEKEOF'
#!/usr/bin/env python3
"""
Örnek Cron Dosyası - Şablon

# Owner: {AGENT_ID}
# Ajan: {AGENT_NAME}

Kullanım:
1. Bu dosyayı düzenle
2. /home/ubuntu/.openclaw/workspace/cron/ klasörüne kopyala
3. OpenClaw cron job olarak ekle
"""

def main():
    print("Cron çalıştı!")
    # İşlemler buraya
    
if __name__ == "__main__":
    main()
ORNEKEOF

# Yer tutucuları değiştir
sed -i "s/{AGENT_ID}/${AGENT_ID}/g" "$WORKSPACE_DIR/cron/README.md"
sed -i "s/{AGENT_NAME}/${AGENT_NAME}/g" "$WORKSPACE_DIR/cron/README.md"
sed -i "s/{AGENT_ID}/${AGENT_ID}/g" "$WORKSPACE_DIR/cron/ornek.py"
sed -i "s/{AGENT_NAME}/${AGENT_NAME}/g" "$WORKSPACE_DIR/cron/ornek.py"

echo "✅ Cron klasörü ve örnek dosya oluşturuldu!"

echo "✅ Tüm dosyalar oluşturuldu!"

# Config'e ekle
echo ""
echo "⚙️ Config güncelleniyor..."

CONFIG_FILE="/home/ubuntu/.openclaw/openclaw.json"
TEMP_FILE="/tmp/openclaw_agent_$$.json"

# Yeni ajan object'ini oluştur (tek değişkende)
# Not: Model ayarları agents.defaults'tan gelir - buraya gerek yok
NEW_AGENT=$(jq -n \
  --arg id "$AGENT_ID" \
  --arg name "$AGENT_NAME" \
  --arg emoji "$AGENT_EMOJI" \
  '{
    id: $id,
    name: $name,
    workspace: ("/home/ubuntu/.openclaw/agents/" + $id),
    agentDir: ("/home/ubuntu/.openclaw/agents/" + $id + "/agent"),
    identity: {
      name: $name,
      emoji: $emoji
    }
  }')

# Mevcut config'i al ve yeni ajanı ekle
jq --argjson newAgent "$NEW_AGENT" \
   '.agents.list += [$newAgent]' \
   "$CONFIG_FILE" > "$TEMP_FILE" && mv "$TEMP_FILE" "$CONFIG_FILE"

echo "✅ Ajan config'e eklendi!"
echo ""
echo "🎉 Ajan '$AGENT_NAME' başarıyla oluşturuldu!"
echo ""
echo "⚠️  Gateway'i yeniden başlatmak için şunu söyle:"
echo "    'Gateway restart'"
echo ""
echo "Sonra ajanı kullanmak için:"
echo "   • /switch $AGENT_ID"
echo "   • Veya: $AGENT_ID: merhaba"


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: suspicious | SkillSpector: suspicious (HIGH)