Agentled MCP Server
Orquestração de fluxos de trabalho nativa em IA com memória de longo prazo. Mais de 100 integrações através de um sistema de crédito único. 32 ferramentas MCP para construir e executar fluxos de trabalho empresariais inteligentes — enriquecimento de leads, publicação de conteúdo, pesquisa de empresas, produção de mídia. Knowledge Graph que aprende entre execuções. Funciona com Claude, Codex, Cursor, Windsurf.
Documentação
@agentled/mcp-server
O mecanismo de automação construído para agentes de IA. Orquestração inteligente de fluxos de trabalho de IA com memória de longo prazo, mais de 100 integrações e créditos unificados.
O que é Agentled?
Agentled é o mecanismo de automação construído para agentes de IA. Ele dá ao Claude, Codex, Cursor, Windsurf e qualquer cliente compatível com MCP acesso direto à orquestração inteligente de fluxos de trabalho, memória de longo prazo e mais de 100 integrações.
Três coisas o tornam diferente:
🧠 Memória de Longo Prazo — Um Grafo de Conhecimento integrado armazena insights entre execuções de fluxos de trabalho. Seus agentes ficam mais inteligentes a cada execução — eles lembram pesquisas passadas, pontuações de leads, desempenho de conteúdo e contexto de negócios.
⚡ Créditos Unificados — Uma chave de API, um sistema de créditos, mais de 100 serviços. Sem necessidade de se inscrever separadamente em LinkedIn, e-mail, scraping, modelos de IA ou geração de vídeo. Conecte-se uma vez, use tudo.
🎯 Orquestração Inteligente — A IA raciocina em cada etapa. Fluxos de trabalho não são apenas "se isso, então aquilo" — eles entendem o contexto, tomam decisões e se adaptam aos resultados.
Veja em ação
$ agentled create "Outbound to fintech CTOs in Europe"
Loading workspace context from Knowledge Graph...
✦ ICP loaded ✦ 3 prior campaigns ✦ 847 contacts in KG
Creating campaign with 3 workflows...
━━ Workflow 1: Prospect Research linkedin · hunter · clearbit
✓ LinkedIn: CTO + fintech + EU → 189 profiles
✓ Enriched via Hunter + Clearbit → 156 matched
✓ ICP scoring → 43 high-intent leads
━━ Workflow 2: Signal Detection web-scraper · crunchbase
✓ Job postings → 12 hiring devops
✓ Crunchbase → 8 recently funded
✓ Cross-match: hiring + funded → 5 hot leads
━━ Workflow 3: Outreach email · linkedin · kg
✓ Personalized emails from context
✓ LinkedIn requests with custom notes
✓ 43 leads saved to Knowledge Graph
Campaign saved. Scheduled: every 48h
Credits used: 720
→ https://www.agentled.app/your-team/fintech-cto-outbound
Um prompt. Três fluxos de trabalho. Enriquecimento de LinkedIn, busca de e-mails, pontuação por IA, alcance multicanal — tudo orquestrado, tudo armazenado no Grafo de Conhecimento para a próxima execução.
Início Rápido
claude mcp add --transport stdio --scope user agentled \
-e AGENTLED_API_KEY=wsk_... \
-- npx -y @agentled/mcp-server
--scope user registra o servidor na sua configuração MCP de usuário para que ele carregue em todos os projetos (não apenas no repositório onde você executou o comando). Use um nome de servidor distinto (ex.: agentled_my_workspace) se você adicionar vários workspaces. Para configuração compartilhada em equipe no git, use --scope project e .mcp.json em vez disso (Escopos MCP do Claude Code).
Plugin do Claude Code (instalação em uma etapa)
Prefira o plugin se você quiser o servidor MCP e a skill Agentled instalados juntos. No Claude Code:
/plugin marketplace add Agentled/mcp-server
/plugin install agentled@agentled
Depois defina sua chave de API no shell a partir do qual o Claude Code é executado:
export AGENTLED_API_KEY=wsk_...
O plugin inclui a skill agentled (orientação para criação de fluxos de trabalho, agentled:agentled com namespace) e inicia automaticamente o servidor MCP via npx -y @agentled/mcp-server. O mesmo diretório do plugin também contém o manifesto do Codex (.codex-plugin/) e os hooks de ciclo de vida do Codex — um único pacote, ambos os hosts.
Plugin Grok Build
O mesmo plugin portátil inclui um manifesto Grok Build em
plugins/agentled/.grok-plugin/plugin.json. Ele inicia o servidor MCP stdio local publicado declarado em .mcp.json; ele não contém chave de API AgentLed, segredo de cliente OAuth, ID de workspace ou dados de clientes. Autentique-se com
seu próprio perfil CLI AgentLed antes de instalá-lo no Grok Build e comece
com a descoberta de ferramentas somente leitura. O material de submissão ao marketplace está em
plugins/agentled/GROK_MARKETPLACE_SUBMISSION.md.
Para Codex, o pacote de hooks atua como orientação dentro da sessão em torno do loop CLI/MCP:
o início da sessão explica a divisão do loop de negócios Agentled/Codex, hooks de prompt/ferramenta
adicionam orientação por turno quando necessidades do cliente, prioridades, falhas ou lacunas de produto
aparecem, e hooks de parada incentivam entregas de implementação a incluir prontidão,
validação, efeitos colaterais e próxima decisão. Os hooks não armazenam feedback, não chamam
APIs Agentled, não executam automações, não gastam créditos nem realizam gravações de
clientes/workspaces. No Codex, execute /hooks após instalar ou alterar o plugin para que as
definições de hooks locais sejam revisadas e confiáveis antes de serem executadas.
Use automações do Codex para cadência de FDE fora do workspace, como acompanhamento
de e-mails de Outlook/clientes, respostas de fornecedores, verificações de repositório/build e revisões semanais de operadores.
Use rotinas Agentled para verificações de workspace/tempo de execução do Agentled, como saúde
de fluxos de trabalho, saúde de rotinas, revisão de execuções, resumos de workspace e operações
de agentes gerenciados. Use submit_feedback_to_agentled ou agentled feedback submit quando
o usuário quiser explicitamente que o feedback do produto seja capturado.
Escolha um caminho de instalação, não ambos. Se você executou anteriormente
claude mcp add agentled ...ou--setup-skills, remova-os antes (ou em vez de) instalar o plugin — caso contrário, você terá dois processos idênticos de servidor MCP e a skill registrada duas vezes. Limpeza:claude mcp remove agentlede exclua.claude/skills/agentled/(ou~/.claude/skills/agentled/).--setup-skillsagora detecta um plugin instalado e se recusa a registrar duas vezes, a menos que você passe--force.
Para desenvolver o plugin localmente:
claude --plugin-dir ./plugins/agentled # load from source
claude plugin validate ./plugins/agentled # check manifest + structure
plugins/agentled/skills/é um espelho gerado deskills/(sincronizado porpublish.sh) — editeskills/agentled/SKILL.md, nunca o espelho.
Desenvolvimento local
Use o entrypoint local compilado quando quiser testar alterações não publicadas em um
aplicativo local. npx -y @agentled/mcp-server sempre usa o pacote npm publicado mais recente.
cd agentled-mcp-server
npm run build
claude mcp add --transport stdio agentled_local \
--env AGENTLED_API_KEY=wsk_... \
--env AGENTLED_URL=http://localhost:8080 \
-- node /absolute/path/to/agentsled-front/agentled-mcp-server/dist/index.js
Obtendo sua chave de API
- Cadastre-se em agentled.app
- Abra Configurações do Workspace > Desenvolvedor
- Gere uma nova chave de API (começa com
wsk_)
Por que Agentled MCP?
Uma Chave de API. Um Sistema de Créditos. Mais de 100 Serviços.
Sem necessidade de se inscrever separadamente em APIs do LinkedIn, serviços de e-mail, scrapers web, geradores de vídeo ou modelos de IA. A Agentled lida com todas as integrações por meio de um único sistema de créditos.
| Capacidade | Créditos | Sem Agentled |
|---|---|---|
| Enriquecimento de empresas no LinkedIn | 50 | API do LinkedIn (US$ 99/mês+) |
| Busca e verificação de e-mails | 5 | Hunter.io (US$ 49/mês) |
| Análise de IA (Claude/GPT/Gemini) | 10-30 | Várias chaves de API + cobrança |
| Web scraping | 3-10 | Conta Apify (US$ 49/mês+) |
| Geração de imagens | 30 | Assinatura DALL-E/Midjourney |
| Geração de vídeo (cena de 8s) | 300 | RunwayML (US$ 15/mês+) |
| Texto para fala | 60 | ElevenLabs (US$ 22/mês+) |
| Armazenamento no Grafo de Conhecimento | 1-2 | Infraestrutura personalizada |
| Sincronização de CRM (Affinity, HubSpot) | 5-10 | API de CRM + middleware |
Fluxos de Trabalho Que Aprendem
Outras ferramentas de automação começam do zero a cada execução. O Grafo de Conhecimento da Agentled lembra entre execuções — o que funcionou, o que não funcionou, o que os humanos corrigiram. Fluxos de pontuação podem usar resumos compactos de scoring_profile no nível da linha e recuperação limitada de memória de pontuação, para que cada execução se acumule sobre a anterior sem despejar histórico bruto nos prompts.
Run 1: Investor scoring → 62% accuracy (cold start)
Run 5: → 78% (learning from IC feedback)
Run 12: → 89% (compound learning from outcomes, zero manual tuning)
Orquestração Inteligente
Diferente de ferramentas de gatilho-ação, os fluxos de trabalho da Agentled têm raciocínio de IA em cada etapa. Suporte a múltiplos modelos (Claude, GPT-4, Gemini, Mistral, DeepSeek, Moonshot), execução adaptativa e portões de aprovação humano-no-loop quando necessário.
Equipes de Agentes
As Equipes de Agentes permitem executar vários especialistas de IA em uma única etapa do fluxo de trabalho. Escolha um preset e descreva o que você precisa — a equipe cuida da coordenação, delegação e síntese.
"Add an Agent Team step that researches the company and produces an investment memo"
Seis presets integrados cobrem os padrões mais comuns:
| Preset | O que faz |
|---|---|
research-and-summarize | Especialistas coletam informações, um sintetiza um resumo |
analyze-and-recommend | Vários analistas avaliam opções e produzem uma recomendação ranqueada |
generate-then-review | Um gerador cria conteúdo, revisores criticam e refinam |
compare-options | Especialistas defendem opções concorrentes, coordenador arbitra |
investigate-in-parallel | Especialistas independentes exploram diferentes ângulos simultaneamente |
review-and-improve | Revisores encontram problemas, um editor aplica melhorias |
Ao criar etapas de Equipe de Agentes via MCP, inclua metadados de preset para que a etapa abra corretamente no construtor:
{
"id": "analyze",
"type": "agentOrchestrator",
"name": "Agent Team",
"orchestratorConfig": {
"pattern": "supervisor",
"workers": [
{ "id": "researcher", "name": "Researcher", "systemPrompt": "Research {{input.company_url}} — team, funding, market position" },
{ "id": "analyst", "name": "Analyst", "systemPrompt": "Analyse the research. Identify risks and growth signals." }
]
},
"metadata": {
"agentTeamPreset": "research-and-summarize",
"agentTeamMode": "simple",
"agentTeamUxVersion": 1
},
"next": { "stepId": "milestone" }
}
Etapas existentes criadas com orchestratorConfig bruto e sem metadados continuam funcionando — elas abrem no modo avançado no construtor sem erros.
Semântica de Analytics vs ROI
Ao descrever resultados de fluxos de trabalho, mantenha estes termos separados:
pipeline.analyticsConfig= métricas de negócios (estatísticas de resultado de execução mostradas em cartões/gráficos de Métricas de Negócios).pipeline.metadata.roi= premissas/consolidações de ROI (estimativas de tempo economizado e valor de custo).
Se você atualizar um sem o outro, nomeie exatamente o que mudou (ex.: "métricas de negócios configuradas" vs "premissas de ROI configuradas").
Guarda de paridade CLI
O repositório inclui uma guarda de paridade automatizada para que adições de ferramentas MCP não se desviem silenciosamente da superfície CLI.
- Teste:
__tests__/cli/cli-mcp-parity.test.ts - Documentação:
docs/CLI_MCP_PARITY.md
Execute com:
yarn test:node -- cli-mcp-parity.test.ts
O Que Você Pode Construir?
Enriquecimento de Leads e Automação de Vendas
"Find fintech CTOs in Europe, enrich via LinkedIn + Hunter, score by ICP fit,
draft personalized outreach, save everything to the Knowledge Graph"
Produção de Conteúdo e Mídia
"Scrape trending topics in our niche, generate 5 LinkedIn posts with AI,
create thumbnail images, schedule publishing for the week"
Pesquisa e Inteligência de Empresas
"Research this company from its URL — team, funding, market position, competitors.
Generate an investment memo. Store in KG for future reference."
Correspondência de Investidores VC (estudo de caso real)
"Match this startup against our 2,000+ investor database. Score by sector focus,
stage preference, check size, and portfolio synergy. Compare with last round's outcomes."
Mais de 3.000 perfis processados. Relatórios prontos para IC. Aprendizado de previsão vs resultado — a precisão foi de 62% para 89% em 12 execuções sem ajuste manual.
Skills e Integrações Integradas
Produção de Mídia: Geração de vídeo, geração de imagens, texto para fala, legendas automáticas, montagem de mídia
Inteligência de IA: IA multimodelo (Claude, GPT-4, Gemini, Mistral, DeepSeek, Moonshot, xAI), Grafo de Conhecimento, loops de feedback, pontuação e análise
Dados e Integração: LinkedIn (busca, enriquecimento, postagem), e-mail (envio, personalização), web scraping, publicação social, sincronização de CRM, análise de documentos, OCR
Ferramentas Disponíveis
Guias operacionais por caso de uso
Quando o trabalho começa a partir de um ID de fluxo de trabalho existente, chame get_workflow primeiro e
inspecione useCaseContext. Em seguida, chame get_use_case com a chave retornada ou
ID do grafo do fluxo de trabalho e leia qualquer operatingGuides antes de responder
perguntas específicas do fluxo de trabalho, executar backfills ou editar configuração ativa. Avisos de
guia ausente significam que o README operacional ainda não está anexado e o contexto está
incompleto.
Quando o trabalho começa a partir do objetivo de negócios de um usuário em vez de um fluxo de trabalho existente,
use Como Construir Casos de Uso a Partir de Objetivos de Usuário.
Ele cobre o ciclo de vida do agente externo, desde o resultado de chat limitado até o estado de texto/lista do KG, WorkspaceUseCase, fluxos de trabalho, filas de aprovação e atualizações de resumo inicial.
Fluxos de Trabalho
| Ferramenta | Descrição |
|---|---|
list_workflows | Lista todos os fluxos de trabalho no workspace |
get_workflow | Obtém a definição completa do fluxo de trabalho por ID, incluindo useCaseContext quando vinculado |
get_workflow_credits | Obtém o uso de créditos do fluxo de trabalho derivado do ledger, rotulado por período; opte por drivers de custo com includeCostDrivers |
create_workflow | Cria um novo fluxo de trabalho a partir de JSON de pipeline |
update_workflow | Atualiza um fluxo de trabalho existente (escalares de nível superior; para contexto/metadados prefira update_workflow_context) |
update_workflow_context | Análogo de fluxo de trabalho de update_step — três verbos explícitos (updates / replace / unset) em caminhos context.* e metadata.*, retorna diff + warnings |
add_step | Adiciona uma etapa com posicionamento automático e religação do próximo ponteiro |
update_step | Mesclagem profunda de atualizações em uma única etapa por ID |
remove_step | Remove uma etapa com religação automática do próximo ponteiro |
delete_workflow | Exclui permanentemente um fluxo de trabalho |
validate_workflow | Valida a estrutura do pipeline, retorna erros por etapa |
publish_workflow | Altera o status do fluxo de trabalho (rascunho, ativo, pausado, arquivado) |
export_workflow | Exporta um fluxo de trabalho como JSON portátil |
import_workflow | Importa um fluxo de trabalho a partir de JSON exportado |
Links de Formulários Públicos
Links de formulários públicos são a superfície de entrada externa para fluxos de trabalho com
campos context.executionInputConfig. Use-os quando pessoas fora do
workspace precisarem enviar um formulário de fluxo de trabalho sem fazer login: formulários
de leads de entrada, envios de pitch decks, formulários de indicação, triagem de suporte, questionários
de avaliação ou qualquer fluxo de trabalho cuja primeira etapa seja um gatilho manual/entrada.
Não use um link de formulário público para fluxos de trabalho filhos internos. Fluxos de trabalho filhos
devem usar context.executionInputConfig.internal: true e ser chamados a partir de
outro fluxo de trabalho com agentled.call-workflow.
| Ferramenta | Descrição |
|---|---|
list_public_form_links | Lista links de formulários públicos existentes para um fluxo de trabalho |
create_public_form_link | Cria e ativa um link de formulário público |
update_public_form_link | Ativa/desativa um link ou atualiza limites, expiração, compartilhamento automático e texto de agradecimento. Para revogar acesso externo, defina enabled: false. |
A exclusão não é intencionalmente exposta via API externa ou MCP. Para revogar um link de formulário público, chame
update_public_form_linkcomenabled: false. A exclusão permanente exige um membro autenticado do workspace agindo pela interface — operações destrutivas na superfície de links de formulário não são concedidas à chave de API pública.
Fluxo típico do agente:
1. get_workflow({ workflowId })
2. Confirm context.executionInputConfig exists and is not internal.
3. list_public_form_links({ workflowId })
4. If none exists, create_public_form_link({ workflowId, enabled: true })
5. Return the publicUrl to the user.
A URL pública é /en/forms/{formLinkId}. Ao enviar, o Agentled valida o
link do formulário, inicia o workflow com o input enviado, registra um
PublicFormSubmission e incrementa submissionCount. Configurações opcionais:
enabled: desativar sem excluir o link.expiresAt: expiração em data/hora ISO.submissionLimit: número máximo de envios aceitos.autoShare: quando verdadeiro, a página pública de status do formulário pode exibir resultados gerados após a conclusão. Use isso apenas quando a saída do workflow for segura para o remetente ver.shareExpiresInDays: expiração para links de resultados compartilhados automaticamente.successMessage: mensagem personalizada de agradecimento após o envio.
Workflows somente internos
Marque um workflow como filho/sub-workflow que só é executado via agentled.call-workflow a partir de um orquestrador definindo context.executionInputConfig.internal: true. A interface então oculta o botão Executar e substitui o formulário de execução manual por um banner informativo. As entradas ainda são validadas e passadas pelos orquestradores via executionInputData exatamente como antes — isso é uma proteção de interface, não uma restrição de runtime.
Use isso para qualquer workflow cuja meta/descrição comece com "Sub-workflow interno", que termine em uma etapa return, ou que você pretenda invocar apenas a partir de outro workflow.
{
"context": {
"executionInputConfig": {
"title": "Save Sourced Candidates",
"internal": true,
"fields": [{ "name": "candidates", "label": "Candidates", "type": "text", "required": true }]
}
}
}
Alterne o sinalizador via update_workflow_context — busque primeiro, mescle localmente, substitua no nível pai (a armadilha de ordem de mesclagem de update_step também se aplica aqui — veja docs/MCP_STEP_EDITING.md):
// 1. get_workflow → read context.executionInputConfig
// 2. local: { ...executionInputConfig, internal: true }
// 3.
{
"updates": { "context": { "executionInputConfig": {...full merged value...} } },
"replace": ["context.executionInputConfig"]
}
Editando workflows existentes: modelo de mesclagem
update_step aceita três operações explícitas na mesma chamada. Pelo menos uma deve ser não vazia.
updates— patch parcial de etapa, mesclado em profundidade UM NÍVEL. Escalares de nível superior são substituídos; objetos aninhados (pipelineStepPrompt,stepInputData, etc.) têm suas chaves diretas mescladas com as chaves do valor armazenado. Chaves aninhadas em dois níveis de profundidade são sobrescritas como uma unidade, não mescladas.replace: string[]— caminhos com ponto cujos valores deupdatessão atribuídos por completo, ignorando a mesclagem profunda. Use isso para campos em formato de dicionário onde as chaves são dados do usuário (não configuração) — corrigir uma chave interna comupdatessozinho apaga silenciosamente as outras.unset: string[]— caminhos com ponto a excluir. Cada caminho deve existir atualmente na etapa (validado contra o original).
Leia antes de editar campos de dicionário. Antes de alterar stepInputData.fieldUpdates, pipelineStepPrompt.responseStructure, knowledgeSync.fieldMapping ou qualquer campo onde as chaves são dados do usuário: chame get_step({ workflowId, stepId }) (~1KB), modifique localmente, envie o novo objeto completo de volta via replace[]. Isso evita a armadilha de "corrigiu uma chave, apagou silenciosamente as outras".
Diff na resposta. Cada chamada update_step retorna diff: { addedPaths, changedPaths, removedPaths } e warnings[]. Se a mesclagem remover silenciosamente ≥6 campos sem um unset explícito, um aviso é disparado.
O que usar onde:
| Caminho / campo | API | Como editar | Notas |
|---|---|---|---|
name, goal, description, pipelineStepPrompt.template, creditCost | update_step | updates | Escalar simples; seguro enviar sozinho. |
next, loopConfig, entryConditions (bloco completo) | update_step | updates | Configuração aninhada direta; enviar o novo valor por completo é aceitável. |
tools, integrations | update_step | updates | Arrays são substituídos por completo por design. Para anexar, busque com get_step, faça o splice localmente, envie o novo array completo. |
stepInputData.fieldUpdates | update_step | get_step → updates (dict completo) + replace: ["stepInputData.fieldUpdates"] | Chaves são dados do usuário; a mesclagem padrão de um nível substitui este dict e pode descartar mapeamentos irmãos. |
pipelineStepPrompt.responseStructure | update_step | get_step → updates + replace: ["pipelineStepPrompt.responseStructure"] | Dicionário de formato de saída; trate como dados do usuário. |
knowledgeSync.fieldMapping | update_step | get_step → updates + replace: ["knowledgeSync.fieldMapping"] | Dict de origem→destino; mesma armadilha de fieldUpdates. |
renderer.config (quando preservar chaves irmãs importa) | update_step | updates (renderer.config completo) + replace: ["renderer.config"] | ⚠ replace: ["renderer.config.layout"] NÃO protege os irmãos de renderer.config — a mesclagem profunda de um nível roda primeiro em updates.renderer. Substitua no nível pai. |
entryConditions.criteria (quando preservar o restante de entryConditions) | update_step | updates: { entryConditions: {...full block...} } | Envie o bloco entryConditions completo; a mesclagem de um nível já faz o certo para filhos diretos. |
| Removendo uma entrada de etapa ou campo obsoleto | update_step | unset: ["stepInputData.oldKey"] | Maneira mais limpa de remover. O caminho deve existir no original. |
context.inputPages, context.outputPages, context.executionInputConfig | update_workflow_context | Três verbos explícitos (updates / replace / unset) em caminhos relativos ao workflow. Compatibilidade: { contextKey, value } ainda é aceito para substituição por completo por chave. | Nível de workflow, não de etapa. update_step não alcança context.* e vice-versa. |
metadata | update_workflow_context | Mesmos três verbos em caminhos metadata.* | Nível de workflow. Metadados ignoram o snapshot de rascunho — mesmo em workflows ativos, escreve direto na linha Pipeline, imediatamente. |
Resumos executivos para grupos de workflows. Quando um usuário pedir para salvar um resumo para um workflow, grupo de workflows, cluster ou card inicial, escreva em metadata.executiveSummary com update_workflow_context. Não armazene como texto de Knowledge, a menos que o usuário peça explicitamente uma nota reutilizável. Para um grupo, escreva exatamente uma vez no pipeline proprietário: prefira metadata.workflowGraph.role === "orchestrator", caso contrário use o pipeline com o menor metadata.workflowGraph.order. Mantenha o corpo em 1-2 frases curtas, inclua contagens/taxas concretas e o período de relatório quando disponível, e defina author para o agente ativo do workspace, não para a ferramenta externa/agente de codificação.
{
"workflowId": "2e1cdd60-2fcf-441a-856f-583ae76b38a5",
"updates": {
"metadata": {
"executiveSummary": {
"body": "Startup Outreach sent 46 founder emails for the reporting period, with 28 opens and 9 clicks: a 60.9% open rate, 19.6% click rate, and 32.1% click-to-open rate.",
"bullets": ["Clicks: 6 UTM Pitch Night, 2 plain Pitch Night, 1 calendar."],
"generatedAt": "2026-06-03T00:00:00.000Z",
"author": "AngelHive Assistant"
}
}
}
}
Mudanças de tipo. step.type é tecnicamente mutável, mas campos específicos de tipo obsoletos (pipelineStepPrompt, app, tools, orchestratorConfig) persistem a menos que você os unset. Para conversões limpas, prefira remove_step + add_step.
Workflows ativos. Edições são roteadas para um snapshot de rascunho. A resposta inclui editingDraft: true. Inspecione via get_draft, publique via promote_draft, descarte via discard_draft. Para edições de alto risco, faça create_snapshot primeiro como um checkpoint manual.
Rascunho desatualizado. Quando um rascunho existe, cada resposta de update_step e get_step inclui um resumo draft com exists, draftCreatedAt, liveUpdatedAt, stale, modifiedStepIds e modifiedFields. Se draft.stale === true, o workflow ativo avançou após a criação do rascunho — promover aplicará os valores mais antigos do rascunho para campos que você não tocou. update_step também emite um aviso de desatualização. Recuperação: discard_draft e reaplique.
⚠ discard_draft apenas reverte mudanças pendentes de contexto (e etapas) — NÃO metadados. Escritas de metadados via update_workflow_context ignoram o rascunho e se aplicam imediatamente à linha Pipeline ativa. Se você precisar de um único ponto de rollback que cubra também metadados, faça create_snapshot antes da edição. Veja docs/MCP_STEP_EDITING.md para o contrato completo de atomicidade.
Nunca envie um array steps[] completo via update_workflow. Use update_step, add_step, remove_step em vez disso.
Para a referência aprofundada (códigos StepMergeError, regras de validação de caminho com ponto, semântica completa de diff) veja docs/MCP_STEP_EDITING.md.
Rascunhos e Snapshots
| Ferramenta | Descrição |
|---|---|
get_draft | Obter a versão de rascunho atual de um workflow |
promote_draft | Promover um rascunho para a versão ativa |
discard_draft | Descartar o rascunho atual |
create_snapshot | Criar um snapshot manual de configuração |
delete_snapshot | Excluir um snapshot específico de configuração |
list_snapshots | Listar snapshots de versão para um workflow |
get_snapshot_content | Ler a configuração completa de um snapshot (etapas, contexto, etc.) sem restaurá-lo |
restore_snapshot | Restaurar um workflow para um snapshot anterior |
Execuções
| Ferramenta | Descrição |
|---|---|
start_workflow | Iniciar uma execução de workflow com entrada. Retorna executionInputId sempre e executionId apenas quando a linha de execução assíncrona já está disponível. Passe useMocks: false para forçar uma execução real (que consome créditos) que ignora dados mock por etapa; o padrão é honrar os mocks configurados do workflow. |
list_executions | Listar execuções para um workflow (paginado via nextToken), incluindo pipelineExecutionInputId para corresponder a um resultado de início que retornou apenas executionInputId. |
get_execution | Obter detalhes da execução com resultados de etapas. Requer o executionId real, não executionInputId; se necessário, chame list_executions e corresponda pipelineExecutionInputId. |
list_timelines | Listar registros de execução de etapas (linhas do tempo) para uma execução (paginado via nextToken) |
get_timeline | Obter uma única linha do tempo por ID com saída completa da etapa |
stop_execution | Parar uma execução em andamento |
retry_execution | Tentar novamente uma etapa com falha — detecta automaticamente a falha mais recente se nenhum ID de linha do tempo for fornecido |
rerun | Reexecutar ou tentar novamente qualquer etapa por timelineId — funciona para etapas com falha E com sucesso, desambigua iterações de loop |
Deep links de execução usam /<locale>/<workspace>/<workflowPathname>/runs?runId=<executionId>&step=<stepId>.
O parâmetro de consulta step é opcional apenas para transferências no nível de execução. Quando uma resposta
aponta para um card de aprovação específico, saída, falha ou etapa atual, inclua
&step=<stepId> e não peça ao humano para abrir a etapa manualmente após uma
URL apenas de execução. Quando presente, o aplicativo expande essa etapa do workflow e rola
até ela. stepId é o id da etapa do workflow, não o id da linha do tempo. Dentro da superfície
de chat/navegação do aplicativo, navigateToExecutionPage aceita o mesmo
stepId.
Deep links de linhas de Knowledge usam /<locale>/<workspace>/knowledge-and-data/<listKey>?rowId=<rowId>.
O aplicativo abre a página de lista Knowledge & Data e abre a folha de edição da linha para
essa linha. A rota compatível com versões anteriores
/<locale>/<workspace>/knowledge-and-data/<listKey>/row/<rowId> redireciona para a
URL canônica com parâmetro de consulta.
Deep links de texto de Knowledge usam /<locale>/<workspace>/knowledge-and-data/<key>.
A rota compatível com versões anteriores
/<locale>/<workspace>/knowledge-and-data/text/<key> redireciona para a
URL canônica do item.
Apps e Testes
| Ferramenta | Descrição |
|---|---|
list_apps | Listar apps e integrações disponíveis |
get_app_actions | Obter esquemas de ação para um app |
test_app_action | Testar uma ação de app sem criar um workflow |
test_ai_action | Testar um prompt de IA sem criar um workflow |
test_code_action | Testar código JavaScript na mesma VM em sandbox da produção |
get_step_schema | Obter campos permitidos de PipelineStep agrupados por categoria |
Tipos de etapa de IA: aiAction vs aiActionWithTools
Escolha o tipo certo — validate_workflow rejeitará o errado:
| Você precisa… | Use |
|---|---|
| Raciocinar sobre entradas já presentes nas variáveis de prompt | aiAction (chamada única de LLM, sem loop de ferramentas) |
| Busca web ao vivo, recall/escrita de memória do workspace, consulta ao grafo de conhecimento | aiActionWithTools com o builtinType correspondente |
| A IA decidir em runtime quais entradas passar para uma ação de app | aiActionWithTools com uma ferramenta appActionConfig |
aiActionWithTools requer pelo menos uma ferramenta — colocada em step.tools ou step.agent.tools (ambas são mescladas em tempo de execução). Se você omitir ferramentas em ambos os locais, validate_workflow retorna um bloqueador AI_STEP_TOOLS_REQUIRED. Se o prompt disser "pesquisar na web" / "recuperar memória" / "grafo de conhecimento" sem a ferramenta correspondente anexada, você recebe um aviso AI_STEP_TOOL_PROMPT_MISMATCH: prompts de pesquisa na web precisam de web_search; prompts de memória precisam de workspace_memory; prompts de consulta ao KG precisam de kg_search ou kg_traverse. fetch_website_content busca uma URL conhecida e kg_write grava dados no KG, então nenhum deles atende a esses prompts de consulta/pesquisa. |
Valores válidos de builtinType: web_search, file_search, code_interpreter, fetch_website_content, kg_search, kg_traverse, kg_nodes, kg_write, workspace_memory.
Cache de prompt para etapas repetidas de IA
O Agentled habilita o cache de prompt do provedor quando suportado. O cache reutiliza o processamento de prompt para um prefixo idêntico; ele não armazena em cache nem reproduz a resposta da IA. Para se beneficiar em fluxos de trabalho em massa, especialmente loops de pontuação/combinação, escreva os prompts com o material estável primeiro:
[stable role and task]
[stable rubric / scoring dimensions]
[stable output JSON schema]
[stable examples or decision rules]
Runtime inputs:
{{currentItem}}
{{steps.previous.output}}
{{input.field}}
Não comece prompts de alto volume com INPUTS, {{currentItem}}, {{steps.*}}, {{input.*}}, {{execution.id}}, {{now}} ou {{today}}. Mantenha cargas úteis variáveis, datas, IDs de execução e registros por item no final, para que OpenAI/Anthropic possam armazenar em cache o prefixo compartilhado.
// aiActionWithTools example
{
"id": "research",
"type": "aiActionWithTools",
"name": "Research Company",
"tools": [
{ "type": "builtin", "builtinType": "web_search", "name": "Web Search" }
],
"pipelineStepPrompt": {
"template": "Search the web for the founder of {{input.company}} and return their name.",
"responseStructure": { "firstName": "string", "lastName": "string" }
},
"creditCost": 10,
"next": { "stepId": "find-email" }
}
Conhecimento e Dados
| Ferramenta | Descrição |
|---|---|
get_workspace | Obter informações do workspace, configurações da empresa, membros ativos da equipe, convites pendentes e esquemas de listas de conhecimento |
get_workspace_company_profile | Obter o perfil editável da empresa do workspace e o texto de conhecimento da empresa |
update_workspace_company_profile | Atualizar campos de nível superior do perfil da empresa, como nome, URLs, logotipo, setor, tamanho e informações adicionais |
update_workspace_executive_summary | Escrever o resumo executivo de todo o workspace no cartão do Assistente do Workspace |
list_pinned_outputs | Listar páginas de saída fixadas na página inicial/barra lateral do workspace |
set_output_page_pin | Fixar ou desafixar uma página de saída de fluxo de trabalho na página inicial/barra lateral do workspace |
list_workspace_views | Listar manifestos de visualização salvos do workspace e orientações de fonte/ação |
create_workspace_view | Criar um manifesto de superfície operacional salvo sobre KG, fluxos de trabalho, aprovações, agentes, rotinas, ações, páginas de saída, APIs externas ou fontes personalizadas |
get_workspace_view | Obter uma visualização salva do workspace por id ou chave |
update_workspace_view | Atualizar um manifesto de visualização salvo do workspace sem modificar dados de origem ou executar ações |
archive_workspace_view | Arquivar uma visualização do workspace sem excluir dados vinculados |
list_knowledge_lists | Listar listas de conhecimento no workspace |
get_knowledge_rows | Obter linhas de uma lista de conhecimento (paginado via nextToken, máximo 200) |
get_knowledge_rows_by_ids | Buscar linhas específicas por ID (máximo 200) — usar após query_kg_edges |
get_knowledge_text | Obter conteúdo de texto de uma entrada de conhecimento |
create_knowledge_list | Criar uma nova lista de conhecimento com um esquema tipado (idempotente em colisão de chave) |
update_knowledge_list_schema | Adicionar ou remover campos em um esquema de lista existente |
delete_knowledge_list | Excluir permanentemente uma lista e todas as suas linhas |
upsert_knowledge_rows | Inserir ou atualizar linhas em uma lista (máximo 500/chamada, relatório de erros por linha) |
delete_knowledge_rows | Excluir linhas por ID |
upsert_knowledge_text | Criar ou atualizar uma entrada de texto de conhecimento |
delete_knowledge_text | Excluir uma entrada de texto de conhecimento por chave |
query_kg_edges | Consultar arestas do grafo de conhecimento |
get_scoring_history | Obter histórico de pontuação para uma entidade |
Créditos e Fatores de Custo
As ferramentas de relatório de crédito são opcionais para detalhes de fatores de custo, para que as verificações de saldo existentes permaneçam compactas.
Todo total de crédito é derivado do razão e retornado com um objeto period contendo label, display, start e end; sempre mostre esse rótulo de período ao lado dos totais.
Para uma verificação de UI humana/operador, abra a página de uso de crédito do workspace:
https://www.agentled.app/en/{workspace}/account/billing/credits-usage
Exemplo: https://www.agentled.app/en/inovexus/account/billing/credits-usage.
| Ferramenta | Descrição |
|---|---|
get_workspace_credits | Saldo do workspace, uso, execuções e linhas recentes do razão. Argumentos opcionais: period, includeCostDrivers, includeRecentUsage, limit. |
get_workspace_credit_cost_drivers | Relatório de conveniência com includeCostDrivers=true por padrão. Retorna fluxos de trabalho, etapas, modelos e aplicativos principais limitados. |
get_workflow_credits | Uso em nível de fluxo de trabalho e fatores de custo opcionais, limitados aos fluxos de trabalho no workspace da chave de API autenticada. |
Períodos suportados:
rolling-30-days: janela móvel de 30 dias terminando no momento da solicitação.rolling-7-days: janela móvel de 7 dias terminando no momento da solicitação.current-month/month-to-date: mês do calendário UTC até a data atual, não o período de renovação de cobrança.previous-month: mês do calendário UTC anterior.all-time: razão completo antes do momento da solicitação; use intencionalmente, pois pode escanear mais linhas.
Exemplos:
// Compact balance/burn-rate check
{ "tool": "get_workspace_credits", "arguments": { "period": "rolling-30-days" } }
// Workspace cost drivers for a calendar month-to-date window
{ "tool": "get_workspace_credit_cost_drivers", "arguments": { "period": "current-month", "limit": 5 } }
// Workflow cost drivers
{ "tool": "get_workflow_credits", "arguments": { "workflowId": "wf_abc123", "period": "rolling-30-days", "includeCostDrivers": true } }
Equivalentes de API externa:
GET /api/external/workspace/credits?period=rolling-30-days&include=costDrivers&limit=5
GET /api/external/workflows/{workflowId}/credits?period=current-month&include=costDrivers
O relatório de período de cobrança é separado do relatório de mês do calendário e não deve ser implícito, a menos que uma API futura adicione um rótulo explícito de período de cobrança.
Marca (Whitelabel)
| Ferramenta | Descrição |
|---|---|
get_branding | Obter a configuração de marca whitelabel do workspace (displayName, logo, cores, favicon, badge) |
update_branding | Atualizar a marca — definir displayName, logoUrl, tagline, primaryColor, primaryColorDark, faviconUrl, hideBadge |
Agentes
Agentes de workspace de primeira classe com identidade, instruções, ferramentas, arquivos de configuração e fluxos de trabalho atribuídos. Todos os agentes são conversacionais (somente chat). Para trabalho agendado/autônomo, anexe rotinas via create_routine. SOUL.md e TOOLS.md vivem em configFiles; o contexto de reflexão (JOURNAL.md, OBJECTIVES.md, PEOPLE.md) vive como AgentFiles vinculados e é pré-populado automaticamente para agentes de reflexão ativos somente chat. Os agentes decidem qual sinal durável pertence a esses arquivos; o AgentLed apenas fornece armazenamento com escopo e Reflexão agendada. Um agente criado inteiramente via MCP é renderizado de forma idêntica a um criado no Assistente de Agentes.
| Ferramenta | Descrição |
|---|---|
list_agents | Listar agentes no workspace (filtrar por status: ativo, pausado, rascunho) |
get_agent | Obter configuração completa do agente — instruções, arquivos, fluxos de trabalho, rotinas anexadas |
create_agent | Criar um agente. Aceita predefinições agentType (assistente-pessoal, pesquisador-competitivo, profissional-de-marketing-de-mídia-social, suporte-ao-cliente, criador-de-conteúdo, qualificador-de-leads, captador-de-negócios, personalizado), enabledApps, appPermissions, assignedWorkflowIds, linkedFileIds, configFiles (SOUL.md/TOOLS.md), avatar_icon_name, avatar_color, chatModel, activate: true |
update_agent | Atualização parcial — mesmos campos que create_agent; updates.slug renomeia o slug de e-mail do agente, move o id AgentEntity para {slug}@{workspace} e religa rotinas/links de arquivo/sessões de canal/sessões de chat quando disponível |
activate_agent | Ativar um agente (rascunho/pausado → ativo). As rotinas anexadas começam a ser executadas conforme o agendamento |
pause_agent | Pausar um agente ativo. As rotinas anexadas param até serem retomadas |
manage_agent_workflows | Adicionar/remover/definir os fluxos de trabalho atribuídos a um agente sem reescrever a configuração completa |
delete_agent | Excluir permanentemente um agente e todos os seus arquivos |
chat_with_agent | Enviar uma mensagem para um agente específico. Multi-turno via session_id |
Convenção de slug: slug é o ID curto de função usado em URLs e endereços de e-mail. Mantenha Agent no nome de exibição quando útil, mas não acrescente -agent ao slug apenas porque o nome de exibição o inclui; por exemplo, Deal Sourcing Agent deve usar deal-sourcing@{workspace}.agentled.ai, não deal-sourcing-agent@{workspace}.agentled.ai.
Arquivos do Agente
| Ferramenta | Descrição |
|---|---|
list_agent_files | Listar arquivos anexados a um agente (conhecimento, contexto, documentos de referência) |
get_agent_file | Obter o conteúdo de um arquivo específico do agente |
upload_agent_file | Enviar um arquivo (máximo 400KB texto/markdown) para um agente |
update_agent_file | Atualizar um arquivo já anexado a um agente; usar após get_agent_file para edições de JOURNAL.md, OBJECTIVES.md e PEOPLE.md |
delete_agent_file | Excluir um arquivo de um agente |
Os arquivos de reflexão seguem o mesmo padrão durável de markdown usado pelas superfícies de memória do OpenClaw e Hermes: mantenha JOURNAL.md como um registro datado conciso, OBJECTIVES.md como metas ativas/concluídas e PEOPLE.md como contexto de relacionamento estável. Leia primeiro, atualize somente quando houver sinal durável e envie o conteúdo completo de substituição. Consulte docs/AGENT_REFLECTION_FILES.md para o contrato de edição de UI, MCP e CLI.
Rotinas
Rotinas são prompts agendados anexados a um agente — o agente avalia o prompt em um intervalo definido e pode acionar fluxos de trabalho ou enviar notificações.
Exemplo — adicionar uma rotina diária de captador de negócios a um agente existente:
# Step 1: create the agent
create_agent({
name: "Daily Deal Sourcer",
agentType: "deal-sourcer",
enabledApps: ["agentled", "kg", "web-scraping"],
appPermissions: {
kg: { access: "write", writeApprovalRequired: true },
"web-scraping": { access: "read" }
},
assignedWorkflowIds: ["<opportunity-scoring-workflow-id>"],
activate: true
})
# Step 2: attach a routine
create_routine({
agent_id: "<agent-id>",
name: "Daily Sourcing Run",
prompt: "Find 5 new SaaS startups that match our deal criteria and trigger the scoring workflow for each.",
interval: "daily"
})
O acesso de leitura é implícito e nunca requer aprovação. O aplicativo interno agentled é selecionado como um aplicativo quando necessário, mas não é configurável em appPermissions.
| Ferramenta | Descrição |
|---|---|
list_routines | Listar todas as rotinas de um agente |
create_routine | Criar uma rotina (nome, prompt, intervalo) |
update_routine | Atualizar campos da rotina; recalcula nextRunAt se o intervalo mudar |
pause_routine | Pausar uma rotina |
resume_routine | Retomar uma rotina pausada |
trigger_routine | Executar uma rotina imediatamente sem alterar seu agendamento |
delete_routine | Excluir permanentemente uma rotina |
Valores de intervalo: weekday-morning, weekday-evening, weekly-monday, weekly-tuesday-evening, weekly-friday-evening, daily, monthly, 6h, 48h.
Runtime de Baixo Nível Obsoleto
As ferramentas MCP diretas de monitoramento de runtime de baixo nível estão obsoletas e não são mais
registradas. Use create_agent / update_agent além de rotinas para trabalho autônomo.
Canais (E-mail, Slack, WhatsApp, Signal)
Os canais roteiam mensagens recebidas para o runtime de chat do agente. Cada canal tem um defaultAgentId que decide qual agente lida com a conversa. As respostas são enviadas de volta pelo canal de origem.
| Ferramenta | Descrição |
|---|---|
list_channels | Listar canais configurados com seus defaultAgentId, estado habilitado e configuração não secreta (segredos ocultos) |
set_channel_default_agent | Atribuir o agente que lida com as conversas recebidas de um canal |
configure_channel | Atualizar configuração não secreta do canal — enabled, defaultAgentId, allowedSenders (e-mail), defaultChannelId (slack) |
set_channel_defaults | Atualizar padrões de todo o workspace: maxSessionsPerDay, sessionTimeoutMinutes, toolMode |
Credenciais secretas (tokens de bot do Slack, segredos de assinatura, tokens de acesso do WhatsApp, segredos de webhook do Signal) NUNCA são legíveis ou graváveis via API externa. Conecte-os via Configurações → Canais na UI — os fluxos OAuth os armazenam criptografados em repouso.
Agente Conversacional
| Ferramenta | Descrição |
|---|---|
chat | Enviar uma mensagem para o agente de IA do AgentLed. Construa fluxos de trabalho por meio de linguagem natural — sem necessidade de JSON. Suporta conversas multi-turno via session_id. |
Ferramenta de Chat — Uso e Exemplos
A ferramenta chat é um agente de IA conversacional que pode raciocinar, planejar e construir fluxos de trabalho por meio de diálogo. Pense nela como a diferença entre gh api (bruto) e gh copilot (inteligente).
Parâmetros:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
message | string | Sim | A mensagem a ser enviada ao agente de IA |
session_id | string | Não | ID da sessão de uma resposta anterior, para conversas multi-turno |
Formato da resposta:
{
"response": "The agent's reply — may include workflow suggestions, explanations, or confirmation of actions taken",
"sessionId": "mcp-chat-ws123-1711929600000"
}
Conversa de múltiplas etapas:
# Turn 1: Describe what you want
chat("Build me a workflow that enriches LinkedIn companies and scores them by ICP fit")
# → Agent responds with a plan and creates a draft workflow
# → Response includes sessionId: "mcp-chat-ws123-1711..."
# Turn 2: Iterate on the design
chat("Add an email finding step using the company domain", session_id: "mcp-chat-ws123-1711...")
# → Agent modifies the workflow, maintaining conversation context
# Turn 3: Finalize
chat("Looks good, publish it as live", session_id: "mcp-chat-ws123-1711...")
# → Agent publishes the workflow
Quando usar chat versus ferramentas estruturadas:
Use chat quando... | Use ferramentas estruturadas quando... |
|---|---|
| Você tem um objetivo de alto nível | Você sabe o JSON exato do pipeline |
| Você quer recomendações de IA | Você precisa de controle preciso |
| Você está explorando habilidades ou integrações disponíveis | Você está automatizando um padrão conhecido |
| Você quer iterar por meio de diálogo | Você está fazendo operações em massa |
Notas:
- Timeout de 5 minutos — divida solicitações complexas em etapas menores, se necessário
- As respostas não são transmitidas em streaming (coletadas e depois retornadas) para compatibilidade com clientes MCP
- O agente tem acesso total às ferramentas de planejamento, ao construtor de fluxos de trabalho e ao contexto do workspace
- Respostas de erro incluem mensagens acionáveis (ex.: timeout → "tente dividir em etapas menores")
Roteador de Intenção
| Ferramenta | Descrição |
|---|---|
do | Roteador de intenção em linguagem natural — descreva o que você quer e ele seleciona e executa automaticamente a ferramenta certa |
Ajuda e Feedback — Fale com a Equipe Agentled
Para agentes de IA — escolha o canal certo:
| O que você encontrou | Para onde vai |
|---|---|
| Fluxo de trabalho não se comportando como esperado, dúvida sobre app/integração, dúvida sobre plataforma/cobrança, recurso ausente, qualquer coisa sobre como o Agentled funciona | Chame submit_feedback_to_agentled (abaixo). Roteia direto para a equipe. |
Bug na própria CLI (comando agentled falha, grava dados errados em .agentled/, flag não funciona) — um defeito de código reproduzível na CLI | Abra uma issue no GitHub em https://github.com/agentled/mcp-server/issues. Inclua a versão da CLI + etapas de reprodução. |
| Qualquer outra coisa, ou você não tem certeza | submit_feedback_to_agentled — a equipe redirecionará se necessário. |
Não pesquise metadados do npm, faça scraping no GitHub ou execute
ghpara "encontrar" um rastreador de bugs — as rotas acima são as únicas. O campobugsno pacote aponta para a página de contato humano (https://www.agentled.ai/en/contact-us) de propósito.
Para humanos: envie um e-mail para contact@agentled.ai ou visite https://www.agentled.ai/en/contact-us.
| Ferramenta | Descrição |
|---|---|
submit_feedback_to_agentled | Faça uma pergunta, registre um bug, solicite um recurso ou eleve um problema. Tipos: ask, bug, feature_request, escalation. Forneça userEmail se quiser uma resposta. |
Vindo do n8n?
Importe fluxos de trabalho n8n existentes e torne-os nativos de IA:
| Ferramenta | Descrição |
|---|---|
preview_n8n_import | Visualize uma importação de fluxo de trabalho n8n (execução de teste) |
import_n8n_workflow | Importe um fluxo de trabalho n8n para o Agentled |
Consultando Dados com Escopo de Entidade
Quando você precisar de todos os registros relacionados a uma entidade específica, use a cadeia de duas ferramentas em vez de paginar get_knowledge_rows:
Exemplo 1 — todos os negócios avaliados por um investidor:
1. query_kg_edges({ entityName: "Investor Name", relationshipType: "SCORED" })
→ returns edges with targetNodeIds
2. get_knowledge_rows_by_ids({ rowIds: <targetNodeIds from step 1> })
→ returns full row data for each matched deal
Exemplo 2 — todos os leads originados de uma campanha:
1. query_kg_edges({ entityName: "Campaign Name", relationshipType: "SOURCED" })
→ returns edges with targetNodeIds
2. get_knowledge_rows_by_ids({ rowIds: <targetNodeIds from step 1> })
→ returns full contact/lead rows
Por que isso importa: get_knowledge_rows é limitado a 200 linhas por chamada. Com 3 mil linhas, isso significa 15 idas e voltas; com 10 mil, significa 50. O caminho de aresta KG é O(arestas para aquela entidade) — independente do tamanho total da lista — então permanece rápido independentemente de quão grande a lista cresça.
Convenção de ID de nó: valores de source_node_id e target_node_id de query_kg_edges são IDs de linhas de conhecimento. Linhas fora do workspace autenticado são silenciosamente excluídas.
Para Agências: Pronto para White-Label
Crie fluxos de trabalho uma vez, implante em vários clientes com sua própria marca. Configure a marca diretamente do servidor MCP:
"Set my workspace branding: displayName 'Acme AI', primaryColor '#6366f1', tagline 'Powered by Acme'"
Use get_branding e update_branding para gerenciar displayName, logotipo, cores, favicon, tagline e visibilidade do selo. A aparência do portal do cliente é atualizada instantaneamente.
Memória Persistente — Exemplos
Memórias permitem que fluxos de trabalho aprendam entre execuções. Armazene o que funcionou, recupere na próxima vez.
Armazenar um fato após o enriquecimento
"Store a memory: key 'icp_criteria', value { industry: 'fintech', minEmployees: 50, region: 'EU' },
category 'preference', scope 'workspace'"
Recuperar antes da pontuação
"Recall memory 'icp_criteria' at workspace scope — use it to score this batch of leads"
Buscar resultados anteriores
"Search memories for 'conversion rate' in the 'outcome' category"
Rastrear uma métrica contínua
"Store memory: key 'total_leads_processed', value 43, merge 'increment', scope 'workspace'"
Cada chamada subsequente com merge: 'increment' adiciona ao valor existente — sem necessidade de leitura-modificação-escrita.
PCPL de Divulgação
Para fluxos de trabalho de e-mail ou saída, rastreie PCPL como uma métrica de negócios:
PCPL = prospects contacted / positive replies
Use analyticsConfig para prospects contatados, respostas positivas e PCPL. PCPL literal deve usar uma métrica ratio com ratioMode: "raw"; a taxa de resposta positiva deve usar a proporção percentual padrão.
Rotinas — Exemplos
Rotinas são prompts agendados anexados a agentes. Use-os para trabalho autônomo, como verificações diárias, resumos semanais e acompanhamento de fluxos de trabalho.
Criar um agente com uma rotina diária de sourcing
"Create a deal sourcing agent, then add a daily routine that checks the
incoming-leads knowledge list and starts the lead-enrichment workflow for
qualified new rows. Limit the routine to 10 workflow starts per day."
Sequência de ferramentas:
create_agent({
name: "Daily Deal Sourcer",
agentType: "deal-sourcer",
enabledApps: ["agentled", "kg"],
assignedWorkflowIds: ["wf_abc123"],
activate: true
})
create_routine({
agent_id: "<agent-id-or-slug>",
name: "Daily New Lead Review",
prompt: "Review incoming-leads, identify qualified new rows, and start the lead-enrichment workflow for each. Do not start more than 10 workflow runs in one day.",
interval: "daily",
max_steps_per_run: 20,
max_credits_per_day: 50
})
Criar uma rotina semanal de saúde do fluxo de trabalho
"Add a weekly routine to the operations agent that reviews workflow execution
history, flags abnormal failures, and notifies me only when action is needed."
create_routine({
agent_id: "operations",
name: "Weekly Workflow Health Review",
prompt: "Review recent workflow execution history. If failures or stalls require action, summarize the affected workflows, likely impact, and recommended next step. Otherwise record that no action is needed.",
interval: "weekly-monday"
})
Pausar e retomar
"Pause routine <routine-id>"
"Resume routine <routine-id>"
"Run routine <routine-id> now"
Funciona com
- Claude Code (Anthropic)
- Codex (OpenAI)
- Cursor
- Windsurf
- Qualquer cliente compatível com MCP
Links
Compilando a partir do Código-Fonte
git clone https://github.com/Agentled/mcp-server.git
cd mcp-server
npm install
npm run build
Licença
MIT