Об этом проекте
core-agent — это производственная Go-основа для многоходовых LLM-агентов, построенная на Agent Development Kit (ADK) от Google. Она предоставляет базовую обвязку — провайдеры, MCP, навыки, разрешения, надёжные сессии, удалённое подключение, встроенный Bubble Tea TUI и headless CLI — чтобы последующие проекты могли сосредоточиться на собственных инструментах и продуктовой логике.
**Среда выполнения**: Многоходовая беседа через runner ADK с параллельной диспетчеризацией вызовов инструментов. Включает встроенный Bubble Tea TUI как поверхность TTY по умолчанию, строчный REPL с флагом --no-tui в качестве запасного варианта и slim-тег сборки, исключающий дерево TUI. Автономный режим поддерживает необслуживаемых воркеров с бюджетами по ходам/токенам/стоимости/времени, завершением по решению модели и восстановлением после сбоев через надёжные контрольные точки. Для выживаемости длинных сессий предусмотрены автоматическое уплотнение контекста после хода при ~85% использования, подзадачи с агентными обёртками инструментов, удерживающими объёмный вывод инструментов вне родительского контекста, и контрольные точки на границах задач.
**Провайдеры**: Gemini API и Vertex AI (с серверными GoogleSearch и URLContext), Anthropic Claude через api.anthropic.com и через Vertex AI как нативный адаптер модели. Mock-провайдеры (echo, сценарное воспроизведение JSONL, запись сессий) позволяют тестировать без учётных данных. Провайдер-нейтральная трёхсостоянийная система гейтинга для серверных встроенных инструментов (web_search, url_context, code_execution) позволяет сохранять политику доступа в интернет при смене провайдера.
**Инструкции, инструменты, MCP, навыки**: Основные инструкции AGENTS.md с каталогом-оверлеем, директива @include для многофайловой композиции и три области (user, user-home, project) с запасными вариантами CLAUDE.md/GEMINI.md. Каталог встроенных инструментов охватывает файловые операции (read, write, edit, delete, outline), поиск (glob, grep), данные/сеть (json_query, fetch_url), shell (bash), планирование (todo, record_plan), верификацию (wait_and_verify) и интерактивные запросы (ask_user). MCP-серверы объявляются в mcp.json с транспортами stdio и Streamable HTTP, инструментами с пространствами имён и маршрутизацией с гейтингом разрешений. Совместимые с Claude навыки автоматически обнаруживаются из файлов SKILL.md с объявлениями требований (например, shell, kubectl, gcloud), которые не предоставляются при запуске, если не выполнены.
**Разрешения**: Режимы ask/allow/yolo со списками разрешений/запретов на основе шаблонов, принудительное ограничение области путей для файловых инструментов, allowlist области URL для fetch_url и неотменяемый denylist для bash. Принудительное планирование может требовать записанный план перед изменяющими вызовами инструментов (режим required) или записывать планы без блокировки (режим advisory для необслуживаемых запусков). Подключаемый интерфейс Prompter работает в TTY, headless, TUI или пользовательских веб-фронтендах.
**Персистентность и наблюдаемость**: Надёжные сессии и журнал аудита через SQLite (на чистом Go, без CGO), Postgres или MySQL с монотонным seq, воспроизведением, live-tail watch и блокировкой сессий для безопасного при сбоях многопроцессного возобновления. Опциональный экспорт OpenTelemetry (console/OTLP, по умолчанию отключён). Учёт токенов и стоимости по каждой модели с многоуровневым ценообразованием (ежедневное обновление LiteLLM, переопределения на уровне конфигурации).
**Удалённое подключение и поверхность оператора**: HTTP + SSE live-tail с эндпоинтами inject/wake поверх mTLS + bearer-аутентификации. Управление hold/interrupt/pause оператором для отмены выполняющегося хода и парковки цикла. Клиент удалённого TUI (отдельно версионируемый бинарник) с полным паритетом slash-команд, подвалом стоимости за ход, живыми модальными окнами одобрения инструментов и переключением сессий. Многосессионный демон с идентичностью на вызывающего, ACL (Owner/Viewers/Contributors), предоставлением разрешений, оверлеями инструкций и атрибуцией аудита; сессии переживают перезапуски демона. Обнаружение через agent-card по /.well-known/agent-card.json в форме A2A AgentCard. Регистрация пиров для обнаружения флота по схеме hub-and-spoke.
**Субагенты**: Синхронное делегирование в процессе через agent.WithSubagents, фоновые субагенты через spawn_agent/stop_agent с результатами, возвращаемыми как Background reports. Удалённое порождение через предоставляемый потребителем RemoteAgentSpawner для gRPC, K8s Jobs или Cloud Run. События субагентов стримятся в журнал аудита родителя под меткой Branch.
**Sidecar для триажа Kubernetes**: lookout-watch отслеживает события Kubernetes, фильтрует и дедуплицирует их и внедряет совпавшие инциденты в сессии по каждому инциденту для циклов diagnose-fix-verify через GKE MCP с гейтингом принудительного планирования.
**Установка**: Go install (требуется Go 1.26+), предварительно собранные бинарники с подписью Sigstore (linux/darwin × amd64/arm64) и мультиархитектурные distroless-образы контейнеров (полный демон+TUI, slim headless, только клиент TUI). Лицензия Apache-2.0.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.