Введение в проблему технического хаоса
Представьте, что вы дежуришь ночью в дата-центре, система падает, а мануал по восстановлению написан так художественно, будто это роман Стивена Кинга (спойлер: выживут не все, особенно дежурный). В критических сценариях (например, при обслуживании турбины или устранении сбоев в инфраструктуре Kubernetes — что в целом одинаково стрессово) неоднозначное описание в инструкции может стоить компании миллионов. Современная техдокументация для сложных систем часто страдает от стилистического хаоса, ведь её пишут распределенные команды инженеров.
Решением этой проблемы выступает стандарт ASD-STE100 Simplified Technical English (STE). Созданный ассоциацией ASD (AeroSpace and Defense Industries Association of Europe), этот международный стандарт жестко ограничивает лексику и грамматику английского языка. Он разрешает использовать базовый словарный запас, предписывает строгие структуры предложений и требует абсолютной однозначности терминов.
Однако ручное внедрение STE — это бутылочное горлышко для технических писателей. Проверка объёмных текстов по словарю тормозит релизы, а традиционные линтеры часто выдают ложноположительные результаты, не улавливая контекст. Решением становится интеграция автономных ИИ-агентов. Создание специализированного Agent Skill позволяет программно заставлять LLM генерировать и переписывать документацию строго по спецификации ASD-STE100.
Покажем на практике, как спроектировать такой скилл, который превратит хаотичный текст в строгий технический регламент.
Анатомия стандарта ASD-STE100 для языковых моделей
Прежде чем проектировать Skill-модуль для ИИ-агента, необходимо перевести правила человеческого стандарта в машиночитаемые инструкции. ASD-STE100 делится на две ключевые категории: контроль словарного запаса и синтаксические ограничения.
- Controlled Vocabulary: Использование только одобренных терминов. Омонимы и синонимы исключаются — для каждого действия закреплен строго один глагол.
- Ограничение длины предложений: Процедурные (инструктивные) предложения ограничены 20 словами, а описательные — 25 словами.
- Синтаксические запреты: Исключение герундия в заголовках, минимизация пассивного залога и отказ от сложных вложенных придаточных предложений.
Внедрить эти правила вручную на ревью каждого пулл-реквеста с документацией — верный путь к выгоранию команды (ведь у нас уже есть легаси-код и горящие дедлайны для этого). Гораздо эффективнее делегировать рутину кодовому агенту.
Архитектура ИИ-агента для проверки и генерации STE
Для реализации Agent Skill мы используем модульную архитектуру, разделяющую задачи парсинга, инференса LLM и валидации. Ниже представлена базовая схема взаимодействия компонентов в виде кода на Python с использованием псевдофреймворка агентов:
import os
from typing import List
from ai_agent_framework import Agent, Skill, LLMClient
class STESkill(Skill):
name = "asd_ste100_validator"
description = "Rewrites and validates text according to ASD-STE100 standard"
def __init__(self, llm_client: LLMClient):
self.llm = llm_client
self.max_procedure_words = 20
def process(self, raw_text: str) -> str:
prompt = self._build_ste_prompt(raw_text)
response = self.llm.complete(prompt)
validated_text = self._validate_constraints(response)
return validated_text
def _build_ste_prompt(self, text: str) -> str:
return f"""
Rewrite the following technical text strictly adhering to ASD-STE100 standard.
- Max words per sentence in procedures: {self.max_procedure_words}
- Use only approved vocabulary.
- Eliminate ambiguity and passive voice where possible.
Text to process:
{text}
"""
def _validate_constraints(self, text: str) -> str:
# Логика постобработки и проверки длины предложений
sentences = text.split('.')
for s in sentences: