Skip to content

GraphFlow did not follow the condition to enter the next proxy, but terminated without reason(GraphFlow没有遵循条件进入下一个代理,而是无故终止) #7008

@Tswoen

Description

@Tswoen

What happened?

Describe the bug
user-->writing_director_agent 每次只会到这就自动结束了, stop_reason='Digraph execution is complete'这怎么回事,是源代码bug还是我写的逻辑有问题

filtered_writing_director_agent = MessageFilterAgent(
    name="writing_director_agent",
    wrapped_agent=writing_director_agent,
    filter=MessageFilterConfig(
        per_source=[
            PerSourceFilter(source="user", position="last", count=1),
            PerSourceFilter(source="writing_agent", position="last", count=1)
        ])
)

filtered_writing_agent = MessageFilterAgent(
    name="writing_agent",
    wrapped_agent=writing_agent,
    filter=MessageFilterConfig(
        per_source=[
            PerSourceFilter(source="retrieval_agent", position="last", count=1),
            PerSourceFilter(source="writing_director_agent", position="last", count=1),
            PerSourceFilter(source="writing_agent")
        ]),
)

filtered_retrieval_agent = MessageFilterAgent(
    name="retrieval_agent",
    wrapped_agent=retrieval_agent,
    filter=MessageFilterConfig(per_source=[PerSourceFilter(source="writing_agent", position="last", count=1)]),
)

end_agent = AssistantAgent(
    name="end_agent",
    system_message="你是一个终结代理,轮到你发言时,不管什么情况,都不需要思考推理,你只需输出TERMINATE",
    model_client=create_default_client(),
)

# Build graph with conditional loop
builder = DiGraphBuilder()

builder.add_node(filtered_writing_director_agent).add_node(filtered_writing_agent).add_node(filtered_retrieval_agent).add_node(end_agent)
builder.add_edge(filtered_writing_director_agent, filtered_writing_agent,condition=lambda msg: "TERMINATE" not in msg.to_model_text())
builder.add_edge(filtered_writing_director_agent, end_agent,condition=lambda msg: "TERMINATE" in msg.to_model_text())
builder.add_edge(filtered_writing_agent, filtered_writing_director_agent,condition=lambda msg: "APPROVE" in msg.to_model_text())
builder.add_edge(filtered_writing_agent, filtered_retrieval_agent, condition=lambda msg: "APPROVE" not in msg.to_model_text())
builder.add_edge(filtered_retrieval_agent, filtered_writing_agent)
builder.set_entry_point(filtered_writing_director_agent)  

graph = builder.build()

termination_condition = TextMentionTermination("TERMINATE")

# Create the flow
flow = GraphFlow(
    participants=builder.get_participants(),
    graph=graph,
    termination_condition=termination_condition
)

async for item in flow.run_stream(task=task):
        logger.info(f"{item}")

Which packages was the bug in?

Python AgentChat (autogen-agentchat>=0.4.0)

AutoGen library version.

Python dev (main branch)

Other library version.

No response

Model used

No response

Model provider

Other (please specify below)

Other model provider

No response

Python version

3.12

.NET version

None

Operating system

Windows

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions