2. Apply Deepthink Protocol (reason about dependencies
risks
Sign in to like and favorite skills
This document describes each AI agent in the Film Agent system.
The system uses 6 specialized AI agents that work together autonomously:
src.agents.director_agent.DirectorAgentThe Director Agent is the orchestrator of the entire film production pipeline.
__init__(self)Initializes all agent dependencies.
interpret_concept(self, prompt: str) -> DictTransforms user concept into a cohesive creative vision.
Parameters:
prompt (str): User's film concept/ideaReturns:
{ "vision": "Creative vision statement", "style": "cinematic", "genre": "drama", "target_duration": "5 minutes" }
coordinate_agents(self, vision: Dict) -> DictOrchestrates the workflow of all agents.
Parameters:
vision (Dict): Creative vision from interpret_concept()Returns:
{ "script": {...}, "shots": [...], "audio": {...}, "effects": [...] }
review_output(self, output: Dict) -> DictEvaluates and approves final output from other agents.
Parameters:
output (Dict): Combined output from all agentsReturns:
{ "approved": True, "feedback": "Output meets quality standards", "revisions_needed": [] }
make_artistic_decisions(self, context: Dict) -> DictMakes high-level artistic decisions autonomously.
Parameters:
context (Dict): Current production contextReturns:
{ "color_grading": "warm", "pacing": "moderate", "mood": "neutral" }
src.agents.screenwriter_agent.ScreenwriterAgentThe Screenwriter Agent writes complete scripts with dialogue and scene descriptions.
__init__(self)Initializes the screenwriter agent.
generate(self, prompt: str, genre: str = "drama", length: str = "short") -> DictGenerates a complete film script from a user prompt.
Parameters:
prompt (str): User's story conceptgenre (str): Film genre (drama, comedy, sci-fi, etc.)length (str): Script length (short, medium, feature)Returns:
{ "title": "Untitled Film", "scenes": [], "characters": [], "dialogue": [], "structure": { "act1": "Setup", "act2": "Confrontation", "act3": "Resolution" } }
develop_character(self, name: str, traits: List[str]) -> DictCreates a detailed character profile.
Parameters:
name (str): Character nametraits (List[str]): List of character traitsReturns:
{ "name": "Character Name", "backstory": "Character history", "motivations": ["goal1", "goal2"], "arc": "transformation" }
structure_narrative(self, events: List[Dict]) -> DictOrganizes story events into a three-act structure.
Parameters:
events (List[Dict]): List of story eventsReturns:
{ "act1": {"setup": [...], "inciting_incident": [...]}, "act2": {"rising_action": [...], "midpoint": [...]}, "act3": {"climax": [...], "resolution": [...]} }
write_dialogue(self, character: str, context: str) -> strGenerates dialogue for a character in a specific context.
Parameters:
character (str): Character namecontext (str): Scene contextReturns:
"[Character]: Generated dialogue"
revise(self, script: Dict, feedback: str) -> DictImproves script based on director feedback.
Parameters:
script (Dict): Original scriptfeedback (str): Director's feedback notesReturns:
{...} # Revised script
src.agents.cinematographer_agent.CinematographerAgentThe Cinematographer Agent plans camera angles, movements, and compositions.
__init__(self)Initializes the cinematographer agent.
plan_shots(self, script: Dict) -> List[Dict]Creates a shot list from the script.
Parameters:
script (Dict): Script from ScreenwriterAgentReturns:
[ { "shot_type": "wide", "camera_movement": "static", "composition": "establishing", "duration": 5.0 } ]
design_lighting(self, scene: Dict) -> DictPlans lighting setup for a scene.
Parameters:
scene (Dict): Scene descriptionReturns:
{ "key_light": {"position": "45 degrees", "intensity": "100%"}, "fill_light": {"position": "opposite", "intensity": "50%"}, "back_light": {"position": "behind subject", "intensity": "70%"}, "mood": "dramatic" }
compose_frame(self, shot_type: str, subject: str) -> DictDesigns camera composition for a shot.
Parameters:
shot_type (str): Type of shotsubject (str): Main subject in frameReturns:
{ "rule_of_thirds": {"x": 1/3, "y": 1/2}, "headroom": "moderate", "look_room": "left", "depth": "shallow" }
create_shot_list(self, script: Dict) -> DictGenerates detailed shot breakdown.
Parameters:
script (Dict): Full scriptReturns:
{ "scenes": [...], "total_shots": 0, "est_duration": 0 }
ensure_continuity(self, shots: List[Dict]) -> boolVerifies visual continuity across shots.
Parameters:
shots (List[Dict]): List of all shotsReturns:
True # or False if issues found
src.agents.editor_agent.EditorAgentThe Editor Agent assembles scenes into cohesive narrative.
__init__(self)Initializes the editor agent.
assemble(self, scenes: List[Dict], audio: Dict) -> DictCombines scenes and audio into final assembly.
Parameters:
scenes (List[Dict]): List of scene dictionariesaudio (Dict): Audio track dictionaryReturns:
{ "timeline": [...], "duration": 0.0, "cuts": [...] }
determine_pacing(self, script: Dict) -> DictSets optimal timing and rhythm for scenes.
Parameters:
script (Dict): Script with scene descriptionsReturns:
{ "tempo": "moderate", "timing": {...}, "rhythm": "steady" }
apply_transitions(self, timeline: Dict) -> DictAdds transitions between scenes.
Parameters:
timeline (Dict): Current edit timelineReturns:
{...} # Updated timeline
make_cut_decisions(self, shots: List[Dict]) -> List[Dict]Determines optimal cut points between shots.
Parameters:
shots (List[Dict]): List of available shotsReturns:
[...] # Selected cuts
export_final(self, assembly: Dict, format: str = "mp4") -> DictRenders and exports the final video.
Parameters:
assembly (Dict): Final edit assemblyformat (str): Output format (mp4, mov, etc.)Returns:
{ "file_path": "output/video.mp4", "format": "mp4", "resolution": "1920x1080" }
src.agents.sound_designer_agent.SoundDesignerAgentThe Sound Designer Agent creates immersive audio experiences.
__init__(self)Initializes the sound designer agent.
design_music(self, script: Dict) -> DictSelects or generates background music for the film.
Parameters:
script (Dict): Script with emotional beatsReturns:
{ "score": [...], "mood": "neutral", "tempo": 120, "duration": 0.0 }
create_soundscape(self, scene: Dict) -> DictBuilds ambient audio environment for a scene.
Parameters:
scene (Dict): Scene descriptionReturns:
{ "ambient": [...], "foley": [...], "spatial": "stereo" }
mix_audio(self, tracks: List[Dict]) -> DictBalances and mixes multiple audio tracks.
Parameters:
tracks (List[Dict]): List of audio tracksReturns:
{ "levels": {...}, "master": {"volume": 0.8}, "dynamics": {"compression": True} }
sync_to_video(self, audio: Dict, video: Dict) -> DictSynchronizes audio with visual beats and cuts.
Parameters:
audio (Dict): Audio trackvideo (Dict): Video with cut pointsReturns:
{...} # Synced audio
generate_voiceover(self, script: Dict, voice: str = "default") -> DictCreates voice narration for the film.
Parameters:
script (Dict): Script text for voiceovervoice (str): Voice style/nameReturns:
{ "audio": None, "timing": [...], "subtitles": [...] }
src.agents.vfx_agent.VFXAgentThe VFX Agent applies visual effects and color grading.
__init__(self)Initializes the VFX agent.
identify_enhancements(self, shots: List[Dict]) -> List[Dict]Finds opportunities for visual enhancement.
Parameters:
shots (List[Dict]): List of shots to analyzeReturns:
[ { "shot": 0, "suggestion": "color_grading", "priority": "high" } ]
apply_color_grading(self, shot: Dict) -> DictAdjusts color and contrast for visual consistency.
Parameters:
shot (Dict): Shot to gradeReturns:
{ "lut": "cinematic", "adjustments": { "contrast": 1.1, "saturation": 1.0, "temperature": 0 }, "mood": "warm" }
integrate_cgi(self, shot: Dict) -> DictAdds CGI elements to a shot.
Parameters:
shot (Dict): Target shotReturns:
{ "elements": [...], "lighting": {...}, "blending": "normal" }
ensure_quality(self, video: Dict) -> DictTechnical quality check for final output.
Parameters:
video (Dict): Rendered videoReturns:
{ "issues": [], "passed": True, "recommendations": [] }
render_effects(self, shots: List[Dict]) -> List[Dict]Applies all VFX to shots.
Parameters:
shots (List[Dict]): List of shotsReturns:
[...] # Shots with effects
Parameters:
scene (Dict): Scene descriptionReturns:
{ "ambient": [...], "foley": [...], "spatial": "stereo" }
mix_audio(self, tracks: List[Dict]) -> DictBalances and mixes multiple audio tracks.
Parameters:
tracks (List[Dict]): List of audio tracksReturns:
{ "levels": {...}, "master": {"volume": 0.8}, "dynamics": {"compression": True} }
sync_to_video(self, audio: Dict, video: Dict) -> DictSynchronizes audio with visual beats and cuts.
Parameters:
audio (Dict): Audio track
video (Dict): Video with cut points
Returns:
{...} # Synced audio
generate_voiceover(self, script: Dict, voice: str = "default") -> DictCreates voice narration for the film.
Parameters:
script (Dict): Script text for voiceover
voice (str): Voice style/name
Returns:
{ "audio": None, "timing": [...], "subtitles": [...] }
src.agents.vfx_agent.VFXAgentThe VFX Agent applies visual effects and color grading.
__init__(self)Initializes the VFX agent.
identify_enhancements(self, shots: List[Dict]) -> List[Dict]Finds opportunities for visual enhancement.
Parameters:
shots (List[Dict]): List of shots to analyzeReturns:
[ { "shot": 0, "suggestion": "color_grading", "priority": "high" } ]
apply_color_grading(self, shot: Dict) -> DictAdjusts color and contrast for visual consistency.
Parameters:
shot (Dict): Shot to gradeReturns:
{ "lut": "cinematic", "adjustments": { "contrast": 1.1, "saturation": 1.0, "temperature": 0 }, "mood": "warm" }
integrate_cgi(self, shot: Dict) -> DictAdds CGI elements to a shot.
Parameters:
shot (Dict): Target shotReturns:
{ "elements": [...], "lighting": {...}, "blending": "normal" }
ensure_quality(self, video: Dict) -> DictTechnical quality check for final output.
Parameters:
video (Dict): Rendered videoReturns:
{ "issues": [], "passed": True, "recommendations": [] }
render_effects(self, shots: List[Dict]) -> List[Dict]Applies all VFX to shots.
Parameters:
shots (List[Dict]): List of shotsReturns:
[...] # Shots with effects
Initializes the VFX agent.
identify_enhancements(self, shots: List[Dict]) -> List[Dict]Finds opportunities for visual enhancement.
Parameters:
shots (List[Dict]): List of shots to analyzeReturns:
[ { "shot": 0, "suggestion": "color_grading", "priority": "high" } ]
apply_color_grading(self, shot: Dict) -> DictAdjusts color and contrast for visual consistency.
Parameters:
shot (Dict): Shot to gradeReturns:
{ "lut": "cinematic", "adjustments": { "contrast": 1.1, "saturation": 1.0, "temperature": 0 }, "mood": "warm" }
integrate_cgi(self, shot: Dict) -> DictAdds CGI elements to a shot.
Parameters:
shot (Dict): Target shotReturns:
{ "elements": [...], "lighting": {...}, "blending": "normal" }
ensure_quality(self, video: Dict) -> DictTechnical quality check for final output.
Parameters:
video (Dict): Rendered videoReturns:
{ "issues": [], "passed": True, "recommendations": [] }
render_effects(self, shots: List[Dict]) -> List[Dict]Applies all VFX to shots.
Parameters:
shots (List[Dict]): List of shotsReturns:
[...] # Shots with effects