standalone: убрать demo-toolset после e2e-проверки

Удаляю DemoToolset.kt, поле AgentikConfig.demoToolset и парсер
AGENTIK_DEMO_TOOLSET — после ночной e2e-проверки toolsets
они больше не нужны в проде. Механика покрыта ChatAgentToolsetsTest
через stub-тулы inline. Если потребуется live e2e — проще
прокинуть свой ToolsetContribution-список из main/test.
This commit is contained in:
2026-09-15 21:10:52 +03:00
parent 1441b7da9f
commit 21bb9e6f8f
3 changed files with 0 additions and 66 deletions
@@ -202,8 +202,6 @@ fun main() {
reflectionInterval = config.reflectionInterval, reflectionInterval = config.reflectionInterval,
skillMiner = skillMiner, skillMiner = skillMiner,
skillMiningInterval = config.skillMiningInterval, skillMiningInterval = config.skillMiningInterval,
// Демо-тулсет для e2e проверки механики toolsets (AGENTIK_DEMO_TOOLSET=1)
toolsets = if (config.demoToolset) listOf(pw.binom.agentik.standalone.toolsets.DemoToolset.contribution()) else emptyList(),
) )
// Куратор памяти: фоновая архивация stale-заметок. Поднимается до server'а, // Куратор памяти: фоновая архивация stale-заметок. Поднимается до server'а,
@@ -115,17 +115,6 @@ data class AgentikConfig(
* отладка: `AGENTIK_DEBUG_ENDPOINTS=1`. * отладка: `AGENTIK_DEBUG_ENDPOINTS=1`.
*/ */
val debugEndpoints: Boolean = false, val debugEndpoints: Boolean = false,
/**
* Регистрирует демонстрационный тулсет ("media" с парой stub-инструментов)
* в агенте. Полезно для проверки механики toolsets в e2e без подключения
* реальных тулсетов: модель видит секцию Toolsets в system prompt и
* может вызвать enable_toolset/disable_toolset. Тулы в демо-тулсете
* возвращают безопасные stub-результаты и НЕ выполняют реальных действий.
*
* Opt-in: `AGENTIK_DEMO_TOOLSET=1`. По умолчанию выключен (агент не знает
* о механике toolsets вообще — per design contract A1-α).
*/
val demoToolset: Boolean = false,
) { ) {
/** Бэкенд долговременной памяти. */ /** Бэкенд долговременной памяти. */
@Serializable @Serializable
@@ -184,9 +173,6 @@ data class AgentikConfig(
debugEndpoints = env("AGENTIK_DEBUG_ENDPOINTS")?.let { debugEndpoints = env("AGENTIK_DEBUG_ENDPOINTS")?.let {
it.equals("1", ignoreCase = true) || it.equals("true", ignoreCase = true) it.equals("1", ignoreCase = true) || it.equals("true", ignoreCase = true)
} ?: false, } ?: false,
demoToolset = env("AGENTIK_DEMO_TOOLSET")?.let {
it.equals("1", ignoreCase = true) || it.equals("true", ignoreCase = true)
} ?: false,
) )
} }
} }
@@ -1,50 +0,0 @@
package pw.binom.agentik.standalone.toolsets
import pw.binom.agentik.toolsets.ToolsetContribution
import pw.binom.litert.LiteTool
/**
* Демонстрационный тулсет `media` — используется в e2e для проверки механики
* toolsets без подключения реальных тулсетов (image processing, web fetch).
*
* Тулы возвращают безопасные stub-результаты: `resize_image` пишет что уменьшил
* картинку до 100x100, `fetch_url` возвращает заглушку с URL. Реальных
* побочных эффектов нет — модель видит тулсет, активирует/деактивирует
* через enable_toolset/disable_toolset, и видит корректные результаты.
*
* Включается через `AGENTIK_DEMO_TOOLSET=1`. По умолчанию выключен —
* механика toolsets полностью невидима для модели (per design contract A1-α).
*/
object DemoToolset {
const val NAME = "media"
const val DESCRIPTION = "image and URL helpers (stub tools for testing toolset mechanics)"
fun contribution(): ToolsetContribution = ToolsetContribution(
name = NAME,
description = DESCRIPTION,
tools = listOf(
ToolsetContribution.ToolEntry("resize_image", ResizeImageTool),
ToolsetContribution.ToolEntry("fetch_url", FetchUrlTool),
),
)
private object ResizeImageTool : LiteTool {
override fun describe(): String = """
{"name":"resize_image","description":"Resize an image to 100x100 px (stub).","parameters":{"type":"object","properties":{"image_id":{"type":"string","description":"Image identifier (e.g. file path or URL)."}},"required":["image_id"]}}
""".trimIndent()
override fun invoke(arguments: String): String =
// Просто принимаем любые аргументы и возвращаем заглушку — никаких реальных файловых IO.
"""{"status":"ok","result":"image resized to 100x100","args":${arguments}}"""
}
private object FetchUrlTool : LiteTool {
override fun describe(): String = """
{"name":"fetch_url","description":"Fetch a web page and return its title (stub).","parameters":{"type":"object","properties":{"url":{"type":"string","description":"URL to fetch."}},"required":["url"]}}
""".trimIndent()
override fun invoke(arguments: String): String =
"""{"status":"ok","title":"stub title","content":"(stubbed page body)","args":${arguments}}"""
}
}