TGViewer
EDU EDU @productsandstartups · 15.4K subscribers
Post #1709 5.21K
Пока ты читаешь ответ Claude, он уже пишет следующий (это я изучаю сорсы Claude Code). Напомнило популярный трюк Instagram, когда они подгружали фотку на сервак, пока ты выбирал фильтры и вписывал текст.

Готовлюсь к сегодняшнему вебинару и захотелось поделиться/тизернуть. Но сначала история :)

В субботу пили пиво с товарищами в Mountain View и я проиллюстрировал понятие harness: обьяснил, что я выбрал столик со стульями со спинкой вместо скамеек, потому что так, сколько ни выпей, не упадешь с него 🤡 —> вот это настоящий harness 😉


К чему я это? Рассматривая исходники CC очень быстро становится понятно, что инжиниринг - детерминированные проверки, система пермишнов, управление контекстом и памятью, одним словом, обвязки (harness) - это подавляющая часть исходного кода; сам цикл не менее 100 строк. Как кто-то написал: модель это CEO, а claude code со всеми обвязками - это исполнитель + процессы. В ту же тему мой разбор autoresearch Карпатого

И это не просто слова. Стэнфорд буквально на днях опубликовал работу на эту же тему, где наглядно показал, как harness не только повышает точность модели, но и в 4 раза снижает обьем расходуемых токенов. Но вы то это все знаете, в том числе, надеюсь, из моих постов типа этого и этого

Собственно, возвращаюсь к кейсу а-ля инстаграм: оказывается, пока мы читаем ответ Claude - он уже прикидывает наш следующий промпт (помните, фичу когда он советует следующее сообщение)? Ну так вот, он не только прикидывает его, но и "форкает" агента и выполняет до 20 ходов вперед o__O Внутреннее кодовое имя: «tengu_speculation».

// speculation.ts — Claude Code предвычисляет ваш следующий ход

const MAX_SPECULATION_TURNS = 20
const MAX_SPECULATION_MESSAGES = 100

async function startSpeculation(suggestionText, context) {
if (process.env.USER_TYPE !== 'ant') return // пока только для сотрудников

// Создаем изолированную overlay-файловую систему
const overlayPath = join(tmpDir, 'speculation', process.pid, id)
await mkdir(overlayPath, { recursive: true })

// Форкаем агента с предсказанным промптом пользователя
const result = await runForkedAgent({
promptMessages: [createUserMessage({ content: suggestionText })],
canUseTool: async (tool, input) => {
// Записи идут в overlay (copy-on-write), не в реальные файлы
if (WRITE_TOOLS.has(tool.name)) {
await copyFile(join(cwd, rel), join(overlayPath, rel))
input = { ...input, file_path: join(overlayPath, rel) }
}
// Останавливаемся на опасных операциях
if (tool.name === 'Bash' && !isReadOnly(command)) {
abortController.abort()
return deny('Speculation paused: bash boundary')
}
}
})

// Если пользователь ввел то, что мы предсказали — применяем overlay
await copyOverlayToMain(overlayPath, writtenPaths, cwd)
logEvent('tengu_speculation', { timeSavedMs: Date.now() - startTime })
}


Важно: пока это работает только у сотрудников Anthropic. Но архитектура готова - так что скоро увидим, надеюсь. Ну или можно у себя реализовать такое, если токенов не жалко 😉

Собственно, инженеры пока еще нужны (phew) - велком на вебинар с 18 до 20 мск за подробностями:
https://luma.com/5tmc6sg0
  • 👍 20
  • ❤ 13
  • 🔥 4
More from @productsandstartups
  1. Sep 24, 2026Наш плагин на днях апрувнули в chatgpt - некоторые очень ранние заметки с полей: 1) 4-5 ин…
  2. Sep 22, 2026Некоторые наблюдения с полей о внедрении AI в компаниях с 50+ сотрудниками: 1) у каждой ко…
  3. Sep 21, 2026Поиграем про то, как AI агенты "ломают" продуктовые команды В пятницу с 17 по 19мск - реги…
  4. Sep 19, 2026Попробовал модель, что не умеет писать текст TypeSafe выкатили Jev - «System One» модель (…
  5. Sep 17, 2026Думаю, что следующим прорывом в тренинге моделей будет тренировка их на координацию агенто…
  6. Sep 14, 2026строю тут digital marketing агента - самая сложная часть пока это креатив, конечно же знаю…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →