Зафиксированы правки
This commit is contained in:
203
AGENTS.md
203
AGENTS.md
@@ -1,108 +1,123 @@
|
|||||||
# AGENTS.md
|
# AGENTS.md — LazyBear MCP
|
||||||
|
STACK: .NET 10 | ASP.NET Core | ModelContextProtocol.AspNetCore 1.2.0
|
||||||
## Описание проекта: LazyBear MCP
|
STRUCTURE: LazyBear.MCP/{Program.cs, Services/Kubernetes/{K8sConfigTools,K8sDeploymentTools,K8sNetworkTools,K8sPodsTools}, appsettings.json}
|
||||||
|
|
||||||
### Назначение
|
|
||||||
.NET 10 сервер Model Context Protocol (MCP) для интеграции торговых AI-инструментов.
|
|
||||||
|
|
||||||
### Структура проекта
|
|
||||||
```
|
|
||||||
LazyBearWorks/
|
|
||||||
├── LazyBear.MCP/
|
|
||||||
│ ├── Program.cs # Главный файл с хостингом MCP сервера
|
|
||||||
│ ├── Pages/ # Razor Pages (UI)
|
|
||||||
│ ├── Services/
|
|
||||||
│ │ └── TradingTools.cs # Реализация инструментов MCP
|
|
||||||
│ ├── appsettings.json # Конфигурация
|
|
||||||
│ └── LazyBear.MCP.csproj # Проектный файл
|
|
||||||
├── AGENTS.md # Этот файл, правила для агентов
|
|
||||||
└── README.md # Документация для пользователей
|
|
||||||
```
|
|
||||||
|
|
||||||
### Основные концепты
|
|
||||||
|
|
||||||
**Хостинг (Hosting):**
|
|
||||||
- ASP.NET Core веб-приложение (.NET 10.0)
|
|
||||||
- HTTP transport для удалённой MCP коммуникации
|
|
||||||
- Авто-обнаружение `[McpServerToolType]` и `[McpServerResourceType]`
|
|
||||||
|
|
||||||
**Технологический стек:**
|
|
||||||
- **Runtime:** .NET 10.0
|
|
||||||
- **Framework:** ASP.NET Core
|
|
||||||
- **SDK:** ModelContextProtocol.AspNetCore 1.2.0
|
|
||||||
- **AI:** Microsoft.Extensions.AI
|
|
||||||
|
|
||||||
**Особенности MCP:**
|
|
||||||
- **Инструменты (Tools):** Статические классы с атрибутами `[McpServerTool]`
|
|
||||||
- **Ресурсы (Resources):** Шаблоны ресурсов с атрибутами `[McpServerResource]`
|
|
||||||
- **Промпты (Prompts):** Параметризованные промпты (в разработке)
|
|
||||||
|
|
||||||
### Запуск
|
|
||||||
|
|
||||||
**Запустить сервер:**
|
|
||||||
```bash
|
|
||||||
dotnet run --project LazyBear.MCP
|
|
||||||
```
|
|
||||||
|
|
||||||
**Собрать проект:**
|
|
||||||
```bash
|
|
||||||
dotnet build
|
|
||||||
```
|
|
||||||
|
|
||||||
### Пакеты
|
|
||||||
- `ModelContextProtocol` - основной SDK
|
|
||||||
- `ModelContextProtocol.AspNetCore` - интеграция с ASP.NET Core
|
|
||||||
- `Microsoft.Extensions.AI` - абстракции AI
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Memory Log (MUST)
|
## [A] КОД — ALWAYS
|
||||||
|
|
||||||
PREFIX: `lazybear/`
|
PRE_EDIT: read_file → keep_style → min_diff → no_secrets_in_code
|
||||||
|
PRE_COMMIT: dotnet build OK | MCP protocol intact | lang=ru (comments/docs/commits)
|
||||||
| entityType | scope | key example |
|
PRIORITY: user > this_file > code_style
|
||||||
|----------------|--------------------------|-------------------------------|
|
|
||||||
| `architecture` | структура, хостинг, SDK | `lazybear/arch/mcp-transport` |
|
|
||||||
| `mcp_tool` | инструменты MCP | `lazybear/tool/get-price` |
|
|
||||||
| `decision` | решения, ADR | `lazybear/decision/transport` |
|
|
||||||
| `bug` | ошибки, баги | `lazybear/bug/auth-fail` |
|
|
||||||
| `config` | конфигурация | `lazybear/config/appsettings` |
|
|
||||||
| `task_log` | прогресс задач | `lazybear/task/refactor-tools`|
|
|
||||||
|
|
||||||
REF: [AGENT.common.md](AGENT.common.md) → Memory Log
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Правила для машин (MACHINE-FIRST)
|
## [B] КОММУНИКАЦИЯ — ALWAYS
|
||||||
|
|
||||||
### Обязательные правила (MUST)
|
DO: act_first → confirm_if_needed | short_and_precise | sequential_questions
|
||||||
|
DONT: end_with_question_only | print_secret_values | commit_.env.local
|
||||||
**Перед модификацией:**
|
SECRETS: use .env.local if exists; else state_once + ref .env.example
|
||||||
1. Прочитать существующий код
|
LINKS: internal=relative_path spaces→%20 | external=markdown_label (not bare URL)
|
||||||
2. Сохранять текущий стиль и паттерны
|
RULES_EDIT: minimal + non_duplicative
|
||||||
3. Минимизировать изменения
|
|
||||||
4. Не добавлять секреты в код
|
|
||||||
|
|
||||||
**Перед коммитом:**
|
|
||||||
1. Сборка `dotnet build` должна проходить локально
|
|
||||||
2. Изменения не должны ломать MCP протокол
|
|
||||||
3. Код в Git только после проверки сборки
|
|
||||||
4. Комментарии, документация и коммиты — только на русском
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Модель выполнения (MUST)
|
## [C] MEMORY LOG — ALWAYS
|
||||||
|
|
||||||
**Приоритеты инструкции:**
|
PREFIX: lazybear/
|
||||||
1. Инструкции пользователя
|
KEY: lazybear/<type>/<name> (ex: lazybear/bug/auth-fail)
|
||||||
2. AGENTS.md (этот файл)
|
TYPES: architecture | mcp_tool | decision | bug | config | task_log
|
||||||
3. Упомянутые общие правила
|
ONE_TYPE_PER_ENTITY: true
|
||||||
4. Существующий стиль кода
|
|
||||||
5. Лучшие практики
|
|
||||||
|
|
||||||
**Переиспользуемые правила:**
|
ON session_start → read_graph OR search_nodes(<topic>)
|
||||||
- [AGENT.common.md](AGENT.common.md) - общие правила
|
ON significant_change → create_entities OR add_observations
|
||||||
- [AGENT.interaction.md](AGENT.interaction.md) - правила взаимодействия
|
|
||||||
|
|
||||||
### Поддержание правил (MUST)
|
---
|
||||||
- см. [AGENT.common.md](AGENT.common.md) → Rules Maintenance
|
|
||||||
|
## [D] INTERACTION — только при вопросе пользователю
|
||||||
|
|
||||||
|
### Формат
|
||||||
|
|
||||||
|
```
|
||||||
|
<инструкция ≤15 слов>
|
||||||
|
|
||||||
|
1) <вариант ≤5 слов>
|
||||||
|
2) <вариант>
|
||||||
|
```
|
||||||
|
|
||||||
|
RULES: первый_символ=инструкция | max_options=7 | blank_line_before_options
|
||||||
|
FORBIDDEN: текст до/после блока | метки ("Выберите:") | пояснения | статусы
|
||||||
|
|
||||||
|
### Ввод
|
||||||
|
|
||||||
|
VALID:
|
||||||
|
N → single select
|
||||||
|
N,N → multi (no spaces)
|
||||||
|
abort|cancel → FLOW_CANCEL
|
||||||
|
<text> → pass_to_system as-is
|
||||||
|
|
||||||
|
INVALID → reject+repeat: "вариант 2" | "1, 3" | "" | любая фраза вместо числа
|
||||||
|
|
||||||
|
### Поток
|
||||||
|
|
||||||
|
ONE_Q_PER_STEP: true
|
||||||
|
NO_SKIP: true
|
||||||
|
NO_STATE_BETWEEN_SESSIONS: true
|
||||||
|
|
||||||
|
CONFIRMATION (обязательный финальный шаг):
|
||||||
|
```
|
||||||
|
Итог:
|
||||||
|
- <поле>: <значение>
|
||||||
|
|
||||||
|
1) Подтвердить
|
||||||
|
2) Начать заново
|
||||||
|
3) Изменить шаг
|
||||||
|
```
|
||||||
|
|
||||||
|
COMPACT_MODE: `key=N key=N` → apply valid fields, skip their steps → go to CONFIRMATION
|
||||||
|
|
||||||
|
### После валидного ввода
|
||||||
|
|
||||||
|
EXECUTE: silent
|
||||||
|
NEXT_OUTPUT: result XOR next_question_block
|
||||||
|
|
||||||
|
```
|
||||||
|
✗ "Перехожу на ветку, затем подготовлю версию..."
|
||||||
|
✓ [молча] → результат или следующий вопрос
|
||||||
|
```
|
||||||
|
|
||||||
|
### Валидация
|
||||||
|
|
||||||
|
MATCH: exact_only | no_autocorrect | no_implicit_defaults
|
||||||
|
|
||||||
|
RETRY:
|
||||||
|
1 → error + repeat
|
||||||
|
2 → error + emphasize format (1 / 2 / 1,3)
|
||||||
|
3 → minimal hint
|
||||||
|
4 → STEP_ABORT
|
||||||
|
|
||||||
|
ABORT:
|
||||||
|
invalid×4 → STEP_ABORT (emit code only, no text)
|
||||||
|
abort|cancel → FLOW_CANCEL (emit code only, no text)
|
||||||
|
|
||||||
|
### Запрещённые шаблоны
|
||||||
|
|
||||||
|
```
|
||||||
|
✗ "Если хочешь, могу сделать коммит"
|
||||||
|
✗ "Дай знать если продолжить"
|
||||||
|
```
|
||||||
|
|
||||||
|
RULE: action available → always show choice block:
|
||||||
|
```
|
||||||
|
Выполнить коммит и push?
|
||||||
|
|
||||||
|
1) Да
|
||||||
|
2) Нет
|
||||||
|
```
|
||||||
|
|
||||||
|
OPTIONS: exhaustive | no "Другое" | freetext implicit (не предлагать как вариант)
|
||||||
|
|
||||||
|
### Приоритеты
|
||||||
|
|
||||||
|
PRIORITY: safety(absolute) > determinism > structure > format > convenience
|
||||||
|
DETERMINISM: same_input→same_output | option_order=fixed | option_text=never_rephrase
|
||||||
|
|||||||
Reference in New Issue
Block a user