-
Notifications
You must be signed in to change notification settings - Fork 0
Agents SDK with Service to Service delegation #43
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
base: main
Are you sure you want to change the base?
Conversation
|
Couple of things I would like to see before we merge this:
|
| Creates an HTTP server with three endpoints: | ||
| - GET /.well-known/agent-card.json (public): Service discovery | ||
| - POST /invoke (protected): Execute crew | ||
| - GET /status (public): Health check |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We call this "agent_card_server" but this very crew_ai specific.
Can we split this into
- generic a2a server
- mounting crew ai adapter on top of it
If we want to quickly ship something crew ai specific, lets make these function names less generic
| delegation_chain: list[str] | ||
|
|
||
|
|
||
| class AgentCardResponse(BaseModel): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
|
||
| try: | ||
| # Construct JWKS URI from zone | ||
| jwks_uri = f"https://{config.zone_id}.keycard.cloud/.well-known/jwks.json" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This cannot be hardcoded. This is already wrong URL for keycard.
You need to do https://uvzk3wjne6267192mbu1f0b73n.keycard.cloud/.well-known/openid-configuration lookup to read the jwks endpoint address.
This should really already be present in the oauth package. Have a look at
| class JWTAccessToken(BaseModel): |
Summary
This PR introduces the keycardai-agents package, a production-ready SDK for building agent services with secure service-to-service (A2A) delegation using Keycard authentication. The package enables CrewAI workflows to be deployed as HTTP services and supports A2A communication for other frameworks.
What's New
Core Features
Security & Production Readiness
Framework Support
CrewAI (Full Support):
Other Frameworks (A2A Client Only):
Key Implementation Details
Service Discovery with Caching (discovery.py:83-133):
CrewAI A2A Tools (integrations/crewai_a2a.py):