v0.1.0 · research-agent example

The agent is a sheet.

Memory, tools, reasoning, goals — all cells. Multiple agents share cells. The graph is the team. Click "Run" to watch an agent work through a task, cell by cell.

input
live cell graph
input.task
memory.recent
[]
reasoning.thought
— waiting —
tool.calls
output.response
— waiting —
reasoning trace
Click "Run agent" to see the reasoning chain
The cell graph

The agent, as YAML

id: research-agent title: "Research agent" cells: - id: input.task kind: value value: "What is Quilt?" - id: memory.recent kind: value value: [] - id: tool.search kind: api endpoint: "https://api.search.example/query" - id: tool.llm kind: api endpoint: "https://api.openai.com/v1/chat/completions" - id: reasoning.prompt kind: formula expr: '"You are a research agent. The user asked: " + input.task' - id: reasoning.thought kind: program code: "return await runtime.call('tool.llm', { prompt: runtime.get('reasoning.prompt').data });" - id: output.response kind: formula expr: "reasoning.thought"

Memory is values

The agent's memory is a set of value cells. The history of every interaction is preserved. You can rewind, branch, and replay any agent session, just like git for your data.

Tools are API cells

Web search, code execution, image generation, file system — all are API cells. Add a new tool by adding a cell. Remove a tool by removing a cell. The schema is the same as a spreadsheet cell.

Reasoning is a chain of program cells

The LLM call is a program cell. The output is a value. The next cell's input depends on this one. The graph is the reasoning chain. Step through it like a debugger.

Multiple agents share cells

Agent A writes to `findings`. Agent B reads from it. The graph is the team. No message bus, no coordination layer, no glue code. Just cells connected by wires.

View source → See all 11 repos