Feature: Actor-first port of v2 agent and LangGraph suites As a developer migrating v2 agent flows I want actor-only agent and LangGraph coverage So that v3 matches the v2 behaviors without provider/model flags # TODO: Uncomment when step definitions are implemented # Background: # Given the agent system is initialized with actor-first configuration # # # From langgraph_state_management.feature # Scenario: LangGraph with actor-based state management # Given I have a stateful LangGraph configuration: # """ # { # "name": "stateful_graph", # "actor": "openai/gpt-4", # "checkpointing": true, # "enable_time_travel": true, # "nodes": { # "accumulate": { # "type": "function", # "function": "add_to_state" # } # }, # "edges": [ # {"source": "start", "target": "accumulate"}, # {"source": "accumulate", "target": "end"} # ] # } # """ # When I create the stateful graph # Then the graph should be created with actor "openai/gpt-4" # And the graph state should be persisted # And time travel should be enabled # # # From agent_modules_coverage.feature # Scenario: Create agent with actor configuration # Given I have an agent configuration: # """ # { # "name": "test_agent", # "type": "base", # "actor": "anthropic/claude-3" # } # """ # When I create an agent from the configuration # Then the agent should be created successfully # And the agent should use actor "anthropic/claude-3" # And the agent module should be accessible # # # From chain_agent_comprehensive.feature # Scenario: Chain agent with actor and steps # Given I have a chain agent configuration: # """ # { # "name": "test_chain", # "type": "chain", # "actor": "openai/gpt-3.5-turbo", # "steps": ["validate", "transform", "output"], # "prompt": "Process this: {message}" # } # """ # When I create a chain agent from the configuration # Then the chain agent should be created successfully # And the chain agent should have 3 steps # And the chain agent should use actor "openai/gpt-3.5-turbo" # # Scenario: Process message with actor-based chain agent # Given I have a chain agent with actor "local/custom-processor" # And the chain has steps ["parse", "analyze", "format"] # When I process the message "Test input" # Then the chain should use the specified actor # And the result should show processing through all steps # # # From composite_agent_coverage.feature pattern # Scenario: Composite agent with multiple actors # Given I have a composite agent configuration: # """ # { # "name": "multi_actor_composite", # "type": "composite", # "agents": [ # { # "name": "analyzer", # "actor": "openai/gpt-4", # "role": "analyze" # }, # { # "name": "generator", # "actor": "anthropic/claude-3", # "role": "generate" # }, # { # "name": "validator", # "actor": "local/validator", # "role": "validate" # } # ] # } # """ # When I create a composite agent from the configuration # Then the composite agent should have 3 sub-agents # And each sub-agent should use its configured actor # And parallel processing should work with all actors # # # From reactive_agents.feature pattern # Scenario: Reactive agent with actor-based streaming # Given I have a reactive agent configuration: # """ # { # "name": "stream_agent", # "type": "reactive", # "actor": "openai/gpt-4", # "stream_config": { # "stream_type": "transform", # "operators": ["map", "filter", "reduce"] # } # } # """ # When I create a reactive agent from the configuration # Then the agent should support reactive streaming # And the stream should use actor "openai/gpt-4" # And operators should transform data through the actor # # # From tool_agent.feature pattern # Scenario: Tool agent with actor and tool configuration # Given I have a tool agent configuration: # """ # { # "name": "tool_agent", # "type": "tool", # "actor": "openai/gpt-4", # "tools": [ # { # "name": "calculator", # "type": "function", # "function": "calculate" # }, # { # "name": "search", # "type": "api", # "endpoint": "search_api" # } # ] # } # """ # When I create a tool agent from the configuration # Then the tool agent should have 2 tools available # And the tool agent should use actor "openai/gpt-4" # And tool calls should be routed through the actor # # # LangGraph visualization with actors # Scenario: Visualize actor-based LangGraph # Given I have a complex LangGraph with multiple actors: # """ # { # "name": "visualization_graph", # "nodes": { # "input": { # "type": "input", # "actor": "openai/gpt-3.5-turbo" # }, # "process": { # "type": "llm", # "actor": "anthropic/claude-3" # }, # "validate": { # "type": "tool", # "actor": "local/validator" # }, # "output": { # "type": "output", # "actor": "openai/gpt-4" # } # }, # "edges": [ # {"source": "input", "target": "process"}, # {"source": "process", "target": "validate"}, # {"source": "validate", "target": "output"} # ] # } # """ # When I visualize the graph # Then the visualization should show all nodes with their actors # And the edge flow should be clearly represented # And actor transitions should be highlighted # # # Agent factory with default actor # Scenario: Agent factory creates agents with default actor # Given I have an agent factory with default actor "openai/gpt-4" # When I create multiple agents using the factory: # | agent_name | agent_type | # | parser | chain | # | analyzer | tool | # | generator | composite | # Then all agents should use the default actor "openai/gpt-4" # And each agent should have the correct type # # # LangGraph with conditional routing based on actor capabilities # Scenario: Conditional routing based on actor capabilities # Given I have a LangGraph with conditional routing: # """ # { # "name": "capability_router", # "nodes": { # "router": { # "type": "conditional", # "conditions": [ # { # "if": "needs_vision", # "then": "vision_processor", # "actor": "openai/gpt-4-vision" # }, # { # "if": "needs_code", # "then": "code_generator", # "actor": "anthropic/claude-3-opus" # }, # { # "else": "general_processor", # "actor": "openai/gpt-3.5-turbo" # } # ] # } # } # } # """ # When I route a request that needs vision # Then the request should be routed to "openai/gpt-4-vision" # And the routing decision should be based on actor capabilities