Разработка AI-агентов сегодня — одна из самых «горячих» тем в IT. Кодинг-агенты уже оформились в отдельный класс продуктов с понятными лидерами: терминальные (Claude Code, Opencode) и IDE-ориентированные решения (Cursor, плагины для VS Code и т.д.).
Но что делать, если нужен универсальный помощник для повседневных задач: работы с файлами, ресёрча, анализа данных и OPS-активностей? В этой нише пока нет доминирующего архитектурного подхода.
В статье я рассматриваю один из возможных вариантов архитектуры универсального AI-агента:
какие идеи за ним стоят,
как они реализованы на практике,
и какие сценарии уже сегодня выглядят реально рабочими.
После «MCP-хайпа» довольно быстро проявились ограничения чисто tool-ориентированного подхода. Наиболее внятную эволюцию этих идей, на мой взгляд, сформулировали в Anthropic:
https://www.anthropic.com/engineering/code-execution-with-mcp
https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills
Если свести эти материалы к коротким выводам, получается следующее.
Агенту нужно дать возможность писать и исполнять код. Вместо попыток заранее описать все возможные tool-вызовы, агенту выгоднее:
генерировать код под задачу,
запускать его,
проверять результат,
и при необходимости итеративно исправлять. По сути — REPL-подход, но управляемый LLM.
Полноценный доступ к Linux-CLI — это огромный буст LLM отлично понимают командную строку:
умеют строить пайплайны,
работать с файлами,
запускать утилиты. Не загружая при этом большие объёмы данных в контекст. Это резко снижает нагрузку на промпт и делает агента гораздо более автономным.
Skills как лёгкий механизм расширения Markdown-инструкции + скрипты + ассеты — простой и мощный способ расширять функциональность агента. Skills дают агенту срез знаний и примеров, необходимых для конкретного класса задач, не превращая системный промпт в монстра. Формат skills сегодня фактически стал стандартом и поддерживается ключевыми игроками (OpenAI, Anthropic, Google). Вокруг него уже появился маркетплейс и экосистема (например https://skillsmp.com/)
Собственно Persona — экспериментальный универсальный персональный агент, реализованный на базе описанных выше принципов (версия v0.3-beta).
В основе — pydantic-ai
При старте агент:
поднимает изолированный Docker-контейнер (Ubuntu),
получает к нему полный доступ,
загружает skills из папки skills (по спецификации agentskills.io).
Фактически агенту доступны всего три инструмента:
run_cmd — выполнение команд в контейнере. (далее в логах примеров [CMD])
save_text_file — сохранение файлов в контейнер ([FILE])
load_skill — подгрузка skill в контекст ([SKILL])
Всё остальное — следствие этих трёх возможностей.
Обмен файлами c пользователем идет через примонтированную папку к контейнеру (по умолчанию текущая директория или --mnt-dir). Внутри контейнера это всегда /mnt
Каждая сессия стартует в чистом контейнере и полностью уничтожается при выходе.
В контейнер пресобран некий минимум, в том числе для работы в интернете (trafilatura, curl, lynx ). При необходимости агент может легко доставить новый софт.
Системный промпт дает возможность всем этим "функционалом" агенту напрямую воспользоваться для решения задач пользователя максимально автономно (ReACT паттерн).
Агент сам строит решение из команд, скриптов и файлов, комбинируя их так же, как это делал бы живой человек в терминале. По ощущениям — это «Всезнающий junior, которому дали Linux и сказали делать задачу до конца».
Из коробки используется минимальный, но практичный набор:
web-search — поиск в интернете (DuckDuckGo / Tavily)
skill-creator — создание, валидация и упаковка новых skills
skillsmp-search — поиск skills в маркетплейсе
planning-with-files — планирование и трекинг сложных задач через markdown-файлы Агент не привязан к конкретным skills. Их можно свободно добавлять или убирать под задачу.
Рекомендую дополнительно рассмотреть от набор от Антропика , https://github.com/anthropics/skills/tree/main/skills, они детально проработанные и качественные. И взять с интернета конечно:
https://skillsmp.com/
https://mcpservers.org/claude-skills
Лучше держать набор скиллов компактным и целевым, чтобы не перегружать контекст агента.
Persona работает с любыми моделями, поддерживающими tools. Тестировались free-модели через OpenRouter (xiaomi/mimo-v2-flash:free, mistralai/devstral-2512:free , z-ai/glm-4.5-air:free, deepseek-v3.2), а также локальные модели через Ollama (cogito:14b). Рекомендую reasoning, так как они не только в целом лучше справляются, но и в процессе работы печатают свои рассуждения, что можно использовать для уточнения промптов в дальнейшем. Опробовано на MacOS, но нет причин чтобы это не работало везде где есть python и докер.
Контейнер для песочницы лучше собрать сразу, хотя може поработать со своим (--container-image).
Для передачи переменных окружения в контейнер, например токены для скиллов, их нужно положить в .env.sandbox
При запуске по умолчанию текущая папка монтируется в контейнер и становится доступной агенту. Можно либо переопределить, либо не монтировать ничего вовсе, если хотим ограничиться только чатом и интернетом. Папка со скиллами монтируется всегда, но тоже можно переопределить. Пока только интерактивный режим.
$ persona persona ➤ what can you do ? I can help you with a wide range of tasks! Here's what I can do: ## Core Capabilities ### File Operations ... ### Command Execution ... ### Web & Research ... ### Skills & Extensions ... ### Planning & Organization ... ## Specialized Skills Available ... ## What I Can't Do ... What would you like to work on today?
Текущая конфигурация скиллов моего сетапа:
persona ➤ which skills do you have I have the following skills available: ## Available Skills 1 planning-with-files - Transform workflow to use persistent markdown files for planning, progress tracking, and knowledge storage. Use for complex tasks, multi-step projects, or when organizing work. 2 pdf - Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. 3 logs-analysis - Analyze system and application log data from sosreport archives, extracting error patterns, kernel panics, OOM events, service failures, and application crashes. 4 skill-creator - Guide for creating effective skills. Use when you want to create a new skill or update an existing skill that extends Claude's capabilities. 5 web-search - Web search capability using DuckDuckGo API by default, with Tavily API fallback. Use for searching current information, research topics, finding URLs, or gathering data from online sources. 6 file-organizer - Intelligently organizes files and folders across your computer by understanding context, finding duplicates, suggesting better structures, and automating cleanup tasks. 7 skillsmp-search - Search and discover AI skills using the SkillsMP API. Supports keyword search and AI semantic search powered by Cloudflare AI. 8 youtube-downloader - Download YouTube videos with customizable quality and format options. Supports various quality settings and multiple formats. 9 youtube-text-extractor - Extract text from YouTube videos using Ubuntu CLI tools. Supports subtitles, speech-to-text, metadata extraction, and OCR.
Скиллы загружаются автоматически, согласно своему description, когда модель решает что они нужны.
persona ➤ get latest news and save summary in news.txt [SKILL] web-search [CMD] python3 /skills/web-search/scripts/web_search.py "latest news" 5 [FILE] /mnt/news.txt I've successfully retrieved the latest news and saved a comprehensive summary to /mnt/news.txt. The summary includes:
А данном примере отработали все 3 тула, модель поняла что нужно воспользоваться скиллом, загрузила его, выполнила описанный в скилле скрипт и сохранила результат сразу в папку пользователя (которая монтируется в /mnt)
Агент с таким подходом имеет широкий спектр применений, который легко расширяется скиллами. Ниже несколько характерных примеров, где такой подход реально раскрывается.
skill-creator — один из самых полезных skills в принципе.
Типовой сценарий:
вы интерактивно решаете задачу
просите агента оформить это в skill
дотюниваете SKILL.md и дальше используете это как готовый модуль.
Skill-creator также хорошо подходит для:
валидации сторонних skills
приведения их к стандарту
Скиллы c https://skillsmp.com/ рекомендую предварительно валидировать хотя бы, так как они сильно заточено под Claude Code (есть указание на mcp инструменты) и не всегда хорошего качества (не следуют стандарту, нет ссылок на идущие в комплекте скрипты и ассеты)
persona ➤ using skill-creator validate planning-with-files skill [SKILL] skill-creator [SKILL] planning-with-files [CMD] cd /skills && find planning-with-files -type f -name "*.md" -o -name "*.py" -o -name "*.sh" | head -20 [CMD] cd /skills && find planning-with-files -type f | sort [CMD] cat /skills/planning-with-files/reference.md [CMD] cat /skills/planning-with-files/examples.md [FILE] validate_planning_skill.py [CMD] cd /tmp && python3 /tmp/validate_planning_skill.py [CMD] pip install pyyaml -q && cd /tmp && python3 validate_planning_skill.py [CMD] cd /skills && ls -la planning-with-files/ [CMD] find /skills -name "package_skill.py" -o -name "init_skill.py" 2>/dev/null [CMD] cd /skills && python3 skill-creator/scripts/package_skill.py planning-with-files Excellent! The skill has been successfully validated and packaged. Let me provide a comprehensive summary of the validation results: ## ✅ Validation Complete: planning-with-files skill ### Overall Status: PASSED ✅ ...
Классический бытовой пример — уборка в папке Downloads. Для этого воспользуемся соответствующим скиллом - file-organizer.
Агент:
анализирует содержимое
выявляет дубликаты
предлагает структуру и по шагам выполняет cleanup.
$ persona --mnt-dir ~/Downloads/ persona ➤ Take a look at my folder, it a Downloads directory, assess and recommend how to clean up it. [CMD] ls -la /mnt [SKILL] file-organizer [CMD] cd /mnt && find . -maxdepth 1 -type f -exec ls -lh {} \; | head -30 [CMD] cd /mnt && echo "=== FILE COUNT BY TYPE ===" && find . -maxdepth 1 -type f | sed 's/.*\.//' | sort | uniq -c | sort -rn [CMD] cd /mnt && echo "=== LARGEST FILES ===" && du -sh * | sort -rh | head -15 [CMD] cd /mnt && echo "=== OLDEST FILES ===" && ls -la --time-style=long-iso | head -20 [CMD] cd /mnt && echo "=== TOTAL FILES AND DIRECTORIES ===" && echo "Files: $(find . -maxdepth 1 -type f | wc -l)" && echo "Directories: $(find . -maxdepth 1 -type d | wc -l)" && echo "=== POTENTIAL DUPLICATES ===" && find . -maxdepth 1 -type f -printf '%f\n' | sort | uniq -d [CMD] cd /mnt && echo "=== SIMILAR FILE NAMES ===" && find . -maxdepth 1 -type f -printf '%f\n' | grep -E "(CV|cv|Sergey|sergey|backup|config|p12|pdf)" | sort ... → Findings: - duplicate files (including potentially sensitive ones) - several large temporary artifacts - mixed categories: documents, installers, media ... persona ➤ make phase 1 ... [CMD] rm "duplicate_file (1).ext" [CMD] rm -f .DS_Store .localized [CMD] mkdir -p ../Videos [CMD] mv big_video.mp4 ../Videos/ .... → Phase 1 completed: - duplicates and temporary files removed - large media file moved to a proper location - ~700MB of space freed
Оценка кандидата по резюме
Агент:
ставит необходимые пакеты
извлекает данные из PDF
ищет публичную активность
клонирует репозитории
прогоняет код через статические анализаторы
и формирует итоговый отчёт с оценкой.
Это классический пример «долгой» задачи, где:
много источников
много шагов
и важно ничего не потерять по дороге.
Здесь отлично работает связка planning-with-files + web-search + CLI.
persona ➤ I provided CV of candidate. Extract information from CV and make me complete profile based on 1. his social media activities 2. github , gitlab project. Clone his projects and assess code using latest code quality standards, use appropriate tools. 3.other public information available on the internet. I need a final report with grade (from 0 to 10) where 10 is the top professional in the same technical area. Plan a research. [SKILL] planning-with-files [FILE] task_plan.md [CMD] ls -la /mnt/ [CMD] pip install pdfplumber PyMuPDF [CMD] which pdftotext || apt-get update && apt-get install -y poppler-utils [CMD] pdftotext /mnt/USER_CV.pdf /tmp/cv_extracted.txt [CMD] cat /tmp/cv_extracted.txt [FILE] notes.md [SKILL] web-search [CMD] python3 /skills/web-search/scripts/web_search.py "PERSON_A Software Architect" 5 [CMD] python3 /skills/web-search/scripts/web_search.py "USERNAME GitHub ORG_REPO_A" 5 [CMD] apt-get install -y git python3-pip [CMD] pip install pylint flake8 black mypy bandit safety [CMD] cd /tmp && git clone https://github.com/USERNAME github-profile [CMD] cd /tmp && git clone https://github.com/ORG/REPO_A.git repo-a [CMD] cd /tmp/repo-a && ls -la [CMD] cd /tmp/repo-a && git log --author="USERNAME" --oneline [CMD] cd /tmp/repo-a && git log --author="USERNAME" --stat [CMD] cd /tmp/repo-a && find . -name "*.py" | head -20 [CMD] cd /tmp/repo-a && cat pyproject.toml [CMD] cd /tmp/repo-a && ls -la .github/workflows/ [CMD] cd /tmp/repo-a && cat .github/workflows/ci.yaml [CMD] cd /tmp/repo-a && cat .github/workflows/tests.yaml [CMD] cd /tmp/repo-a && git show COMMIT_HASH_A [CMD] cd /tmp/repo-a && git show COMMIT_HASH_B [CMD] python3 /skills/web-search/scripts/web_search.py "PERSON_A AI agent architecture RAG" 5 [CMD] python3 /skills/web-search/scripts/web_search.py "PERSON_A FINANCIAL_ORG AI agent" 5 [CMD] python3 /skills/web-search/scripts/web_search.py "PERSON_A publication UNIX/Linux basics" 5 [CMD] python3 /skills/web-search/scripts/web_search.py "PERSON_A YouTube UNIX Linux course" 5 [CMD] python3 /skills/web-search/scripts/web_search.py "USERNAME GitHub projects" 5 [CMD] cd /tmp && git clone https://github.com/USERNAME/REPO_B.git repo-b [CMD] cd /tmp && git clone https://github.com/USERNAME/REPO_C.git repo-c [CMD] cd /tmp && git clone https://github.com/USERNAME/REPO_D.git repo-d [CMD] cd /tmp/repo-b && ls -la [CMD] cd /tmp/repo-c && ls -la [CMD] cd /tmp/repo-b && cat README.md [CMD] cd /tmp/repo-b && cat SOURCE_FILE_1.c | head -50 [CMD] cd /tmp/repo-c && cat README.md [CMD] cd /tmp/repo-c && ls SUBDIR_A/ [CMD] cd /tmp/repo-c && cat SUBDIR_A/SOURCE_FILE_2.lisp | head -50 [CMD] python3 /skills/web-search/scripts/web_search.py "PERSON_A conference talk presentation" 5 [CMD] python3 /skills/web-search/scripts/web_search.py "PERSON_A Kubernetes presentation" 5
Другой пример — анализ медицинских заключений:
OCR изображения
извлечение данных из PDF
поиск актуальных исследований
и формирование рекомендаций.
$ persona --mnt-dir tmp/medic/ persona ➤ i provided medical checkups in my folder in 2 files(medical_review.jpg and analysis.pdf) for a woman in russian. Extract data from both of them and Asse ss them using lates researches, recommendations, search the internet (use profile resources, like pubmed). Keep in mind that woman just caught COVID a week ago. Provide your recommendation. [CMD] ls -la /mnt [SKILL] pdf [CMD] pip install pytesseract pdf2image pypdf pdfplumber [CMD] apt-get update && apt-get install -y tesseract-ocr tesseract-ocr-rus poppler-utils [FILE] /tmp/extract_text.py [CMD] cd /tmp && python3 extract_text.py [CMD] cat /tmp/pdf_text.txt [CMD] cat /tmp/image_text.txt [SKILL] web-search [CMD] python3 /skills/web-search/scripts/web_search.py "latest research on COVID-19 and its impact on blood tests" 5 [CMD] python3 /skills/web-search/scripts/web_search.py "latest research on COVID-19 and its impact on neurological symptoms" 5 [CMD] python3 /skills/web-search/scripts/web_search.py "latest research on COVID-19 and its impact on lipid profile" 5 [FILE] /tmp/analysis_and_recommendations.md [CMD] cp /tmp/analysis_and_recommendations.md /mnt/analysis_and_recommendations.md The analysis and recommendations have been saved to /mnt/analysis_and_recommendations.md. Here is a summary of the findings and recommendations: ...
SRE/DevOps-задачи — одна из самых благодатных областей для таких AI-агентов. Большая часть повседневной работы здесь сводится к детерминированным действиям в Linux-окружении: командная строка, анализ логов, конфигурационные файлы, SSH-доступы, kubectl и helm. Современные LLM уже достаточно хорошо понимают эти инструменты, типовые паттерны ошибок и рабочие процессы инженеров, чтобы не просто отвечать на вопросы, а последовательно выполнять реальные операционные задачи. Потенциал здесь гораздо шире одного кейса — от диагностики и ресёрча инцидентов до полноценного ассистента для ежедневной OPS-работы. Ниже — один показательный пример.
подключение по SSH
сбор логов
загрузка их в контейнер
анализ через специализированный skill,
формирование отчёта о состоянии системы.
$ persona --mnt-dir ssh_test/ persona ➤ 1. login using ssh to 'server-host' host with devops user and pass from SSH_PASS env. 2. chek system load of server-host 3. download system logs 4. analyze logs and provide your summary about system status, issues and workload [CMD] cd /mnt && ls -la [CMD] echo $SSH_PASS [CMD] sshpass -p devopspass ssh -o StrictHostKeyChecking=no devops@server-host uptime [CMD] apt-get update && apt-get install -y sshpass [CMD] apt-get update && apt-get install -y sshpass 2>&1 | tail -20 ... [CMD] apt-get install -y sshpass [CMD] sshpass -p devopspass ssh -o StrictHostKeyChecking=no devops@server-host uptime [CMD] sshpass -p devopspass ssh -o StrictHostKeyChecking=no devops@server-host "cat /proc/loadavg" [CMD] sshpass -p devopspass ssh -o StrictHostKeyChecking=no devops@server-host "ls -la /var/log/ | head -20" [CMD] sshpass -p devopspass scp -o StrictHostKeyChecking=no -r devops@server-host:/var/log/* /mnt/server_logs/ [CMD] sshpass -p devopspass scp -o StrictHostKeyChecking=no devops@server-host:/var/log/syslog /mnt/server_logs/ [CMD] sshpass -p devopspass scp -o StrictHostKeyChecking=no devops@server-host:/var/log/auth.log /mnt/server_logs/ [CMD] sshpass -p devopspass scp -o StrictHostKeyChecking=no devops@server-host:/var/log/kern.log /mnt/server_logs/ [CMD] ls -la /mnt/server_logs/ [SKILL] logs-analysis [CMD] cd /mnt/server_logs && ls -la [CMD] cd /mnt/server_logs && grep -iE "(error|failed|failure|critical|panic|segfault|oom)" syslog | head -50 [CMD] cd /mnt/server_logs && grep -iE "(error|failed|failure|critical|panic|segfault|oom)" syslog | wc -l [CMD] cd /mnt/server_logs && grep -iE "(error|failed|failure|critical|panic|segfault|oom)" syslog | sed 's/^.*\]: //' | sort | uniq -c | sort -rn | head -10 [CMD] cd /mnt/server_logs && grep -i "oom" syslog [CMD] cd /mnt/server_logs && grep -i "kernel panic" syslog [CMD] cd /mnt/server_logs && grep -i "segfault" syslog [CMD] cd /mnt/server_logs && grep -i "failed to start" syslog | head -20 [CMD] cd /mnt/server_logs && grep -i "failed to accept" syslog | head -10 [CMD] cd /mnt/server_logs && cat top_processes.txt [CMD] cd /mnt/server_logs && cat failed_services.txt [FILE] /mnt/server_analysis_summary.md ## Summary I have successfully completed the requested server analysis. Here's what was accomplished: ... ### Key Findings: • The server is running well with excellent performance metrics • Issues found are configuration-related, not hardware or critical system failures • DNS and monitoring configuration need attention • 138 days uptime demonstrates system stability ### Deliverables: • Complete log files in /mnt/server_logs/ • Detailed analysis summary in /mnt/server_analysis_summary.md The server is in good health overall, with only minor configuration issues that need addressing. The analysis provides actionable recommendations for improving system reliability and monitoring.
Подход «LLM + Linux + code execution» оказывается довольно универсальным.
Такой агент:
прост по архитектуре,
легко расширяется,
и покрывает широкий спектр задач — от бытовых до профессиональных.
Skills в этой модели — это не tools, а библиотеки контекста:
инструкции
примеры
скрипты всё, что нужно для конкретного класса задач.
С хорошей LLM можно рассматривать агента как "всезнающий Junior сидящий за Linux терминалом и терпеливо выполняющий ваши запросы".
Он может быть полезен уже сам по себе, как универсальный помошник, так и как основа для реализации более специфичного сценария, когда мы тюним под задачу системный промпт и предоставляя необходимый набор скиллов.
Идеи для развития:
вынести базовый web-поиск прямо в системный промпт
интегрировать planning-подход по умолчанию
добавить Playwright для сложных сайтов
подумать о более глубоком доступе к хост-систем
мультиагентность и параллелизм
улучшение UI/UX
защита от «cat huge_file»
В дальнейшем есть мысли попробовать агент как:
Практический SRE-инструмент DevOps-задачи хорошо подходят для AI-агента, потому что большая часть работы — это командная строка, логи, конфиги и типовые операции. Такой агент может стать постоянным инструментом в работе DevOps-инженера: ему можно поручать сбор логов, диагностику проблем в кластере или выполнение инструкций, формулируя задачи на более высоком уровне, чем отдельные команды.
Архитектурный подход для агентов общего назначения Тот же самый паттерн — изолированное окружение, skills и выполнение кода — хочется проверить и за пределами CLI. Он может лечь в основу агентов поддержки, RAG-систем и внутренних консультантов, где Linux-окружение используется как универсальный исполнитель, а не как интерфейс для пользователя.
В перспективе вырисовывается интересный класс ПО: один универсальный персональный агент, расширяемый skills и адаптируемый под конкретные задачи пользователя.
Релиз Claude Cowork можно рассматривать как первый шаг в этом направлении.
Источник


