syntax = "proto3"; package agent; option go_package = "./proto;agent"; // Agent is the RPC interface for an AI agent. service Agent { rpc Chat(ChatRequest) returns (ChatResponse) {} rpc StreamChat(ChatRequest) returns (stream ChatResponse) {} } message ChatRequest { string message = 1; // parent_id correlates this chat with the workflow or agent run that dispatched it. string parent_id = 2; } message ChatResponse { string reply = 1; string agent = 2; repeated ToolCall tool_calls = 3; // run_id correlates this chat response with tool calls, traces, and run history. string run_id = 4; // parent_id is set when this response belongs to a delegated sub-agent run. string parent_id = 5; } message ToolCall { string id = 1; string name = 2; string input = 3; string result = 4; }