-
Notifications
You must be signed in to change notification settings - Fork 11
Add initial agent support #88
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
Conversation
…rk yet so you should manually add in the agentcard info. Base on the current agentcards under your project, you can create an agent channel for each agent. Current workspace-agent.ts should support agent channel communication, but i couldn't fully test it due to CORS header rejection from browser server connections.
zjkmxy
left a comment
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.
Please fix CI
|
Hi, I just realized my bug patch wasn't pushed to my forked git directory after merging. I just pushed it and it should be reflected in the pull request check (all passing). |
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.
Pull Request Overview
This PR adds agent card UI and agent channel management functionality to enable communication with external HTTP agents through the A2A protocol. The system now supports discovering agents, creating dedicated chat channels, and exchanging messages with LLM agents on remote machines.
Key changes:
- Added complete WorkspaceAgent service for agent discovery, channel management, and message handling
- Implemented AgentBrowser and AgentCard UI components for managing agent cards stored in project files
- Enhanced SpaceDiscussView to support both regular chat and agent channels with visual distinction
- Integrated agent functionality into the navigation sidebar with dedicated agent channels section
Reviewed Changes
Copilot reviewed 9 out of 12 changed files in this pull request and generated 17 comments.
Show a summary per file
| File | Description |
|---|---|
| src/services/workspace-agent.ts | New service implementing agent discovery, channel management, and A2A protocol communication |
| src/components/AgentBrowser.vue | Main UI for browsing, discovering, and managing agent cards within workspaces |
| src/components/AddAgentModal.vue | Modal component for manually adding agent cards with custom fields |
| src/views/SpaceDiscussView.vue | Enhanced discussion view supporting both chat and agent channels with message differentiation |
| src/components/NavBar.vue | Added agent channels section with delete functionality and agent browser modal |
| src/services/workspace.ts | Integrated WorkspaceAgent service into workspace lifecycle |
| src/services/event-bus.ts | Added agent-channels event for UI updates |
| src/components/InvitePeopleModal.vue | Minor variable declaration update (var to let) |
| package.json | Updated Vue version and added vuew dependency |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
Hi! I finished updating the code to maintain one single agent card array for the whole workspace and also fixed intra-channel history contamination in my testing. Please review my code and tell me what other issues it may have. Thank you! |
zjkmxy
left a comment
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.
Great! This is what I meant. Thank you for your effort!
I have no time to test it on my machine, so UCLA people please merge this after you have tested it.
…tter organization
…d be directly invited into the channels through NDN.
|
Hi! I merged Craig's code (NDN server invitation) into the newest version. NDN LLM server now acts as an agent in the channels. You just have to add the agent url in the agent card section. I'm removing the HTTP agent invocation for now for clarity. We will decide what to do with non-NDN agents in the future. |
…ralized HTTP servers.
|
Yes, it's more for user interface. Craig and I agreed that we shouldn't use the full A2A protocol, but keeping a some what structured way for inviting agents can be better for record keeping (e.g. what agents are in a channel) and also just for user experience (you know where to put the url, and could name the agent/ add description/ update descripton...). The build and lint issue are present in the client branch from Craig's code, but when I called him, he confirmed that it wouldn't cause and issue for running the application. Can you please take a look at the current code in my branch and check if there is a way to fix it? @Tankmaster48 |
|
Also, we plan to add a field of "NDN protocol" in the agent card so that we could automate the agent invocations (only invite the NDN agents, and send HTTP request to other agents running over HTTP). This isn't our top priority. We want to just get the NDN agent to integrate seamlessly for now. |
|
I agree we better have a structured UI to invite agent, but some boxes in the UI are still associated with A2A. Design wise, I have no objection to keep the door open to invite "HTTP agents". I just suggest in this particular PR, keep things simple, just assume the remote one is an "NDN agent". |
|
Deleted A2A relevant UI components and fixed build and lint errors (they run on my local computer.) |
ElliottheCat
left a comment
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.
I removed all the redundant A2A relevant fields/functions/components in types.ts, workspace-agent.ts, and AddAgentModal.vue.
|
We are almost there. There are remaining comments to address then we can merge. |
|
Is there any other comments? I think I finished all the code review ones. |
|
Yeah there are few unresolved conversations |
…t discovers A2A agent card and automatically add agent to workspace.
ElliottheCat
left a comment
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.
HI! I removed the extra unnecessary functions/components you highlighted. I also deleted the A2A agent discovery logic because we are not using HTTP agent communication.
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.
Pull Request Overview
This PR adds initial agent support to the Ownly workspace platform, integrating AI agents into the existing chat system using the A2A (Agent-to-Agent) protocol. The implementation allows users to manage agent cards, invite agents to chat channels, and enables seamless communication between humans and AI agents within the same workspace environment.
Key changes:
- Added agent management system with persistent storage via Yjs for distributed synchronization
- Integrated agents into existing chat channels rather than creating separate agent-specific channels
- Enhanced UI with agent browser, agent card management, and visual indicators for agent messages
Reviewed Changes
Copilot reviewed 11 out of 14 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| src/views/SpaceDiscussView.vue | Enhanced chat view with agent message detection and styling |
| src/services/workspace.ts | Integrated WorkspaceAgentManager into workspace lifecycle |
| src/services/workspace-invite.ts | Added agent invitation functionality via HTTP calls |
| src/services/workspace-agent.ts | Core agent management service with Yjs persistence |
| src/services/types.ts | Added agent-related type definitions |
| src/services/event-bus.ts | Added agent channel events to global bus |
| src/components/NavBar.vue | Added agent management UI section |
| src/components/InvitePeopleModal.vue | Minor formatting cleanup |
| src/components/AgentBrowser.vue | New component for managing agent cards and invitations |
| src/components/AddAgentModal.vue | New modal for adding agent cards |
| package.json | Updated Vue version and added vuew dependency |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
I committed the changes of the typos, but can you look at the rest of the reviewed changes from copilot? @tianyuan129 |

I merged my code with the newest ownly code. Now you can add agent cards based on A2A protocol, discover agent cards hosted at give IP, create/delete a channel that chats with the specified agents, and send/receive messages from the llm agent on remote machines.