Module: Insika::Server::A2A::AgentCard

Defined in:
lib/insika/server/a2a/agent_card.rb

Overview

A2A AgentCard: discovery for the exposed agent. One agent per deployment; HONEST capabilities (streaming/push false in this slice).

Class Method Summary collapse

Class Method Details

.build(agent:, base_url:, skills: [], version: "0.1.0") ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/insika/server/a2a/agent_card.rb', line 9

def self.build(agent:, base_url:, skills: [], version: "0.1.0")
  {
    name: agent.id,
    description: agent.base_prompt.to_s[0, 280],
    url: "#{base_url}/a2a",
    version: version,
    protocolVersion: "0.2.5", # A2A wire — to confirm
    capabilities: { streaming: false, pushNotifications: false, stateTransitionHistory: false },
    defaultInputModes: ["text/plain"],
    defaultOutputModes: ["text/plain"],
    skills: Array(skills).map do |s|
      { id: s.name, name: s.name, description: s.description, tags: [] }
    end
  }
end