KEMBAR78
Implement ReWOO Agent by yczhang-nv · Pull Request #75 · NVIDIA/NeMo-Agent-Toolkit · GitHub
Skip to content

Conversation

@yczhang-nv
Copy link
Contributor

@yczhang-nv yczhang-nv commented Apr 3, 2025

Description

This PR adds an implementation of a ReWOO agent.

  • A ReWOO agent works as follows:

    1. The planner node generates the entire chain of tools ("plan") in one go.
    2. The executor node processes the "plan" by iterating through each step and invoking the specified tools. Each tool’s output replaces the corresponding placeholder in the plan, and that updated plan is passed to the subsequent tool.
    3. The solver node generates the final results based on the complete "plan" and the tool outputs from the previous steps.
  • Compared to the ReAct agent, the ReWOO pattern eliminates the need to include the system prompt and all previous steps for every reasoning iteration, thereby reducing token usage and boosting performance.

  • This PR also introduces a minor refactor to the BaseAgent interface to accommodate the ReWOO pattern, which utilizes three nodes instead of the two nodes used by ReAct.

Closes https://jirasw.nvidia.com/browse/AIQ-849

By Submitting this PR I confirm:

  • I am familiar with the Contributing Guidelines.
  • We require that all contributors "sign-off" on their commits. This certifies that the contribution is your original work, or you have rights to submit it under the same license, or a compatible license.
    • Any contribution which contains commits that are not Signed-Off will not be accepted.
  • When the PR is ready for review, new or existing tests cover these changes.
  • When the PR is ready for review, the documentation is up to date with these changes.

Signed-off-by: Yuchen Zhang <yuchenz@nvidia.com>
@yczhang-nv yczhang-nv self-assigned this Apr 3, 2025
Signed-off-by: Yuchen Zhang <yuchenz@nvidia.com>
Signed-off-by: Yuchen Zhang <yuchenz@nvidia.com>
Signed-off-by: Yuchen Zhang <yuchenz@nvidia.com>
Signed-off-by: Yuchen Zhang <yuchenz@nvidia.com>
Signed-off-by: Yuchen Zhang <yuchenz@nvidia.com>
@yczhang-nv yczhang-nv added feature request New feature or request non-breaking Non-breaking change labels Apr 4, 2025
Signed-off-by: Yuchen Zhang <yuchenz@nvidia.com>
Signed-off-by: Yuchen Zhang <yuchenz@nvidia.com>
Signed-off-by: Yuchen Zhang <yuchenz@nvidia.com>
Signed-off-by: Yuchen Zhang <yuchenz@nvidia.com>
@yczhang-nv yczhang-nv marked this pull request as ready for review April 7, 2025 23:28
@yczhang-nv yczhang-nv requested a review from a team as a code owner April 7, 2025 23:28
@yczhang-nv yczhang-nv changed the title Add ReWOO Agent Implement ReWOO Agent Apr 7, 2025
Copy link
Collaborator

@mdemoret-nv mdemoret-nv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good but we need unit tests for this

Signed-off-by: Yuchen Zhang <yuchenz@nvidia.com>
Signed-off-by: Yuchen Zhang <yuchenz@nvidia.com>
@yczhang-nv yczhang-nv force-pushed the yuchen-add-rewoo-agent branch from 432d847 to c09a9dc Compare April 10, 2025 00:48
yczhang-nv and others added 7 commits April 9, 2025 17:49
Signed-off-by: Yuchen Zhang <yuchenz@nvidia.com>
Signed-off-by: Yuchen Zhang <yuchenz@nvidia.com>
Signed-off-by: Yuchen Zhang <134643420+yczhang-nv@users.noreply.github.com>
Signed-off-by: Yuchen Zhang <134643420+yczhang-nv@users.noreply.github.com>
Signed-off-by: Yuchen Zhang <134643420+yczhang-nv@users.noreply.github.com>
Signed-off-by: Yuchen Zhang <134643420+yczhang-nv@users.noreply.github.com>
yczhang-nv and others added 18 commits April 14, 2025 11:50
Signed-off-by: Yuchen Zhang <134643420+yczhang-nv@users.noreply.github.com>
Signed-off-by: Yuchen Zhang <134643420+yczhang-nv@users.noreply.github.com>
Signed-off-by: Yuchen Zhang <134643420+yczhang-nv@users.noreply.github.com>
Signed-off-by: Yuchen Zhang <134643420+yczhang-nv@users.noreply.github.com>
Signed-off-by: Yuchen Zhang <134643420+yczhang-nv@users.noreply.github.com>
Signed-off-by: Yuchen Zhang <134643420+yczhang-nv@users.noreply.github.com>
Signed-off-by: Yuchen Zhang <134643420+yczhang-nv@users.noreply.github.com>
Signed-off-by: Yuchen Zhang <134643420+yczhang-nv@users.noreply.github.com>
Signed-off-by: Yuchen Zhang <134643420+yczhang-nv@users.noreply.github.com>
Signed-off-by: Yuchen Zhang <134643420+yczhang-nv@users.noreply.github.com>
Signed-off-by: Yuchen Zhang <134643420+yczhang-nv@users.noreply.github.com>
Signed-off-by: Yuchen Zhang <134643420+yczhang-nv@users.noreply.github.com>
@yczhang-nv yczhang-nv requested a review from mdemoret-nv April 21, 2025 21:51
Copy link
Collaborator

@mdemoret-nv mdemoret-nv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great addition!

@mdemoret-nv
Copy link
Collaborator

/merge

@rapids-bot rapids-bot bot merged commit 20c2ba0 into NVIDIA:develop Apr 23, 2025
10 checks passed
ericevans-nv pushed a commit to ericevans-nv/agent-iq that referenced this pull request Apr 23, 2025
This PR adds an implementation of a ReWOO agent.

- A ReWOO agent works as follows:

  1. The `planner` node generates the entire chain of tools ("plan") in one go.
  2. The `executor` node processes the "plan" by iterating through each step and invoking the specified tools. Each tool’s output replaces the corresponding placeholder in the plan, and that updated plan is passed to the subsequent tool.
  3. The `solver` node generates the final results based on the complete "plan" and the tool outputs from the previous steps.

- Compared to the ReAct agent, the ReWOO pattern eliminates the need to include the system prompt and all previous steps for every reasoning iteration, thereby reducing token usage and boosting performance.

- This PR also introduces a minor refactor to the `BaseAgent` interface to accommodate the ReWOO pattern, which utilizes three nodes instead of the two nodes used by ReAct.

Closes https://jirasw.nvidia.com/browse/AIQ-849

## By Submitting this PR I confirm:
- I am familiar with the [Contributing Guidelines](https://github.com/NVIDIA/AgentIQ/blob/develop/docs/source/advanced/contributing.md).
- We require that all contributors "sign-off" on their commits. This certifies that the contribution is your original work, or you have rights to submit it under the same license, or a compatible license.
  - Any contribution which contains commits that are not Signed-Off will not be accepted.
- When the PR is ready for review, new or existing tests cover these changes.
- When the PR is ready for review, the documentation is up to date with these changes.

Authors:
  - Yuchen Zhang (https://github.com/yczhang-nv)

Approvers:
  - Michael Demoret (https://github.com/mdemoret-nv)

URL: NVIDIA#75
Signed-off-by: Eric Evans <194135482+ericevans-nv@users.noreply.github.com>
@yczhang-nv yczhang-nv deleted the yuchen-add-rewoo-agent branch April 23, 2025 04:01
ericevans-nv pushed a commit to ericevans-nv/agent-iq that referenced this pull request Apr 23, 2025
This PR adds an implementation of a ReWOO agent.

- A ReWOO agent works as follows:

  1. The `planner` node generates the entire chain of tools ("plan") in one go.
  2. The `executor` node processes the "plan" by iterating through each step and invoking the specified tools. Each tool’s output replaces the corresponding placeholder in the plan, and that updated plan is passed to the subsequent tool.
  3. The `solver` node generates the final results based on the complete "plan" and the tool outputs from the previous steps.

- Compared to the ReAct agent, the ReWOO pattern eliminates the need to include the system prompt and all previous steps for every reasoning iteration, thereby reducing token usage and boosting performance.

- This PR also introduces a minor refactor to the `BaseAgent` interface to accommodate the ReWOO pattern, which utilizes three nodes instead of the two nodes used by ReAct.

Closes https://jirasw.nvidia.com/browse/AIQ-849

## By Submitting this PR I confirm:
- I am familiar with the [Contributing Guidelines](https://github.com/NVIDIA/AgentIQ/blob/develop/docs/source/advanced/contributing.md).
- We require that all contributors "sign-off" on their commits. This certifies that the contribution is your original work, or you have rights to submit it under the same license, or a compatible license.
  - Any contribution which contains commits that are not Signed-Off will not be accepted.
- When the PR is ready for review, new or existing tests cover these changes.
- When the PR is ready for review, the documentation is up to date with these changes.

Authors:
  - Yuchen Zhang (https://github.com/yczhang-nv)

Approvers:
  - Michael Demoret (https://github.com/mdemoret-nv)

URL: NVIDIA#75
Signed-off-by: Eric Evans <194135482+ericevans-nv@users.noreply.github.com>
yczhang-nv added a commit to yczhang-nv/NeMo-Agent-Toolkit that referenced this pull request May 8, 2025
This PR adds an implementation of a ReWOO agent.

- A ReWOO agent works as follows:

  1. The `planner` node generates the entire chain of tools ("plan") in one go.
  2. The `executor` node processes the "plan" by iterating through each step and invoking the specified tools. Each tool’s output replaces the corresponding placeholder in the plan, and that updated plan is passed to the subsequent tool.
  3. The `solver` node generates the final results based on the complete "plan" and the tool outputs from the previous steps.

- Compared to the ReAct agent, the ReWOO pattern eliminates the need to include the system prompt and all previous steps for every reasoning iteration, thereby reducing token usage and boosting performance.

- This PR also introduces a minor refactor to the `BaseAgent` interface to accommodate the ReWOO pattern, which utilizes three nodes instead of the two nodes used by ReAct.

Closes https://jirasw.nvidia.com/browse/AIQ-849

## By Submitting this PR I confirm:
- I am familiar with the [Contributing Guidelines](https://github.com/NVIDIA/AgentIQ/blob/develop/docs/source/advanced/contributing.md).
- We require that all contributors "sign-off" on their commits. This certifies that the contribution is your original work, or you have rights to submit it under the same license, or a compatible license.
  - Any contribution which contains commits that are not Signed-Off will not be accepted.
- When the PR is ready for review, new or existing tests cover these changes.
- When the PR is ready for review, the documentation is up to date with these changes.

Authors:
  - Yuchen Zhang (https://github.com/yczhang-nv)

Approvers:
  - Michael Demoret (https://github.com/mdemoret-nv)

URL: NVIDIA#75
Signed-off-by: Yuchen Zhang <134643420+yczhang-nv@users.noreply.github.com>
AnuradhaKaruppiah pushed a commit to AnuradhaKaruppiah/oss-agentiq that referenced this pull request Aug 4, 2025
This PR adds an implementation of a ReWOO agent.

- A ReWOO agent works as follows:

  1. The `planner` node generates the entire chain of tools ("plan") in one go.
  2. The `executor` node processes the "plan" by iterating through each step and invoking the specified tools. Each tool’s output replaces the corresponding placeholder in the plan, and that updated plan is passed to the subsequent tool.
  3. The `solver` node generates the final results based on the complete "plan" and the tool outputs from the previous steps.

- Compared to the ReAct agent, the ReWOO pattern eliminates the need to include the system prompt and all previous steps for every reasoning iteration, thereby reducing token usage and boosting performance.

- This PR also introduces a minor refactor to the `BaseAgent` interface to accommodate the ReWOO pattern, which utilizes three nodes instead of the two nodes used by ReAct.


Closes https://jirasw.nvidia.com/browse/AIQ-849

## By Submitting this PR I confirm:
- I am familiar with the [Contributing Guidelines](https://github.com/NVIDIA/AgentIQ/blob/develop/docs/source/advanced/contributing.md).
- We require that all contributors "sign-off" on their commits. This certifies that the contribution is your original work, or you have rights to submit it under the same license, or a compatible license.
  - Any contribution which contains commits that are not Signed-Off will not be accepted.
- When the PR is ready for review, new or existing tests cover these changes.
- When the PR is ready for review, the documentation is up to date with these changes.

Authors:
  - Yuchen Zhang (https://github.com/yczhang-nv)

Approvers:
  - Michael Demoret (https://github.com/mdemoret-nv)

URL: NVIDIA#75
scheckerNV pushed a commit to scheckerNV/aiq-factory-reset that referenced this pull request Aug 22, 2025
This PR adds an implementation of a ReWOO agent.

- A ReWOO agent works as follows:

  1. The `planner` node generates the entire chain of tools ("plan") in one go.
  2. The `executor` node processes the "plan" by iterating through each step and invoking the specified tools. Each tool’s output replaces the corresponding placeholder in the plan, and that updated plan is passed to the subsequent tool.
  3. The `solver` node generates the final results based on the complete "plan" and the tool outputs from the previous steps.

- Compared to the ReAct agent, the ReWOO pattern eliminates the need to include the system prompt and all previous steps for every reasoning iteration, thereby reducing token usage and boosting performance.

- This PR also introduces a minor refactor to the `BaseAgent` interface to accommodate the ReWOO pattern, which utilizes three nodes instead of the two nodes used by ReAct.


Closes https://jirasw.nvidia.com/browse/AIQ-849

## By Submitting this PR I confirm:
- I am familiar with the [Contributing Guidelines](https://github.com/NVIDIA/AgentIQ/blob/develop/docs/source/advanced/contributing.md).
- We require that all contributors "sign-off" on their commits. This certifies that the contribution is your original work, or you have rights to submit it under the same license, or a compatible license.
  - Any contribution which contains commits that are not Signed-Off will not be accepted.
- When the PR is ready for review, new or existing tests cover these changes.
- When the PR is ready for review, the documentation is up to date with these changes.

Authors:
  - Yuchen Zhang (https://github.com/yczhang-nv)

Approvers:
  - Michael Demoret (https://github.com/mdemoret-nv)

URL: NVIDIA#75
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature request New feature or request non-breaking Non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants