smolagents — правило для Cursor: агенты на Python и установка
Правило задаёт рекомендации по структуре приложений на smolagents и безопасности инструментов. Оно срабатывает для файлов Python.
.cursor/rules/smolagents.mdcЧто делает smolagents
Правило для Cursor охватывает файлы **/*.py и помогает организовать код агента и его инструменты по отдельным модулям. В примере из руководства функции поиска и вычислений оформлены как инструменты smolagents; логику веб-поиска предлагается отделить от основного файла агента.
В примере опасный eval используется для вычисления выражения, и руководство помечает такой подход как небезопасный. Это важно, если агент обрабатывает выражения: простое добавление вычислительного инструмента может открыть путь к исполнению произвольного кода. Файл правила нужно поместить в .cursor/rules/smolagents.mdc.
Какие задачи решает
- разнести код агента и инструменты по модулям
- оформить поиск как инструмент smolagents
- заметить небезопасное вычисление через
eval
Примеры запросов агенту
- Разложи код моего агента smolagents и его инструменты по отдельным модулям.
- Оформи функцию веб-поиска как инструмент smolagents.
- Проверь вычислительный инструмент и найди небезопасное использование
eval.
Как установить smolagents
Вручную: положить файлы
.cursor/rules/smolagents.mdcВо frontmatter: description, globs, alwaysApply
Вручную: положить файлы
.claude/rules/smolagents.mdПоле paths во frontmatter ограничивает файлы: globs из источника → paths
AGENTS.md
Codex читает AGENTS.md: вставьте текст правила туда
Вручную: положить файлы
.github/instructions/smolagents.instructions.mdПоле applyTo задаёт, к каким файлам применять: globs из источника → applyTo
Вручную: положить файлы
.devin/rules/smolagents.mdВручную: положить файлы
.clinerules/smolagents.mdПо шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules
Вопросы о smolagents
Как установить smolagents в Cursor?
Добавьте правило в файл .cursor/rules/smolagents.mdc.
Что делает правило smolagents?
Оно подсказывает, как разделять код агента и инструменты, и обращает внимание на небезопасный eval.
На какие файлы действует правило?
Оно применяется к файлам, соответствующим шаблону **/*.py.
Исходный текст
smolagents.mdc · CC0-1.0
---
description: Definitive guidelines for building robust, performant, and maintainable AI agents using smolagents, focusing on practical patterns and avoiding common pitfalls.
globs: **/*.py
---
# smolagents Best Practices
This guide outlines the definitive best practices for developing `smolagents` applications. Adhering to these principles ensures your agents are reliable, efficient, and easy to maintain.
## 1. Code Organization and Structure
Organize your agent logic and tools into clear, distinct modules. This improves readability, reusability, and testability.
❌ BAD: Monolithic agent file
```python
# agent.py
from smolagents import CodeAgent, HfApiModel, tool
import requests # Direct import in agent file
@tool
def search_web(query: str) -> str:
# ... complex search logic ...
return "search result"
@tool
def calculate_math(expression: str) -> float:
# ... math logic ...
return eval(expression) # DANGER! Unsafe!
agent = CodeAgent(tools=[search_web, calculate_math], model=HfApiModel())
agent.run("What is 2+2 and also search for 'latest AI news'")
```
✅ GOOD: Modular structure
```python
# src/tools.py
from smolagents import tool
import requests
import json
@tool
def web_search(query: str) -> str:
"""
Performs a web search for the given query.
Args:
query: The search term.
Returns:
A summary of the search results or an error message.
"""
try:
# Replace with a real search API (e.g., DuckDuckGoSearchTool, custom API)
response = requests.get(f"https://api.example.com/search?q
© sanjeed5 · CC0-1.0 · sanjeed5/awesome-cursor-rules-mdc