Skip to content
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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC: Output for New Task #102

Open
wants to merge 2 commits into
base: v2
Choose a base branch
from

Conversation

nalbion
Copy link
Contributor

@nalbion nalbion commented Feb 10, 2024

Output for New Task

Feature name Output for New Task
Author(s) Nicholas Albion (nalbion@yahoo.com)
RFC PR: Leave blank
Updated 2024-02-11

Summary

POST /ap/v1/agent/task should allow an output

Motivation

I struggle to understand how people would be using POST /ap/v1/agent/task, which accepts an optional (!!) input but allows for no output. Can you imagine calling somebody on the phone and the person at the other end picks up, but doesn't say anything? You generally want to hear "Hi, thanks for calling XYZ, if you're calling about ..." - or atleast "Hello..."

An agent could:

  • Ignore (or just log) the task.input and provide a generic welcome/instructional prompt.
  • Use an LLM to process task.input and select a specialist agent to handle the task/steps, and provide a welcome prompt from the specialist agent
  • Provide a rejection message explaining why subsequent requests will not be accepted
  • The client might use the task.output as a title for the task?

Agent Builders Benefit

Agents would be able to provide a welcome message, guiding the user on what to say first.

This allows for greater flexibility & more options:

task.inputtask.ouputcomments
Write the word 'Washington' to a .txt file" undefined AutoGPT logs `task.input`.
User initiates conversation in `POST /agent/task/id/step`
Write the word 'Washington' to a .txt file" "Sorry, I'm unable to write to files" Agent responds to `task.input`
maybe sets `"is_last": true`?
undefined "Hi, welcome to XYZ bank, can we start with your account number?" Agent initiates with welcome prompt
undefined undefined User initiates conversation in `POST /agent/task/id/step`

Design Proposal

Alternatives Considered

  • Remove task.input if the Agent can not respond with task.output.

Compatibility

AutoGPT seems to be sending the same message to createTask() and sendChatMessage() in chat_view.dart#L126:

                  if (widget.viewModel.currentTaskId != null) {
...
                  } else {
                    String newTaskId = await taskViewModel.createTask(message);
                    widget.viewModel.setCurrentTaskId(newTaskId);
                    widget.viewModel.sendChatMessage(
                        (message == "") ? null : message,

In ForgeAgent they suggest that in create_task you might just log the task.input.

   async def create_task(self, task_request: TaskRequestBody) -> Task:
        """
        The agent protocol, which is the core of the Forge, works by creating a task and then
        executing steps for that task. This method is called when the agent is asked to create
        a task.

        We are hooking into function to add a custom log message. Though you can do anything you
        want here.
        """
        task = await super().create_task(task_request)
        LOG.info(
            f"馃摝 Task created: {task.task_id} input: {task.input[:40]}{'...' if len(task.input) > 40 else ''}"
        )
        return task

Questions and Discussion Topics

Add open questions or options you require feedback on from the community.

Copy link

vercel bot commented Feb 10, 2024

The latest updates on your projects. Learn more about Vercel for Git 鈫楋笌

1 Ignored Deployment
Name Status Preview Comments Updated (UTC)
agentprotocolai 猬滐笍 Ignored (Inspect) Visit Preview Feb 10, 2024 4:17pm

@nalbion
Copy link
Contributor Author

nalbion commented Feb 10, 2024

as raised in #63

@jzanecook jzanecook changed the base branch from main to v2 April 16, 2024 17:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant