Comments (4)
What are example plugin scenarios? I heard "auth" but that probably needs to be baked into the core protocol... Other concrete examples???
And how would a caller discover which plugins the Agent implements?
from agent-protocol.
Caller can discover with the "info" endpoint. #39
With the protocol, we are trying to provide a minimum set of functionalities, but also ensuring collaboration from third parties to contribute to protocol extensions such as auth. I can imagine auth be implemented/needed differently by different companies, which is why we think it is good to have it be extension rather than baked into the core protocol.
from agent-protocol.
I like this idea. It may be good to hear your proposed schema in the info
endpoint for the plugin system.
from agent-protocol.
I can see two categories of extensions:
Easy: This involves adding new endpoints under a fresh OpenAPI specification file. Users can implement any number of these, and then specify which ones they've adopted in an 'api/extensions' endpoint or something similar.
Hard: This pertains to introducing new parameters to existing endpoints, like 'user_id'. I'm uncertain about a clean method for this.Much like the OpenAPI specification, developing the SDK is straightforward for the first type but challenging for the second. The easy extension type can be executed by setting up a FastAPI router for each extension. Subsequently, you can effortlessly integrate as many extension routers as needed into your implementation.
I'm still figuring out a solution for the second type.
- Swifty via Discord
Well there's an even harder one, what if you wanted to implement a whole different type of server? A real-time websocket or graphql server or a stream of some kind or any number of crazy configurations an agent might implement. A plugin system is good for that, but the issue is how it would work and how it could do that while also minimizing development time. Somebody mentioned before that they wanted websockets and that's just one person, what if I wanted my agent to live stream video/audio/data to the client? A REST API isn't going to be able to cover that, so then what would a plugin look like?
- Me via Discord
A simple extension to the REST API standard is relatively easy to implement, but if the plugin needs to be more than just an extension to the open api spec then it becomes significantly more complex.
How could we go about creating a plugin system that would allow agents to implement complex architectures as well as allow clients to easily implement those architectures without an excessive amount of code?
from agent-protocol.
Related Issues (20)
- V2 release feature request discussion thread HOT 1
- Proposal: Cross-Platform CLI Tool for the Agent Protocol HOT 3
- Proposal: Agent healthcheck endpoint to advance production-readiness of deployed agents HOT 2
- Proposal: Langchain Integration HOT 4
- RFC: Enhanced Interface Specification for Protocol HOT 1
- RFC: Topic Endpoint HOT 3
- JS SDK: Bug - the full StepRequestBody should be passed to the execute step handler #5
- JS SDK - Bug: all request & response interfaces are missing additional_input and additional_output properties.
- JS SDK - Bug: StepInput and StepOutput should be typed as string|undefined #3
- JS SDK - Feature: Add a storage abstraction for persisting task objects and artifacts to other storage locations like redis #2 HOT 1
- JS SDK - Bug: build error HOT 1
- [bug] `list_agent_task*` endpoints on Python client are broken
- OpenAPI schema validation
- OpenAPI generator HOT 1
- Step POST should immediately return HOT 2
- NPM Token Expiry Note
- JS Client - OpenAPI Generator generates wrong version format and incomplete details HOT 1
- May I ask if it's possible to apply for a CVE for this project if a security vulnerability is found? HOT 2
- Write a Fibonnaci generator in Rust HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from agent-protocol.