@lionchat/mcp-server 0.5.18 → 0.5.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -261,6 +261,8 @@ Antes de QUALQUER ação que escreve, modifica, apaga ou envia, pare e avalie se
|
|
|
261
261
|
|
|
262
262
|
**Aja sem perguntar apenas em operações idempotentes:** leitura, busca, resumo, classificação.
|
|
263
263
|
|
|
264
|
+
**Excluir agente/usuário (`lionchat_agents_destroy`) — SEMPRE pergunte o destino primeiro.** Se o agente tem recursos vinculados (conversas, tarefas — inclusive as que ele **criou** —, cards do Kanban, campanhas, agendamentos), o sistema EXIGE um destino de reatribuição. Antes de excluir: consulte `lionchat_agents_assigned_resources` (o retorno inclui `tasks_created`, tarefas criadas por ele); se houver QUALQUER recurso, **pergunte pra qual agente transferir tudo** e passe `reassign_to_agent_id` no destroy. Nunca tente excluir sem o destino — o sistema recusa e o trabalho do agente ficaria órfão. Ao excluir, tudo passa pro agente escolhido; o excluído fica só no histórico.
|
|
265
|
+
|
|
264
266
|
**NUNCA sobrescreva por inferência dados já preenchidos.** Em especial, **NUNCA sobrescreva telefone ou e-mail existente de um contato** — se já há valor preenchido, pergunte antes de alterar.
|
|
265
267
|
|
|
266
268
|
## 8. Índice de roteamento (intenção → tool certa)
|
|
@@ -117,6 +117,10 @@ Pra reativar: `paused=false`. Toggle é auditado (`audited only: [:paused]`).
|
|
|
117
117
|
|
|
118
118
|
**Janela de inconsistência:** ~5-8s. Jobs que já estão dentro do LLM no momento da pausa enviam a resposta mesmo. Use o botão pra parar **novas** respostas, não pra cancelar uma que já saiu.
|
|
119
119
|
|
|
120
|
+
## Formato do `config` no `captain_assistants_update` (2026-07-11)
|
|
121
|
+
|
|
122
|
+
O `config` DEVE ser enviado como **objeto** (ex.: `config: { disabled_tools: [...] }`), NUNCA como string/texto. Se vier em formato errado, o backend retorna **422** (não salva ignorando em silêncio). O update do `config` é **merge parcial** — mandar só o subset que muda (ex.: só `disabled_tools`) preserva os demais campos.
|
|
123
|
+
|
|
120
124
|
## Limite do prompt e cache OpenAI (2026-05-22)
|
|
121
125
|
|
|
122
126
|
- `config.instructions` (system prompt do agente) aceita até **20.000 caracteres** (antes 10k). Acima de 15k, o frontend mostra aviso "lost in the middle" — prefira colocar instruções críticas no início ou final.
|
|
@@ -140,6 +144,37 @@ Dispara quando o CLIENTE fica inativo após resposta da IA. O motor de follow-up
|
|
|
140
144
|
**só-leitura** (não executa ferramentas, não coleta dado — só redige a mensagem de retomada,
|
|
141
145
|
com saída estruturada garantida). `paused=true` no assistente corta os follow-ups também.
|
|
142
146
|
|
|
147
|
+
## Condições para NÃO fazer follow-up + horário de silêncio (2026-07)
|
|
148
|
+
|
|
149
|
+
`config.follow_up_skip_conditions` — array de até 3 condições (lógica OU: qualquer uma verdadeira
|
|
150
|
+
pula o follow-up). Tipos:
|
|
151
|
+
|
|
152
|
+
```json
|
|
153
|
+
{ "config": { "follow_up_skip_conditions": [
|
|
154
|
+
{ "type": "label", "operator": "present", "labels": ["follow-pausar"] },
|
|
155
|
+
{ "type": "conversation_attr", "attribute": "status_negociacao", "operator": "equal", "value": "fechado" },
|
|
156
|
+
{ "type": "time_window", "start": 22, "end": 7 }
|
|
157
|
+
] } }
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
- `label`: pula se a conversa TEM (`present`) / NÃO tem (`absent`) alguma das etiquetas.
|
|
161
|
+
- `contact_attr` / `conversation_attr`: pula quando o atributo do contato/conversa bate o operador
|
|
162
|
+
(`equal`, `not_equal`, `contains`, `present`, `blank`, `gt`, `lt`) com `value`.
|
|
163
|
+
- **`time_window` (horário de silêncio)**: `start` e `end` são horas inteiras 0-23 (fuso America/Sao_Paulo).
|
|
164
|
+
No período a IA **NÃO envia follow-up**, mas **continua respondendo o cliente normalmente**. Janela
|
|
165
|
+
**circular**: `22→7` = silêncio das 22h até as 7h (22,23,0…6). O passo que cai no silêncio é PULADO
|
|
166
|
+
(não empurra pra frente — evita disparo em massa na abertura); a cadência segue nos passos seguintes.
|
|
167
|
+
`start == end` = janela inválida (ignorada). Ideal pra não incomodar cliente de madrugada.
|
|
168
|
+
|
|
169
|
+
## Desligar a IA quando um humano assume (2026-07)
|
|
170
|
+
|
|
171
|
+
`config.feature_pause_on_human_reply` (bool, padrão false). Ligado, a IA **se desliga sozinha** na
|
|
172
|
+
conversa (fica `captain_assistant_id=null` + `custom_attributes.captain_manually_disabled=true`)
|
|
173
|
+
assim que um HUMANO DE VERDADE assume — atendente responde o cliente pelo painel (ao vivo) OU a
|
|
174
|
+
mensagem sai do celular (coexistência WhatsApp). NÃO desliga: nota privada, mensagem da própria IA,
|
|
175
|
+
follow-up, automação, campanha, confirmação de agendamento, mensagem agendada. Gera uma pílula
|
|
176
|
+
"atendimento assumido pela equipe" na conversa. Pra religar: reatribuir o agente na conversa.
|
|
177
|
+
|
|
143
178
|
## Guardrails e diretrizes de resposta (2026-06)
|
|
144
179
|
|
|
145
180
|
Dois arrays no assistente (top-level, fora do config):
|
|
@@ -246,6 +246,14 @@ Captain::Assistant
|
|
|
246
246
|
│ model, temperature, instructions (max 20.000 chars), feature_memory, feature_faq,
|
|
247
247
|
│ feature_follow_up (bool), follow_up_steps (array de {after_minutes, prompt} — ATE 3 etapas,
|
|
248
248
|
│ cada uma >= 5 min, soma <= 1440 min/24h; legado follow_up_time+follow_up_prompt = 1 etapa),
|
|
249
|
+
│ follow_up_skip_conditions (array — condicoes pra NAO fazer follow-up, logica OU, ate 3; tipos:
|
|
250
|
+
│ label {operator present|absent, labels[]}; contact_attr/conversation_attr {attribute, operator
|
|
251
|
+
│ equal|not_equal|contains|present|blank|gt|lt, value}; time_window {start, end — horas inteiras
|
|
252
|
+
│ 0-23; NAO envia follow-up nesse periodo, janela circular ex 22->7; a IA SEGUE respondendo o
|
|
253
|
+
│ cliente normal — o silencio e so do follow-up}),
|
|
254
|
+
│ feature_pause_on_human_reply (bool — a IA se DESLIGA sozinha na conversa quando um HUMANO
|
|
255
|
+
│ assume: atendente responde pelo painel (ao vivo) OU mensagem enviada do celular. NAO conta:
|
|
256
|
+
│ nota privada, msg da propria IA, automacao, campanha, confirmacao de agendamento, msg agendada),
|
|
249
257
|
│ activation_label (etiqueta que ativa o agente — unica por conta),
|
|
250
258
|
│ min_response_time / max_response_time (delay humanizado, 1-60s),
|
|
251
259
|
│ disabled_tools (array de IDs de tools desativadas pro assistente),
|
|
@@ -213,6 +213,11 @@ os de `user_ids` viram membros comuns. A resposta traz `is_supervisor` (boolean)
|
|
|
213
213
|
- `config.feature_faq`: gera FAQs sugeridas ao resolver conversas
|
|
214
214
|
- `config.feature_follow_up` + `config.follow_up_steps`: follow-up automático em cadência de até
|
|
215
215
|
3 etapas (cada ≥5 min, soma ≤24h) quando o cliente some — motor dedicado só-leitura
|
|
216
|
+
- `config.follow_up_skip_conditions`: array (até 3, lógica OU) de condições pra NÃO fazer follow-up.
|
|
217
|
+
Tipos: `label`, `contact_attr`/`conversation_attr`, e `time_window` (horário de silêncio: `start`/`end`
|
|
218
|
+
horas 0-23, janela circular — no período não envia follow-up, mas a IA segue respondendo o cliente)
|
|
219
|
+
- `config.feature_pause_on_human_reply`: bool — a IA se desliga sozinha na conversa quando um humano
|
|
220
|
+
assume (atendente responde pelo painel OU mensagem do celular); nota privada/automação/campanha não contam
|
|
216
221
|
- `config.model`: modelo OpenAI usado (gpt-4o, gpt-4o-mini)
|
|
217
222
|
- `config.temperature`: 0.0-1.0
|
|
218
223
|
- `config.instructions`: prompt sistema (Liquid template, até 20.000 chars)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lionchat/mcp-server",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.19",
|
|
4
4
|
"description": "MCP server for LionChat API — 547 tools + 10 resources + 9 prompts. Audit-log aware, completion API, progress notifications.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|