Basic implementation of ACP agent interface using Amazon Q CLI agent #3347
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of changes:
Basic implementation of ACP agent interface using Amazon Q CLI agent
The following features are supported:
- New Session setup ("session/new")
- Basic chat ("session/prompt" & "session/update")
- Using built-in tool like fs_read and fs_write ("tool_call")
- Request tool call permission ("session/request_permission")
We use Symposium ACP as it provides a nicer interface to write non-blocking ACP agent
The main method is handle_prompt_request:
- submit the request to the agent
- poll agent update events, convert them to ACP events, and send them back to ACP client
- tell ACP client that the request is completed
You can test this implementation using acp_client: cargo run -p agent -- acp-client ./target/debug/agent
Testing:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.