Agent personaları
Bir subagentin rolünü, odağını ve tool erişimini şekillendiren yeniden kullanılabilir persona dosyaları oluştur. Bir subagentin neyi arayacağını, çıktısını nasıl biçimlendireceğini ve ne yapmasına izin verilmediğini tanımla.
Agent personaları, başlatılan bir subagentin rolünü ve davranışını yapılandıran markdown dosyalarıdır. Özel mod ana görevin nasıl çalıştığını belirlerken, persona yardımcı subagentin nasıl çalışacağını belirler. Subagentin kimliğini, kontrol listesini, çıktı biçimini ve kısıtlamalarını kontrol eder.
Personalar nasıl çalışır
Bob bir subagent başlattığında, .bob/agents/ dizininde göreve uyan bir açıklamaya sahip persona dosyası arar. Bir dosya bulunursa, persona subagentin modu olarak yüklenir: rol gövdesi subagentin system promptuna enjekte edilir ve temel talimatlarının üzerine katmanlanır.
Personalar ana konuşmaya otomatik olarak yüklenmez. Yalnızca bir subagent başlatıldığında etkili olurlar; bu ya Bob'un kendi inisiyatifiyle ya da Bob'dan belirli bir görevi devretmesini istediğinde gerçekleşir.
Persona dosyası biçimi
Persona dosyaları, serbest biçimli bir rol gövdesiyle birlikte YAML front matter kullanır:
---
name: code-reviewer
description: Reviews code for correctness, readability, and maintainability. Read-only.
tools:
- read
---
You are a senior software engineer conducting a structured code review.
Review each file against this checklist:
1. Correctness: logic errors, missing null checks, unhandled edge cases
2. Readability: long methods, deep nesting, unclear naming
3. Maintainability: tight coupling, missing abstraction, duplicated logic
Report findings in a table with columns: Severity, File, Lines, Description.
Use severity levels: HIGH, MEDIUM, LOW.
Do not suggest fixes. Describe issues only.Front matter alanları
| Alan | Gerekli | Tür | Amaç |
|---|---|---|---|
name | Evet | string | Loglarda kullanılan tanımlayıcı. .md olmadan dosya adıyla eşleşmelidir. |
description | Evet | string | Bob bunu personayı bir görevle eşleştirmek için kullanır. Tek satırlık bir misyon bildirisi olarak yaz. |
tools | Hayır | list | Subagentin hangi tool gruplarını kullanabileceğini kısıtlar. Varsayılanları devralmak için atla. |
Tool grupları
tools alanı özel modlarla aynı grupları kabul eder: read, edit, command, browser, mcp.
Gözden geçirenler, planlayıcılar ve özetleyiciler gibi salt okunur personalar için tools: [read] ayarını yap ve böylece yanlışlıkla düzenleme yapılmasını önle.
tools alanı bir izin vermek değil, bir tavan oluşturur. Aktif görevin Düzenleme izni etkin değilse, bir personada tools: [edit] ayarlamak hiçbir etkisi olmaz. Persona yalnızca tool erişimini kısıtlayabilir, görevin izin verdiğinden fazlasına genişletemez.
Dosya konumu
| Konum | Kapsam | Kullanım durumu |
|---|---|---|
<proje>/.bob/agents/ | Yalnızca bu proje | Repoya commit edilen ekip tarafından paylaşılan personalar |
~/.bob/agents/ | Bu makinedeki tüm projeler | Tüm repolar genelinde geçerli olan kişisel personalar |
Her iki konum da aynı ada sahip bir persona içeriyorsa, proje düzeyindeki dosya önceliklidir.
.bob/ dizini, diğer yapılandırma dosyalarının yanında personalar içerebilir:
İlk personanı oluşturma
Proje kök dizininde agents dizinini oluştur:
mkdir -p .bob/agentsBir persona dosyası oluştur. Dosya adı (.md olmadan) front matter'daki name alanıyla eşleşmelidir.
touch .bob/agents/code-reviewer.mdFront matter ve rol gövdesini ekle. Yapı için yukarıdaki Persona dosyası biçimi bölümüne bak.
Ekibinin aynı personaları paylaşması için dosyayı reponuza commit et.
Örnek personalar
code-reviewer.md
Kaynak dosyaları doğruluk, okunabilirlik ve sürdürülebilirlik açısından inceler. Önem derecesine göre sıralanmış bir bulgular tablosu oluşturur ve düzeltme önermez.
---
name: code-reviewer
description: Reviews code for correctness, readability, and maintainability. Read-only.
tools:
- read
---
You are a senior software engineer conducting a structured code review.
Review each file against this checklist:
1. Correctness: logic errors, missing null checks, unhandled edge cases
2. Readability: long methods, deep nesting, unclear naming
3. Maintainability: tight coupling, missing abstraction, duplicated logic
Report findings in a table with columns: Severity, File, Lines, Description.
Use severity levels: HIGH, MEDIUM, LOW.
Do not suggest fixes. Describe issues only.
If a file has no findings, list it explicitly as clean.pr-summarizer.md
Değiştirilen dosyalar kümesini okur ve neyin değiştiğini, olası amacı ve gözden geçirenin dikkat etmesi gereken alanları kapsayan yapılandırılmış bir pull request açıklaması üretir.
---
name: pr-summarizer
description: Reads changed files and produces a structured pull request description. Read-only.
tools:
- read
---
You are a developer writing a pull request description for a teammate.
Read the provided files and produce a PR description with these sections:
**Summary**: One or two sentences describing what this change does.
**Why**: The likely motivation, inferred from the code changes.
**What changed**: A bullet list of the key changes, grouped by area if there are several.
**Reviewer notes**: Anything the reviewer should pay particular attention to, including edge cases, intentional trade-offs, or areas of uncertainty.
Write in plain, direct language. Do not pad the description.
Do not list every file changed. Focus on what matters to the reviewer.Persona kullanımı
Bob'dan bir görevi devretmesini isterken personaya adıyla başvur:
Use the code-reviewer persona to review the files in src/auth/.Spawn a subagent using the pr-summarizer persona.
Read the changed files in this branch and produce a PR description.Bob, .bob/agents/ dizininden eşleşen personayı yükler ve başlatılan subagente uygular.
Satır içi personalar
Tek seferlik bir görev için, dosya oluşturmadan rolü doğrudan promptuna yazabilirsin:
Spawn an Explore subagent with this role:
You are a naming auditor. Read all files under src/ and flag variable and
function names that use abbreviations or are misleading. Return a table:
File, Line, Current Name, Issue.Satır içi roller tek bir görev için dosya tabanlı personalar kadar iyi çalışır. Birden fazla görevde aynı rolü yeniden kullanmak veya ekibinle paylaşmak istediğinde persona dosyaları oluşturmaya değer.
Konuşma geçmişini iletme
Varsayılan olarak, bir subagent yalnızca görev açıklamasını alır. Önceki konuşma turlarını görmez. Bu, bağlamını küçük ve odaklı tutar.
Bir subagentin konuşmada daha önce ifade edilen kararları veya kısıtlamaları dikkate alması gerektiğinde, promptunu önceki bağlama atıfta bulunacak şekilde yaz:
Use the code-reviewer persona to review src/payments/.
Take into account what we discussed about the error handling approach.Bob, "what we discussed" veya "our earlier decision" gibi ifadelerden fork_context: true değerini çıkarır ve konuşma geçmişini subagente iletir.
Konuşma geçmişini iletmek, tüm konuşmayı subagentin context window'una kopyalar. Uzun bir konuşmada bu, önemli bir token maliyeti ekler. Subagent gerçekten işini yapmak için önceki bağlama ihtiyaç duymadıkça varsayılanı (çatallanmış bağlam yok) tercih et.
Personalar, modlar ve kurallar
| Mekanizma | Kapsam | Ne kontrol eder | Ne zaman kullanılır |
|---|---|---|---|
| Mod | Tüm görev | Ana görev için tool tavanı ve rol tanımı | Ana ajanın salt okunur, docs yazarı veya güvenlik gözden geçireni gibi farklı bir duruşa ihtiyacı olduğunda |
| Kural | Görev veya mod | System prompta yüklenen kalıcı talimatlar | Takım kuralları, biçimlendirme standartları, her seferinde geçerli olan koruma önlemleri |
| Persona | Tek bir subagent | Başlatılan subagent için rol, odak, çıktı biçimi ve tool kısıtlamaları | Bir yardımcının alan odağına ihtiyacı olduğunda: kodu inceleme, değişiklikleri özetleme, testleri planlama |
Özel modlar
Belirli görevlere veya iş akışlarına göre Bob'un davranışını uyarlamak için özel modlar oluşturabilirsin. Bob Shell'deki özel modlar Bob IDE modlarına benzer şekilde çalışır.
Dosyaları yok sayma
Projende bir `.bobignore` dosyası oluşturarak Bob Shell'in hangi dosyalara erişebileceğini kontrol et.