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.input
task.ouput
comments
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:
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.
Output for New Task
Summary
POST /ap/v1/agent/task
should allow anoutput
Motivation
I struggle to understand how people would be using
POST /ap/v1/agent/task
, which accepts an optional (!!)input
but allows for nooutput
. 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:
task.input
and provide a generic welcome/instructional prompt.task.input
and select a specialist agent to handle the task/steps, and provide a welcome prompt from the specialist agenttask.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:
User initiates conversation in `POST /agent/task/id/step`
maybe sets `"is_last": true`?
Design Proposal
Alternatives Considered
task.input
if the Agent can not respond withtask.output
.Compatibility
AutoGPT seems to be sending the same
message
tocreateTask()
andsendChatMessage()
in chat_view.dart#L126:In ForgeAgent they suggest that in
create_task
you might just log thetask.input
.Questions and Discussion Topics
Add open questions or options you require feedback on from the community.