# `ADK.Artifact.InMemory`
[🔗](https://github.com/zeroasterisk/adk-elixir/blob/main/lib/adk/artifact/in_memory.ex#L1)

In-memory artifact store backed by an Agent process.

Artifacts are stored in a nested map keyed by
`{app_name, user_id, session_id, filename}` with a list of versions
(newest first).

## Usage

    {:ok, pid} = ADK.Artifact.InMemory.start_link()
    runner = ADK.Runner.new(app_name: "app", agent: agent, artifact_service: {ADK.Artifact.InMemory, pid: pid})

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `start_link`

```elixir
@spec start_link(keyword()) :: Agent.on_start()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
