# निर्देश, अनुमोदन और कॉन्फ़िगरेशन

लेखन प्राथमिकताएँ सेट करें, चुनें कि सहायक कब पूछे, और पुनः उपयोग योग्य प्रोजेक्ट नियम कॉन्फ़िगर करें।

सहायक को स्पष्ट लेखन प्राथमिकताएँ दें और चुनें कि वह बदलावों से कैसे निपटता है। निर्देश वह काम बताते हैं जो आप चाहते हैं; अनुमोदन नियंत्रण तय करते हैं कि कौन से टूल कार्य आगे बढ़ सकते हैं।

![Settings → AI Assistant → Instructions. डिफ़ॉल्ट मॉडल सेट करें, अपने निर्देश लिखें, फिर Save instructions का उपयोग करें। PDF पेज कैप्चर टेक्स्ट फ़ील्ड के नीचे है।](https://cdn.oleafly.com/images/screenshots/desktop/docs/settings-instructions-dark-window-v2.png#view=519,89,883,724)

## डिफ़ॉल्ट चैट मॉडल

**Settings → AI Assistant → Instructions** खोलें। नई चैट में उपयोग होने वाला मॉडल सेट करने के लिए **Default chat model** चुनें। सूची में आपके कॉन्फ़िगर किए गए प्रोवाइडर के सक्षम मॉडल होते हैं। आप किसी एक बातचीत में मॉडल बदल भी सकते हैं।

## कस्टम निर्देश

अपनी प्राथमिकताएँ **Custom instructions** के अंतर्गत दर्ज करें, फिर **Save instructions** पर क्लिक करें। शोध पांडुलिपि के लिए एक उपयोगी शुरुआती बिंदु है:

```text title="लेखन निर्देशों का उदाहरण"
Use British English and preserve the terminology already used in the paper.
Keep citation keys, labels, equations, and numerical results unchanged unless
I explicitly ask you to edit them.
When a statement needs evidence, mark it for a source check. Do not invent
references or results.
Explain substantive changes briefly so I can review them.
```

इन निर्देशों को इतना विशिष्ट बनाएँ कि वे पूरे प्रोजेक्ट ब्रीफ़ को दोहराए बिना किसी संशोधन का मार्गदर्शन कर सकें। ये सहायक के अंतर्निहित व्यवहार के पूरक हैं और इसकी टूल अनुमतियाँ नहीं बदलते।

## निर्देश सहेजें

संपादन के बाद **Save instructions** पर क्लिक करें। **Saved** संकेतक पुष्टि करता है कि बदलाव सहेज लिए गए हैं। इस फ़ील्ड में बिना सहेजा गया संपादन आपका नया डिफ़ॉल्ट नहीं है।

## AI के लिए PDF पेज कैप्चर की अनुमति दें

सहायक को vision-सक्षम मॉडल से रेंडर किए गए पेज देखने देने के लिए **Allow PDF page capture for AI** सक्षम करें। `verify_pdf_pages` टूल लेआउट जाँच के लिए कंपाइल किए गए पेज रास्टराइज़ करता है। जब आप नहीं चाहते कि पेज की छवियाँ कॉन्फ़िगर किए गए प्रोवाइडर को भेजी जाएँ, तो यह नियंत्रण अक्षम कर दें।

## टूल कैटलॉग देखें

Instructions टैब में **The assistant currently supports these tools** विस्तारित करें। इससे देखें कि सहायक कौन सा काम कर सकता है, फिर किसी परिणाम के लिए कहें, जैसे किसी अनुभाग को कंपाइल करना, PDF की जाँच करना या कोई अनसुलझा संदर्भ खोजना।

## पर्सोना

![Settings → AI Assistant → Personas. Create persona सूची के ऊपर है; प्रत्येक पर्सोना के साथ संपादन और हटाने के नियंत्रण हैं।](https://cdn.oleafly.com/images/screenshots/desktop/docs/settings-personas-dark-window-v2.png#view=519,89,883,902)

पर्सोना एक नामित निर्देश प्रीसेट है। **Settings → AI Assistant → Personas** के अंतर्गत एक बनाएँ, फिर किसी विशेष प्रकार के काम के लिए चैट कंपोज़र में उसे चुनें। उदाहरण के लिए, एक संक्षिप्त प्रूफ़रीडिंग पर्सोना और एक अलग समीक्षक पर्सोना रखें।

सक्रिय पर्सोना डिफ़ॉल्ट कस्टम-निर्देश पाठ के स्थान पर बातचीत का निर्देश प्रीसेट देता है। वे सभी स्थायी प्राथमिकताएँ शामिल करें जो पर्सोना को भी चाहिए। पर्सोना मार्गदर्शन बदलता है; यह टूल अनुमतियाँ नहीं देता।

## एक अनुमोदन मोड चुनें

![संदेश फ़ील्ड के नीचे अनुमोदन मेनू खोलें। चुना हुआ मोड चेकमार्क के साथ दिखता है; अपने प्रोजेक्ट के लिए वह नीति चुनें जो आप चाहते हैं।](https://cdn.oleafly.com/images/screenshots/desktop/docs/llama-approval-menu-dark-window-v2.png#view=1448,770,465,305)

चैट कंपोज़र में अनुमोदन चयनकर्ता का उपयोग करें। यह चुनाव वर्तमान प्रोजेक्ट के लिए सहेजा जाता है।

| मोड | व्यवहार |
|---|---|
| **Ask for approval** | पढ़ने की श्रेणी के टूल चल सकते हैं; अन्य क्रियाएँ पहले पूछती हैं |
| **Approve for me** | पढ़ने और नेटवर्क टूल चल सकते हैं; फ़ाइल बदलाव और शेल कमांड पहले पूछते हैं |
| **Full access** | टूल क्रियाएँ अनुमोदन प्रॉम्प्ट के बिना आगे बढ़ सकती हैं, सिवाय उन टूल के जिन्हें कोई `deny` नियम रोकता है |
| **Custom** | सहेजे गए `allow` और `deny` नियम लागू होते हैं, और बिना नियम वाले टूल मानक जोखिम नीति का उपयोग करते हैं |

**Approve for me** डिफ़ॉल्ट है। कुछ टूलों की एक क्रिया के भीतर अपनी जाँचें होती हैं। PDF कंपाइल करना और जाँचना, सोर्स फ़ाइल लिखने या शेल कमांड चलाने से अलग तरह से व्यवहार किया जाता है।

## प्रस्तावित क्रिया को मंज़ूरी दें

अनुमोदन कार्ड पर टूल का नाम और प्रस्तावित क्रिया पढ़ें। वह क्रिया चलाने के लिए मंज़ूरी दें, या प्रस्तावित बदलाव लागू न होने देने के लिए उसे अस्वीकार करें। यदि माँगी गई क्रिया बहुत व्यापक है, तो संकरे निर्देश के साथ बातचीत जारी रखें।

## इस प्रोजेक्ट में हमेशा

**Custom** मोड में, किसी टूल के लिए नियम सहेजने हेतु अनुमोदन प्रॉम्प्ट पर **Always in this project** का उपयोग करें। जब आप चाहते हैं कि कोई नियम अगली बार लागू हो, तो चुने गए मोड की जाँच करें।

## नियम की समीक्षा करें या हटाएँ

प्रोजेक्ट खुला रखते हुए **Settings → AI Assistant → Providers and keys** पर जाएँ और **Tool approvals** तक स्क्रॉल करें। प्रत्येक पंक्ति टूल का नाम और यह दिखाती है कि वह हमेशा अनुमत है या अस्वीकृत। Custom मोड में किसी टूल को मानक जोखिम नीति पर लौटाने के लिए उसका नियम हटा दें।

## approvals.toml संपादित करें

**Tool approvals** के नीचे **Approval rules file**, `~/.oleafly/approvals.toml` को संपादित करता है। वर्तमान फ़ाइल पढ़ने के लिए **Reload**, बिना सहेजे गए संपादन हटाने के लिए **Discard changes**, या नमूना कॉन्फ़िगरेशन से शुरू करने के लिए **Insert an example** का उपयोग करें। **How the file works** प्रारूप समझाता है और खुले प्रोजेक्ट की ID दिखाता है। सहेजने पर TOML लागू होने से पहले सत्यापित होता है, और नियम अगली टूल कॉल से लागू होते हैं।

फ़ाइल में एक मोड तालिका और **project folder ID** द्वारा कुंजीबद्ध टूल-नियम तालिकाएँ होती हैं, प्रदर्शन शीर्षक द्वारा नहीं:

```toml title="~/.oleafly/approvals.toml"
["$approval_modes"]
"my-project-folder-id" = "custom"

["my-project-folder-id"]
write_file = "allow"
replace_in_file = "allow"
run_command = "deny"
delete_file = "deny"
```

`my-project-folder-id` को अपने प्रोजेक्ट की वास्तविक फ़ोल्डर ID से बदलें। प्रोजेक्ट ID, `~/.oleafly/projects` के अंतर्गत फ़ोल्डर के नाम हैं। मोड मान `ask-for-approval`, `approve-for-me`, `full-access` और `custom` हैं। जो प्रोजेक्ट सूचीबद्ध नहीं है वह Approve for me का उपयोग करता है। टूल-नियम मान `allow` और `deny` हैं। `deny` नियम हर मोड में, Full access सहित, लागू होता है, इसलिए अस्वीकृत टूल कभी नहीं चलता। `allow` नियम केवल Custom मोड में लागू होता है। बिना नियम वाला टूल सामान्य जोखिम नीति का उपयोग करता है।

`#` से शुरू होने वाली टिप्पणियाँ Settings से सहेजने के बाद बनी रहती हैं, लेकिन अनुमोदन कार्ड पर **Always in this project** चुनने से फ़ाइल उनके बिना फिर से लिखी जाती है।

कैटलॉग से सटीक टूल नामों का उपयोग करें। सामान्य नामों में `write_file`, `replace_in_file`, `create_file`, `rename_file`, `delete_file`, `run_command`, `compile`, `insert_figure` और `set_main_doc` शामिल हैं।

## मुझे कौन सी कॉन्फ़िगरेशन फ़ाइल उपयोग करनी चाहिए?

| फ़ाइल | उद्देश्य |
|---|---|
| `~/.oleafly/config.json` | ऐप कॉन्फ़िगरेशन, Settings के माध्यम से प्रबंधित |
| `~/.oleafly/approvals.toml` | प्रोजेक्ट अनुमोदन मोड और प्रति-टूल नियम |
| `~/.oleafly/agent.toml` | उन्नत मल्टी-एजेंट सीमाएँ और निर्देश |
| आपके बाहरी एजेंट का कॉन्फ़िगरेशन, जैसे `~/.codex/config.toml` | उस एजेंट की अपनी सेटिंग्स और MCP कनेक्शन |

Oleafly इन सभी सेटिंग्स के लिए एक ही `config.toml` का उपयोग नहीं करता। प्रोवाइडर कुंजियों और ऐप प्राथमिकताओं के लिए Settings इंटरफ़ेस का उपयोग करें; क्रेडेंशियल के लिए अलग एन्क्रिप्टेड भंडारण है। अपने पूरे ऐप कॉन्फ़िगरेशन को एक छोटे उदाहरण से न बदलें।

## agent.toml कॉन्फ़िगर करें

उन्नत उपयोगकर्ता सहायक की मल्टी-एजेंट सेटिंग्स को समायोजित करने के लिए `~/.oleafly/agent.toml` बना सकते हैं। ये सेटिंग्स Oleafly के अपने एजेंट रनटाइम को नियंत्रित करती हैं, किसी जुड़े हुए CLI एजेंट के कॉन्फ़िगरेशन से अलग।

```toml title="~/.oleafly/agent.toml"
maxAgentDepth = 2
maxConcurrentSubagents = 8
minWaitTimeoutMs = 1000
maxWaitTimeoutMs = 300000
defaultWaitTimeoutMs = 120000
waitAgentEnabled = true

usageHintText = """
Delegate independent checks with clear scopes. Keep writing decisions with
the parent agent, and close completed agents when their work is collected.
"""

subagentDeveloperInstructions = """
Work only on the assigned task. Report the files and evidence you inspected.
Do not spawn additional agents.
"""
```

### maxAgentDepth

नेस्टिंग गहराई सीमित करता है। डिफ़ॉल्ट `2` है: किसी रन की चाइल्ड आगे डेलिगेट नहीं करतीं। न्यूनतम स्वीकार्य मान `1` है।

### maxConcurrentSubagents

किसी सत्र में समवर्ती सबएजेंट सीमित करता है। डिफ़ॉल्ट `8` है और न्यूनतम `1`। अधिक एजेंट मॉडल उपयोग बढ़ा सकते हैं; ऐसे काम के लिए सीमा बढ़ाएँ जो वास्तव में स्वतंत्र रूप से आगे बढ़ सकता हो।

### minWaitTimeoutMs

एजेंट प्रतीक्षा की निचली सीमा मिलीसेकंड में सेट करता है। डिफ़ॉल्ट `1000` है।

### maxWaitTimeoutMs

एजेंट प्रतीक्षा की ऊपरी सीमा सेट करता है। डिफ़ॉल्ट `300000` है, यानी पाँच मिनट। इसे न्यूनतम या उससे ऊपर रखा जाता है।

### defaultWaitTimeoutMs

डिफ़ॉल्ट प्रतीक्षा अवधि सेट करता है। डिफ़ॉल्ट `120000` है, यानी दो मिनट। मान कॉन्फ़िगर की गई न्यूनतम और अधिकतम सीमाओं में बँधे रहते हैं।

### waitAgentEnabled

wait-agent क्षमता की उपलब्धता नियंत्रित करता है। डिफ़ॉल्ट `true` है।

### usageHintText

पैरेंट एजेंट को डेलिगेशन मार्गदर्शन देता है। ऊपर का उदाहरण डिफ़ॉल्ट मार्गदर्शन को आपके अपने पाठ से बदल देता है।

### subagentDeveloperInstructions

चाइल्ड एजेंटों को निर्देश देता है। इसका उपयोग दायरा, रिपोर्टिंग अपेक्षाएँ और यह बताने के लिए करें कि आगे का डेलिगेशन उचित है या नहीं।

रनटाइम इन कुंजियों के snake_case संस्करण भी स्वीकार करता है, जैसे `max_agent_depth`। छूटे हुए फ़ील्ड डिफ़ॉल्ट का उपयोग करते हैं। गुम या विकृत फ़ाइल होने पर डिफ़ॉल्ट पर वापस आ जाता है, इसलिए सिंटैक्स की सावधानी से जाँच करें और कॉन्फ़िगरेशन बदलने के बाद नया रन शुरू करें।

## एक छोटे कार्य से नियम की जाँच करें

1. एक अभ्यास प्रोजेक्ट खोलें और **Ask for approval** चुनें।
2. कहें: “मुख्य दस्तावेज़ पढ़ें और एक स्पष्ट शीर्षक सुझाएँ। फ़ाइल बदलने से पहले पूछें।”
3. प्रस्तावित बदलाव की जाँच करें और उसे मंज़ूरी दें या अस्वीकार करें।
4. Custom मोड में बदलने से पहले Settings में सहेजे गए नियमों की समीक्षा करें।
5. जब आप संपादन शुरू होने से पहले कई चरणों पर सहमत होना चाहें, तो [Plan mode](/docs/ai-chat/#plan-before-editing) का उपयोग करें।

Oleafly MCP के माध्यम से जुड़ने वाले बाहरी सहायक [MCP सर्वर की नीति](/docs/mcp/#approvals-and-safety) का उपयोग करते हैं, जो अलग से कॉन्फ़िगर की जाती है।
