-
Notifications
You must be signed in to change notification settings - Fork 21
Add example of multi-agent collaboration #15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Nikola Forró <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces an example of multi-agent collaboration using goose. The review focuses on improving security, reproducibility, and usability by suggesting a .gitignore for secrets, documenting sudo implications, ensuring reproducible builds, and making the Makefile more robust.
| @@ -0,0 +1 @@ | |||
| GOOGLE_API_KEY=... | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| RUN curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh |\ | ||
| GOOSE_BIN_DIR=/usr/local/bin CONFIGURE=false bash | ||
|
|
||
| RUN useradd -m -G wheel goose && sed -i '/NOPASSWD/s/^# //' /etc/sudoers |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| $(COMPOSE) run --rm goose-agent \ | ||
| run --recipe recipes/agent.yaml --params "role=$(ROLE)" --params "task=$(TASK)" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add checks to ensure ROLE and TASK variables are set, providing a helpful error if they are not.
@if [ -z "$(ROLE)" ] || [ -z "$(TASK)" ]; then \
echo "Error: ROLE and TASK must be set." >&2; \
echo "Usage: make ROLE=<role> TASK=<task> run-goose-agent" >&2; \
exit 1; \
fi
$(COMPOSE) run --rm goose-agent \
run --recipe recipes/agent.yaml --params "role=$(ROLE)" --params "task=$(TASK)"
| @@ -0,0 +1,12 @@ | |||
| FROM node:lts | |||
|
|
|||
| RUN git clone --depth=1 https://github.com/cliffhall/GooseTeam.git /app | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
Great work 🙏
Did you see this happening? I personally don't want long-running agents but short-lived ones with exactly one task (e.g., check one Jira card) and exit then. My hope is that this will be more resilient and it's easier to scale. |
Yes.
We could create a custom MCP server that would spawn "worker" goose containers and pass them a recipe and parameters, exposing that as a tool for a "controller" goose instance. Or, if we don't want AI to be involved in the controller, we can just code some "container orchestration" logic. |
|
Is this pull request obsolete? Shall we close this? |
It depends whether you consider Goose obsolete. |
Multi-agent collaboration with goose
Example
Run multiple agents:
How it works
goose-teamcontainer runs the GooseTeam MCP serverand exchange messages
Concerns
being instructed not to