17fe46d925
CI / lint (pull_request) Successful in 18s
CI / typecheck (pull_request) Successful in 26s
CI / security (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 14s
CI / build (pull_request) Successful in 12s
CI / behave (3.13) (pull_request) Failing after 3m50s
CI / docker (pull_request) Has been skipped
CI / helm (pull_request) Has been skipped
CI / coverage (pull_request) Failing after 4m20s
There had been over 100 behave tests failing. There should be none failing now.
231 lines
7.6 KiB
Gherkin
231 lines
7.6 KiB
Gherkin
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
|