
ControlFlow est un cadre Python pour la construction de workflows d'agent AI.
ControlFlow fournit un cadre structuré et axé sur les développeurs pour définir des workflows et déléguer des travaux aux LLM, sans sacrifier le contrôle ou la transparence:
Le flux de travail de contrôle le plus simple a une tâche, un agent par défaut et une gestion automatique des threads:
import controlflow as cf
result = cf . run ( "Write a short poem about artificial intelligence" )
print ( result )Résultat:
In circuits and code, a mind does bloom,
With algorithms weaving through the gloom.
A spark of thought in silicon's embrace,
Artificial intelligence finds its place.
ControlFlow relève des défis de la construction d'applications alimentées par l'IA qui sont à la fois puissantes et prévisibles:
Installez Controlflow avec pip :
pip install controlflow Ensuite, configurez votre fournisseur LLM. Le fournisseur par défaut de ControlFlow est OpenAI, qui nécessite la variable d'environnement OPENAI_API_KEY :
export OPENAI_API_KEY=your-api-key
Pour utiliser un autre fournisseur LLM, consultez les documents de configuration LLM.
Voici un exemple plus impliqué qui présente l'interaction des utilisateurs, un flux de travail en plusieurs étapes et des sorties structurées:
import controlflow as cf
from pydantic import BaseModel
class ResearchProposal ( BaseModel ):
title : str
abstract : str
key_points : list [ str ]
@ cf . flow
def research_proposal_flow ():
# Task 1: Get the research topic from the user
user_input = cf . Task (
"Work with the user to choose a research topic" ,
interactive = True ,
)
# Task 2: Generate a structured research proposal
proposal = cf . run (
"Generate a structured research proposal" ,
result_type = ResearchProposal ,
depends_on = [ user_input ]
)
return proposal
result = research_proposal_flow ()
print ( result . model_dump_json ( indent = 2 ))Conversation:
Agent: Hello! I'm here to help you choose a research topic. Do you have any particular area of interest or field you would like to explore? If you have any specific ideas or requirements, please share them as well. User: Yes, I'm interested in LLM agentic workflowsProposition:
{ "title" : " AI Agentic Workflows: Enhancing Efficiency and Automation " , "abstract" : " This research proposal aims to explore the development and implementation of AI agentic workflows to enhance efficiency and automation in various domains. AI agents, equipped with advanced capabilities, can perform complex tasks, make decisions, and interact with other agents or humans to achieve specific goals. This research will investigate the underlying technologies, methodologies, and applications of AI agentic workflows, evaluate their effectiveness, and propose improvements to optimize their performance. " , "key_points" : [ " Introduction: Definition and significance of AI agentic workflows, Historical context and evolution of AI in workflows " , " Technological Foundations: AI technologies enabling agentic workflows (e.g., machine learning, natural language processing), Software and hardware requirements for implementing AI workflows " , " Methodologies: Design principles for creating effective AI agents, Workflow orchestration and management techniques, Interaction protocols between AI agents and human operators " , " Applications: Case studies of AI agentic workflows in various industries (e.g., healthcare, finance, manufacturing), Benefits and challenges observed in real-world implementations " , " Evaluation and Metrics: Criteria for assessing the performance of AI agentic workflows, Metrics for measuring efficiency, accuracy, and user satisfaction " , " Proposed Improvements: Innovations to enhance the capabilities of AI agents, Strategies for addressing limitations and overcoming challenges " , " Conclusion: Summary of key findings, Future research directions and potential impact on industry and society " ] }
Dans cet exemple, ControlFlow gère automatiquement un flow ou un contexte partagé pour une série de tâches. Vous pouvez basculer entre les fonctions Python standard et les tâches agentiques à tout moment, ce qui facilite la création de workflows complexes.
Pour plonger plus profondément dans le contrôle: