Introdução geral
O ControlFlow é uma estrutura Python desenvolvida pela PrefectHQ com foco na criação e no gerenciamento de fluxos de trabalho de IA. Ele fornece uma estrutura estruturada e orientada ao desenvolvedor para definir fluxos de trabalho e delegar tarefas a agentes LLM (Large Language Model). O ControlFlow foi projetado para simplificar o desenvolvimento de aplicativos complexos de IA sem sacrificar o controle e a transparência. Os usuários podem criar tarefas discretas e observáveis e atribuir um ou mais agentes de IA dedicados a cada tarefa. Ao combinar essas tarefas em um fluxo, os usuários podem orquestrar comportamentos mais complexos.
Lista de funções
- Arquitetura do Mission CentreDivisão de fluxos de trabalho complexos de IA em etapas gerenciáveis e observáveis.
- Resultados estruturadosSoftware de inteligência artificial: preenchendo a lacuna entre a IA e o software tradicional por meio de resultados validados e seguros para o tipo.
- Agentes especializadosImplementação de agentes de IA específicos de tarefas para melhorar a eficiência da solução de problemas.
- Controle flexívelAjuste contínuo do equilíbrio entre controle e autonomia nos fluxos de trabalho.
- Coordenação de vários agentesCoordenar vários agentes de IA em um único fluxo de trabalho ou tarefa.
- observabilidade localMonitoramento e depuração de fluxos de trabalho de IA com suporte total ao Prefect 3.0.
- integração de ecossistemasTrabalhe de forma integrada com o código e as ferramentas existentes e com o ecossistema de IA mais amplo.
Usando a Ajuda
Processo de instalação
- Instale o ControlFlow usando o pip:
pip install controlflow
- Configure seu provedor de LLM. O provedor padrão do ControlFlow é o OpenAI, o que requer a configuração do parâmetro
OPENAI_API_KEY
Variáveis de ambiente:
export OPENAI_API_KEY=sua chave-api
- Se estiver usando outro provedor de LLM, consulte a documentação de configuração do LLM.
Uso básico
O uso básico do ControlFlow envolve a criação de tarefas, a atribuição de agentes e a execução de fluxos de trabalho. Veja a seguir um exemplo simples:
import controlflow as cf
result = cf.run("Escreva um poema curto sobre inteligência artificial")
print(result)
Uso avançado
Criação de propostas de pesquisa estruturadas
Os exemplos a seguir demonstram a interação do usuário, os fluxos de trabalho de várias etapas e a saída estruturada:
importar controlflow como cf
from pydantic import BaseModel
class ResearchProposal(BaseModel).
título: str
resumo: str
key_points: list[str]
@cf.flow
def research_proposal_flow(): user_input = cf.
user_input = cf.Task("Colaborar com o usuário para selecionar o tópico de pesquisa", interactive=True)
proposal = cf.run("Gerar proposta de pesquisa estruturada", result_type=ResearchProposal, depends_on=[user_input])
return proposal
result = research_proposal_flow()
print(result.model_dump_json(indent=2))
Neste exemplo, o ControlFlow gerencia automaticamente um fluxo, um contexto compartilhado para uma série de tarefas. Os usuários podem alternar entre funções Python padrão e tarefas de agente a qualquer momento, criando fluxos de trabalho complexos passo a passo.
Depuração e monitoramento
O ControlFlow oferece recursos nativos de observabilidade que permitem aos usuários monitorar e depurar fluxos de trabalho de IA. Os usuários podem usar o suporte completo do Prefect 3.0 para acompanhar a execução de tarefas e fazer ajustes conforme necessário.
integração de ecossistemas
O ControlFlow se integra perfeitamente ao código e às ferramentas existentes para oferecer suporte a uma ampla gama de tecnologias de IA e abordagens de gerenciamento de fluxo de trabalho. Os usuários podem aproveitar os recursos existentes do ecossistema de IA para aprimorar ainda mais a funcionalidade e a eficiência do fluxo de trabalho.
Com as etapas e os exemplos acima, os usuários podem começar rapidamente a criar e gerenciar fluxos de trabalho de IA com o ControlFlow para o gerenciamento eficiente de tarefas e a coordenação de agentes.
Conceitos básicos do ControlFlow
Blocos de construção do fluxo de trabalho agêntico
O ControlFlow é uma estrutura para a criação de fluxos de trabalho de IA que preenche a lacuna entre a programação estruturada e os recursos de linguagem natural do Large Language Model (LLM). Isso é obtido por meio de três conceitos principais: Tarefas, Agentes e Fluxos.
Para criar um fluxo de trabalho Agentic, você define metas claras (tarefas), atribui entidades inteligentes para atingir essas metas (agentes) e organiza suas interações ao longo do tempo (processos). Essa abordagem permite que você aproveite o poder da IA e, ao mesmo tempo, mantenha um controle refinado sobre o aplicativo.
📋 Tarefas
As tarefas representam a parte estruturada do ControlFlow. Elas são metas específicas e bem definidas que formam o núcleo de seu fluxo de trabalho. As tarefas encapsulam o "o quê" e o "como" das operações orientadas por IA, fornecendo uma estrutura de programação clara.
recursos de missão crítica:
- Definir metas específicas que a IA precisa atingir
- Especificar o tipo de resultado desejado e os critérios de validação
- Pode conter instruções, contextos e ferramentas necessárias para a execução
- Como um ponto de verificação em um fluxo de trabalho
existir mandatos para obter mais informações.
🦾 Agente (Agentes)
Os agentes incorporam a parte de linguagem natural e não estruturada do ControlFlow. Eles são entidades de IA que entendem e geram texto semelhante ao humano, trazendo flexibilidade e adaptabilidade ao seu fluxo de trabalho.
Principais características do agente:
- Representa uma entidade de IA configurável com uma identidade e recursos exclusivos
- Pode ser especializado para realizar tarefas específicas ou acessar diferentes ferramentas
- Colaborar em tarefas de acordo com as instruções fornecidas
- Interativo, permitindo a comunicação com os usuários
- Suporte para a configuração de diferentes modelos de LLM para conduzir suas respostas
Os agentes podem ser configurados com diferentes modelos de LLM, permitindo que você escolha o modelo que melhor atenda às suas necessidades com base em fatores como desempenho, latência e custo.
existir agir em nome de alguém em uma posição de responsabilidade para obter mais informações.
🧩 Fluxos (Fluxos)
Os processos fornecem um contexto compartilhado para todas as tarefas e agentes em um fluxo de trabalho. Eles coordenam a execução de tarefas e interações de agentes, permitindo que você crie fluxos de trabalho de IA complexos e adaptáveis.
Principais características do processo:
- Contêineres de alto nível que funcionam como todo o fluxo de trabalho orientado por IA
- Status e histórico consistentes em todos os componentes
- Contexto compartilhado para tarefas e agentes
- Pode ser aninhado para criar fluxos de trabalho hierárquicos
existir fluxos de trabalho para obter mais informações.
integrar
Em um aplicativo ControlFlow típico:
- Defina um fluxo para representar o fluxo de trabalho geral.
- Criar tarefas no processo para representar metas específicas
- Designe agentes para lidar com essas tarefas.
- Os processos são responsáveis por coordenar a execução de tarefas e interações de agentes
Essa estrutura permite criar fluxos de trabalho de IA avançados e flexíveis, mantendo o controle do processo e garantindo que o resultado atenda aos requisitos do seu aplicativo.