Skip to content

Conversation

@ElliottheCat
Copy link
Contributor

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.

greetingsuniverse and others added 8 commits August 17, 2025 15:28
…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
zjkmxy previously requested changes Aug 25, 2025
Copy link
Collaborator

@zjkmxy zjkmxy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix CI

@ElliottheCat
Copy link
Contributor Author

ElliottheCat commented Aug 25, 2025

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).

@ElliottheCat ElliottheCat requested a review from zjkmxy August 25, 2025 03:09
@zjkmxy zjkmxy dismissed their stale review August 25, 2025 04:16

Fixed

@zjkmxy zjkmxy requested a review from Copilot August 25, 2025 04:16
Copy link
Contributor

Copilot AI left a 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.

This comment was marked as outdated.

@ElliottheCat
Copy link
Contributor Author

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!

Copy link
Collaborator

@zjkmxy zjkmxy left a 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.

@ElliottheCat
Copy link
Contributor Author

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.

@tianyuan129
Copy link
Collaborator

tianyuan129 commented Sep 6, 2025

CI is failing. Also I am not sure why we are still using AgentCard? I thought inviting an agent is the same with inviting an user? You just need a HTTP channel to pass the invitation.

Screenshot 2025-09-06 at 12 00 06 PM

@ElliottheCat
Copy link
Contributor Author

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

@ElliottheCat
Copy link
Contributor Author

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.

@tianyuan129
Copy link
Collaborator

tianyuan129 commented Sep 6, 2025

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".

@ElliottheCat
Copy link
Contributor Author

Deleted A2A relevant UI components and fixed build and lint errors (they run on my local computer.)

Copy link
Contributor Author

@ElliottheCat ElliottheCat left a 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.

@tianyuan129
Copy link
Collaborator

We are almost there. There are remaining comments to address then we can merge.

@tianyuan129 tianyuan129 changed the title Agentcard UI and Agent channel management/messages with external HTTP agents Add initial agent support Sep 10, 2025
@ElliottheCat
Copy link
Contributor Author

Is there any other comments? I think I finished all the code review ones.

@tianyuan129
Copy link
Collaborator

Yeah there are few unresolved conversations

…t discovers A2A agent card and automatically add agent to workspace.
@zjkmxy zjkmxy requested a review from Copilot September 10, 2025 18:03
Copy link
Contributor Author

@ElliottheCat ElliottheCat left a 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.

Copy link
Contributor

Copilot AI left a 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.

ElliottheCat and others added 6 commits September 10, 2025 11:05
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>
@ElliottheCat
Copy link
Contributor Author

I committed the changes of the typos, but can you look at the rest of the reviewed changes from copilot? @tianyuan129

@tianyuan129 tianyuan129 merged commit 7807031 into pulsejet:main Sep 10, 2025
2 checks passed
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

Successfully merging this pull request may close these issues.

4 participants