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’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal: Cross-Platform CLI Tool for the Agent Protocol #72

Open
jzanecook opened this issue Sep 29, 2023 · 3 comments
Open

Proposal: Cross-Platform CLI Tool for the Agent Protocol #72

jzanecook opened this issue Sep 29, 2023 · 3 comments

Comments

@jzanecook
Copy link
Collaborator

Objective:

This proposal outlines the development of a cross-platform CLI tool aimed at simplifying interactions with the Agent Protocol. The goal is to improve user experience, streamline debugging, and facilitate automation within the agent protocol ecosystem.

Background:

The Agent Protocol involves managing tasks, steps, and artifacts, all identified by UUIDs (v4). Tasks represent high-level commands for agents, steps denote individual actions taken by agents, and artifacts correspond to files generated or used during agent operations. This proposal aims to create a user-friendly CLI application inspired by the ease of use of Docker's command-line interface.

Proposed CLI Commands:

To provide a clear vision for this tool, we propose the following CLI commands and their expected functionalities:

  1. ap-cli connect [endpoint] - Connects to the specified agent endpoint.

    • Example: $ ap-cli connect http://localhost:8000
  2. ap-cli task list - Lists tasks with their full UUIDs.

    • The response to this command (for tasks, steps, and artifacts alike) could be formatted in JSON (as the original API, to be sent to jq for scripting or etc.) or as a formatted table.
  3. ap-cli task create [options] - Creates a new task.

    • Example: $ ap-cli task create
  4. ap-cli task [task_uuid] step create --input="[input]" - Creates a new step within a task.

    • Example: $ ap-cli task 70e62fbb-0123-4567-89ab-cdef01234567 step create --input="Write 'Washington' to a file."
  5. ap-cli task [task_uuid] artifact list - Lists artifacts associated with a task.

    • Example: $ ap-cli task 70e62fbb-0123-4567-89ab-cdef01234567 artifact list

Note: If multi-agent usage becomes a necessity, the agent name from the (not yet implemented) info endpoint could be used for individual calls.
Example:

$ ap-cli connect http://localhost:8000
> Connected to MyAgent

$ ap-cli connect http://localhost:8001
> Connected to NotMyAgent

$ ap-cli MyAgent task list

Goals of the CLI Tool:

  • Enhance user experience with an intuitive CLI interface.
  • Simplify debugging and monitoring of agent tasks and steps.
  • Enable automation of agent protocol interactions for CI/CD workflows.
  • Facilitate agent protocol compliance verification and testing.

Discussion Points:

This proposal serves as a technical framework for the CLI tool's development. Your input is essential to refine the design and functionality. Please share your thoughts on the proposed commands, suggest additional features or improvements, and highlight any potential challenges or considerations.

Let's collaborate to create a powerful and user-centric CLI tool that enhances the usability and effectiveness of the Agent Protocol.

@jzanecook jzanecook mentioned this issue Oct 30, 2023
5 tasks
@rewrlution
Copy link

@jzanecook for the 3rd command, what [option] can our users use?

@rewrlution
Copy link

Okay, I saw your PR: #76. I will check that one.

@jzanecook
Copy link
Collaborator Author

The options for the create command are whatever the options are in the spec, so input and additional_input for task/step and then for artifact it's that schema.

I have the structure of the commands/args pretty well set in the PR, it just needs to be refactored a bit and linked with the OpenAPI generated functions.

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

No branches or pull requests

2 participants