Iacon Autonomics

Chat surface

The whole thing, assembled

Tabs, transcript, goal/plan strip, composer, crew control and the fleet header — the same components ChatPanel mounts, wired to fixture state instead of the store. Everything below is interactive: expand a tool call, open Crew Control, drag the exploration fader, send a message.

Chat panel — loaded
Reward hacking in gridworld
Curriculum staging
New chat
GoalActiveMake the gridworld reward measure task success rather than proximity, and prove it with a 500-episode evaluation.00:12:23
PlanStep 3Clip the shaping term and add a step cost2/5
workspace/chat/chat-panel.tsx
Chat panel — empty
Reward hacking in gridworld
Curriculum staging
New chat
Optimus

What's the mission?

LiveChatDemo — empty session

Message bubbles

Speakers

The user speaks in a filled bubble aligned right; Optimus speaks flush left under a mark, a wordmark and a liveness LED. Actions stay hidden until the row is hovered.

User
Return per episode looks great but the agent never actually reaches the goal. Find out why.
UserMessageBubble — hover for edit + copy
User + attachment
attachment
Here's the reward curve from last night's run.
message.images[] renders as 64px thumbnails
Assistant — streaming
Optimus

Sweep status

The first three seeds agree: r_t = 1 when the agent reaches the goal.

showCaret: text is flowing right now
Assistant — working
Optimus
Optimus is working…
ThinkingBubble — the single activity indicator
Assistant — interleaved
Optimus

Reading the environment and its current shaping term first.

The proximity reward is unbounded, so a policy can farm it by hovering next to the goal instead of entering it. I'll clip it and charge for each step.

Rerunning the baseline to see whether return per episode settles.

Clipping at 1.0 with a -0.01 step cost changes the picture:

variantmean returngoal reached
unbounded proximity41.211%
clipped + step cost8.994%

Lower return, but the policy now reaches the goal instead of circling it — the old number was measuring the exploit, not the task.

The shaped return is G_t = \sum_{k=0}^{T-t} \gamma^k r_{t+k}.

latex
\sigma^2(I) = a \cdot I + b
Diagram
Drawing the diagram…
toolCalls[].contentOffset splits the prose; consecutive reads collapse into one group

Chat markdown

Prose inside the transcript

A tighter renderer than the workspace pages: GFM tables, workspace paths linkified, breaks preserved, headings scaled down to sit inside a message rather than a document.

Chat markdown

Clipping at 1.0 with a -0.01 step cost changes the picture:

variantmean returngoal reached
unbounded proximity41.211%
clipped + step cost8.994%

Lower return, but the policy now reaches the goal instead of circling it — the old number was measuring the exploit, not the task.

The shaped return is G_t = \sum_{k=0}^{T-t} \gamma^k r_{t+k}.

latex
\sigma^2(I) = a \cdot I + b
Diagram
Drawing the diagram…
workspace/chat/chat-markdown.tsx