Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Thanks Agent

The Thanks Agent

When orchestration guarantees execution, not value

Présentation canonique Slidewire — @matyo91 / Darkwood.

Avatar for Mathieu Ledru

Mathieu Ledru

November 06, 2026

More Decks by Mathieu Ledru

Other Decks in Programming

Transcript

  1. Darkwood · PHP · agents · Flow The Thanks Agent

    When orchestration guarantees execution, not value Execution ≠ Value @matyo91
  2. The question What happens when an orchestration system executes work

    that has no value? Not rhetorical. An engineering experiment. 01 | question @matyo91
  3. The experiment · content/thanks-agent Five useful. One useless. Same runtime.

    FetchDocs Github PHP Value +25 Value +40 Value +30 Mozilla Cost Thanks Value +20 Value +15 Value +0 + SummaryAgent (+15) after fan-in 02 | experiment @matyo91
  4. ThanksAgent Always says “Thanks.” return [ 'output' => 'Thanks.', //

    or Looks good. / Good job. 'tokens' => 2, 'messages' => 28, 'didWork' => false, // value forced to 0 ]; No tools · no context · no work 03 | thanks-agent Still scheduled · metered · logged @matyo91
  5. Thesis Activity is not throughput execution ≠ value messages ≠

    work visibility ≠ outcome The scheduler cannot distinguish productive work from performative work. 04 | thesis @matyo91
  6. Cost is plural What an agent consumes Scheduler Tokens Messages

    WIP / MaxIpStrategy Simulated in demo Chatty acknowledgements Context Logs Attention Prompt / index slices Observability volume Decision queue 05 | consumption @matyo91
  7. Slide 7 · 1/1 · représentation statique Flow today ·

    PHP ≥ 8.5 Linear async pipeline. Not a DAG engine. Driver Ip Job PUSH PULL POP ASYNC FlowFactory · MaxIpStrategy FiberDriver · StreamSelectDriver Many IPs in flight ≠ graph joins. 06 | flow Version interactive (mise en ligne à venir) : https://slides.darkwood.com/slides/thanks-agent @matyo91
  8. Slide 8 · 1/1 · représentation statique Scatter / gather

    · demo pattern Multiple IPs. Shared bag. Sync join. Multiple Ips ExecuteAgentJob RunStore SummaryAgent Scoreboard MaxIpStrategy caps concurrency · fan-in is application state 07 | scatter-gather Version interactive (mise en ligne à venir) : https://slides.darkwood.com/slides/thanks-agent @matyo91
  9. Scoreboard · FiberDriver · PHP 8.5.4 Value Δ = 0

    WITHOUT THANKS WITH THANKS Value 145 Cost 0.012 Messages 19 Events 5/5/5/5 Value 145 Cost 0.022 · +0.010 Messages 48 · +29 Events 6/6/6/6 Useful output unchanged. Resources up. 08 | scoreboard @matyo91
  10. Economics Cost without value COST / REQUEST COST / USEFUL

    RESULT Looks tiny on the invoice line Thanks → tends to ∞ Cheap useless work is not cheap. It is subsidized noise. 09 | cost @matyo91
  11. Bottleneck moves Supervision is scarce too Model concurrency Runtime concurrency

    Calls you can fire IPs in flight Human supervision Validation capacity Open contexts Reject / accept bandwidth Stop counting running tasks. Count decisions waiting. · SupervisionBudget 10 | supervision @matyo91
  12. thanks-agent:bench-io · synthetic I/O · PHP 8.5.4 Async is waiting

    efficiently sequential stream_select ~600 ms · value 130 ~167 ms · value 130 Flow StreamSelect PHP 8.6 Poll ~179 ms · value 130 skipped on 8.5.4 ~3.6× wall improvement. Same emptiness from Thanks. 11 | async @matyo91
  13. Editorial callback Polling is not value either A better poller

    can execute useless work faster. Performance amplifies whatever the system is optimizing. 12 | amplify @matyo91
  14. Slide 14 · 1/1 · représentation statique Terminal lifecycle The

    unhappy path must be billed Execute Success Failure Abandon CompleteEvent ErrorEvent Accounting hole CostLedger Happy-path-only FinOps lies. 13 | terminals Version interactive (mise en ligne à venir) : https://slides.darkwood.com/slides/thanks-agent @matyo91
  15. What changed in Flow Shipped · next PROMOTED ROADMAP CostLedger

    · ValueTag Complete / Error SupervisionBudget PollerInterface · Duration Cancel · abandon terminal True DAG joins Decision-queue metrics CodeMap · AgentRouter Value and cost belong in the runtime vocabulary. 14 | flow-delta @matyo91
  16. Closing We already know how to make agents run. The

    harder problem is deciding which work should exist at all. The next optimization is not another agent. It is a better definition of value. Activity → value @matyo91