Канал о прекрасном и не очень, вокруг кода, искуственного интеллекта, и их безопасности.
Навигация по каналу: https://t.me/art_code_ai/105
Post #73
497
🥸 Как рассуждает Claude Code?
Как и обещал, рассмотрим подходы, применяемые в реальных решениях. Было бы странно начать не с Claude Code, чей внезапный и незапланированный врыв в мир опенсорса, вчера анонсировали все релевантные каналы.
Архитектура CC основана на 3 типах агентов и 3 механизмах их работы.
Агенты:
• Встроенные (
• Пользовательские — загружаются из
• Плагинные — регистрируются через систему плагинов.
Механизмы:
•
•
•
На всем этом строятся используемые CC подходы к ризонингу.
ReAct: центральный цикл рассуждения, реализован в
Plan & Execute: активируется командой
В
В
Явная реализация CoT отсутствует, CC полагается на возможности своих моделей и имеет три режима: автоматический выбор между следующими двумя, явное включение мышления с лимитом токенов и явное отключение. По аналогии с UltraPlan агент также умеет в UltraThink, увеличивающим бюджет токенов при явном включении, а также — в уровни усилий мышления моделей (
RAG'и, графовые модели кода и т.п. в агенте также отсутствуют. Для быстрой навигации по коду используется
В
А
В CC также есть забавный механизм «снов» autoDream (
Оффтопиком стоит упомянуть распиаренную команду
Продолжение.
#агенты #гайд
Как и обещал, рассмотрим подходы, применяемые в реальных решениях. Было бы странно начать не с Claude Code, чей внезапный и незапланированный врыв в мир опенсорса, вчера анонсировали все релевантные каналы.
Архитектура CC основана на 3 типах агентов и 3 механизмах их работы.
Агенты:
• Встроенные (
tools/AgentTool/built-in/): generalPurposeAgent — универсальный, Explore — только для чтения кода, и Plan — планировщик.• Пользовательские — загружаются из
.claude/agents/*.md.• Плагинные — регистрируются через систему плагинов.
Механизмы:
•
coordinator/coordinatorMode.ts реализует режим, при котором агент-координатор делегирует работу агентам-воркерам.•
tools/AgentTool/forkSubagent.ts реализует механизм FORK_SUBAGENT. Субагент наследует полный родительский контекст. Режимы fork и координатор взаимно исключают друг друга.•
utils/swarm/spawnInProcess.ts и utils/swarm/inProcessRunner.ts реализуют поддержку механизма, позволяющего запускать рой агентов (по сути — ролевую команду исполнителей).На всем этом строятся используемые CC подходы к ризонингу.
ReAct: центральный цикл рассуждения, реализован в
query.ts:L241-1728, и состоит из обычного «наблюдение→мышление→действие». Действия при этом могут выполняться параллельно, распределяясь по батчам.Plan & Execute: активируется командой
/plan в commands/plan/plan.tsx. В этом режиме модель записывает план в plan.md, пользователь проверяет и одобряет его перед выполнением. В
commands/ultraplan.tsx предусмотрен также более мощный режим Ultraplan, использующий облачные сессии для работы по схеме: «удалённая сессия→мультиагентное исследование→декомпозиция→одобрение→выполнение».В
skills/bundled/batch.ts реализован скилл пакетного выполнения: фаза 1 — исследование и планирование, фаза 2 — декомпозиция на независимые единицы для параллельного выполнения.Явная реализация CoT отсутствует, CC полагается на возможности своих моделей и имеет три режима: автоматический выбор между следующими двумя, явное включение мышления с лимитом токенов и явное отключение. По аналогии с UltraPlan агент также умеет в UltraThink, увеличивающим бюджет токенов при явном включении, а также — в уровни усилий мышления моделей (
utils/effort.ts).RAG'и, графовые модели кода и т.п. в агенте также отсутствуют. Для быстрой навигации по коду используется
tools/AgentTool/built-in/exploreAgent.ts полагающийся на ripgrep (tools/GrepTool/GrepTool.ts) и тулу для чтения файлов (tools/FileReadTool/FileReadTool.ts).В
memdir/memdir.ts также реализована семантическая память: файлы хранятся в ~/.claude/projects/<slug>/memory/, точкой входа служит MEMORY.md. За отбор воспоминаний отвечает memdir/findRelevantMemories.ts: модель выбирает топ-5 наиболее релевантных записей для текущего запроса. Сессионная память реализована в services/SessionMemory/sessionMemory.ts, хранится в ~/.claude/projects/<slug>/session_memory/<sessionId>.md и работаает аналогично семантической, но в рамках конкретной сессии.А
native-ts/file-index/index.ts реализует индексацию кода с нечётким поиском на основе алгоритма Nucleo, применяющим бонусы за совпадение по границам слов, camelCase-совпадения, последовательные совпадения символов, и штрафующим тестовые файлы.В CC также есть забавный механизм «снов» autoDream (
services/autoDream/ для регулярного обогащения семантической памяти новыми знаниями о проекте. Оффтопиком стоит упомянуть распиаренную команду
commands/security-review.ts, по факту представляющую собой промпт в ~200 строк, полагающийся на работу с кодом, как с текстом. И вот к этому есть вопросики, поскольку в больших проектах, протянуть контекст по той же тейнт-модели от сорса к синку, оперируя кодом, как текстом, весьма непросто. Даже примитивная формальная модель кода в виде графа вызовов — уже могла бы улучшить качество ревью в разы (про PDG/CPG скромно промолчу).Продолжение.
#агенты #гайд
- 👍 10
- ❤ 1
- 💔 1










