-
Notifications
You must be signed in to change notification settings - Fork 1
Description
🧠 1. Главная проблема: это НЕ “teleton-style plugin”
По философии Teleton Agent:
плагин = набор tools (function calling API) (teletonagent.dev)
А ton-trading-bot по названию и типичным реализациям (и аналогичным проектам):
❌ выглядит как самостоятельный бот / стратегия / сервис, а не tool-provider
👉 Конфликт архитектур
Teleton ожидает:
export default {
name: "plugin",
tools: [tool1, tool2]
}
Trading bot обычно:
startBot()
runStrategyLoop()
listenToEvents()
📌 Итог:
💥 агент не может “использовать” такой плагин,
он может только вызывать tools
⚠️ 2. Нет tool-интерфейса (самая частая причина)
Если в плагине нет:
{
name: string,
description: string,
parameters: JSON schema,
execute: fn
}
👉 значит:
LLM его не увидит
runtime его не зарегистрирует
Симптом
плагин "подключился"
но агент его никогда не вызывает
⚠️ 3. Смешение уровней: strategy ≠ tool
Очень частая ошибка в таких плагинах:
они пытаются реализовать стратегию внутри плагина
Но в teleton архитектуре:
Слой | Где живёт -- | -- Strategy | agent config Tools | plugin❌ Неправильно:
if (price < X) buy()
✅ Правильно:
tool: get_price
tool: swap_tokens
А решение — за LLM
⚠️ 4. Дублирование встроенных возможностей
У Teleton Agent уже есть:
wallet
swap
price tracking (teletonagent.dev)
👉 Если плагин делает то же самое:
он конфликтует или просто бесполезен
⚠️ 5. Неправильный доступ к TON SDK
Правильный способ (через SDK):
import { ton } from 'teleton';
await ton.swap(...)
(официальный API (teletonagent.dev))
❌ Если плагин:
использует сторонние SDK
напрямую дергает RPC
не использует
ton
👉 он:
ломает контекст агента
не использует его wallet
может работать “в вакууме”
⚠️ 6. Нет dependency injection (контекста агента)
Правильный plugin должен получать:
(ctx) => {
ctx.ton
ctx.telegram
ctx.memory
}
Если этого нет:
💥 tool не знает:
какой wallet
какой пользователь
какой чат
⚠️ 7. Асинхронный loop внутри плагина (критично)
Если внутри:
setInterval(...)
while(true)
startBot()
👉 это ломает архитектуру:
Teleton уже имеет:
scheduler
agent loop
📌 Итог:
❌ двойной runtime → конфликты
⚠️ 8. Нет JSON schema для параметров
LLM не сможет вызвать tool без:
parameters: {
type: "object",
properties: {...}
}
👉 значит:
tool “невидим” для модели
⚠️ 9. Naming / description проблема
LLM выбирает tools по:
name
description
Если там:
doTrade
executeStrategy
run
👉 модель НЕ поймёт когда использовать
⚠️ 10. Нет atomicity (опасно для трейдинга)
Правильный tool:
swap_tokens(amount, tokenA, tokenB)
Неправильный:
run_full_trading_strategy()
👉 потому что:
LLM теряет контроль
нельзя reason step-by-step
🔥 11. Главный архитектурный вывод
ton-trading-bot скорее всего:
❌ не plugin
✅ отдельный trading engine
🛠️ 12. Что нужно сделать (рефакторинг)
Вот конкретный план, если хочешь “починить”:
✅ Шаг 1 — разрезать на tools
Вместо:
startTradingBot()
сделать:
get_token_price
buy_token
sell_token
get_wallet_balance
get_trending_tokens
✅ Шаг 2 — убрать loop
Удалить:
setInterval
while(true)
✅ Шаг 3 — использовать teleton SDK
ctx.ton.swap(...)
✅ Шаг 4 — добавить schema
parameters: {
type: "object",
properties: {
token: { type: "string" },
amount: { type: "number" }
}
}
✅ Шаг 5 — сделать granular tools
❌ плохо:
executeSniperStrategy()
✅ хорошо:
get_new_tokens
buy_token
set_limit_order
✅ Шаг 6 — добавить description для LLM
description: "Buy a token on TON DEX at market price"
🧪 13. Какие issues стоит создать (очень конкретно)
Вот прям готовый список:
🐛 Issue 1 — Not compatible with Teleton tool interface
нет стандартного tool schema
не регистрируется как tools
🐛 Issue 2 — Plugin contains its own runtime loop
конфликт с agent runtime
🐛 Issue 3 — Missing Teleton SDK integration
не использует
tonиз контекста
🐛 Issue 4 — No JSON schema for LLM function calling
🐛 Issue 5 — Strategy logic embedded in plugin
должно быть в agent layer
🐛 Issue 6 — Tools are not atomic
слишком крупные операции
🐛 Issue 7 — Missing context injection (ctx)
💬 Итог
👉 Ты абсолютно правильно мыслишь:
✔ да, надо делать issues
✔ да, надо приводить к tool-based архитектуре
Ключевая мысль
💡 Teleton plugin = инструменты для LLM,
а не “бот внутри бота”