Packages
Elixir-native LangChain, LangGraph, and DeepAgents for traceable LLM apps: OTP workflows, tools, memory, human-in-the-loop, streaming, custom clients/adapters, minimal deps, and WeaveScope tracing.
Current section
Files
Jump to
Current section
Files
examples/streaming_agent.exs
alias BeamWeaver.Core.ChatModel
alias BeamWeaver.Core.Message
alias BeamWeaver.Stream.Envelope
defmodule BeamWeaver.Examples.StreamingAgent.Model do
@behaviour ChatModel
defstruct []
def invoke(%__MODULE__{}, _messages, _opts), do: {:ok, Message.assistant("streamed")}
end
defmodule BeamWeaver.Examples.StreamingAgent do
use BeamWeaver.Agent
model(%BeamWeaver.Examples.StreamingAgent.Model{})
end
{:ok, events} =
BeamWeaver.Examples.StreamingAgent.stream_events(%{messages: [Message.user("hello")]})
events
|> Enum.filter(&match?(%Envelope{}, &1))
|> length()
|> IO.puts()