add_step
Добавляет новый шаг в рабочий процесс. Это рекомендуемый путь для рабочих процессов, созданных агентом — сначала вызовите create_workflow({ name, goal }), затем add_step по одному шагу, затем validate_workflow + publish_workflow.
Каждый вызов немедленно возвращает ошибки валидации для каждого шага, так что неправильный тип шага, шаблон промпта или отсутствие обязательного поля обнаруживается до того, как поверх него будет построен следующий шаг.
## KG-First — прежде чем записывать содержимое промпта в шаг
Прежде чем писать промпт для AI-шага, содержащий специфичный для рабочего пространства контент (тезис, критерии ICP, оценочную рубрику, список секторов, географический фокус, голос бренда, списки сидов), проверьте, существует ли этот контент уже в workspace KG: вызовите list_memories / list_knowledge_lists / get_knowledge_text. Если его ещё нет, сначала добавьте его (store_memory / upsert_knowledge_text) перед добавлением этого шага. Затем ссылайтесь на него во время выполнения в шаблоне промпта через {{steps.read-kg.content}}, а не вставляйте текст напрямую.
Граница: стратегия → KG; связывание выполнения → контекст рабочего процесса; структура рабочего процесса → рабочий процесс.
## Обязательные поля step (все типы)
- id: стабильная строка, уникальная в пределах рабочего процесса.
- type: одно из значений закрытого списка — trigger, appAction, aiAction, aiActionWithTools, toolAction, code, knowledgeSync, return, milestone, share, wait, branch, parallel, loop, end_if, agentOrchestrator. Любая другая строка молча удаляется средой выполнения.
- name: читаемое человеком название.
Нетерминальные шаги также требуют next: { stepId }, указывающего на следующий шаг. Терминальные шаги (milestone, return) опускают next.
## Минимальная форма по типу
json // trigger (ручной) { "id": "start", "type": "trigger", "name": "Manual Start", "pipelineStepStartConditions": { "trigger": { "type": "manual" } }, "next": { "stepId": "next-step" } } // aiAction — LLM промпт → структурированный JSON { "id": "analyze", "type": "aiAction", "name": "Analyze", "pipelineStepPrompt": { "template": "Analyze…" }