Skip to content

Tracker: clarify purity/effects boundary across Jido docs #248

@mikehostetler

Description

@mikehostetler

Summary

We have a recurring developer-experience confusion across the ecosystem around where the purity boundary actually lives.

The clearest canonical wording is:

Jido keeps agent decision logic pure. Actions may be pure or effectful. Directives are for effects you want the runtime to own.

jido should be the source of truth for that statement, and the sibling packages should echo it in package-appropriate ways.

Problem

Today the docs can be read in a few different ways:

  • cmd/2 is pure
  • directives describe runtime-owned effects
  • actions may perform side effects
  • signals/dispatch deliver emitted events

All of those are individually true, but the relationship between them is not stated plainly enough in one canonical place.

That leads to real developer confusion around questions like:

  • are actions supposed to be pure?
  • when is HTTP/I/O in run/2 acceptable?
  • when should something be a directive instead of an effectful action?
  • what exactly does Directive.Emit / dispatch own?

Proposed direction

Make jido the canonical home for the mental model:

Jido keeps agent decision logic pure. Actions may be pure or effectful. Directives are for effects you want the runtime to own.

Then reinforce it with a short decision rule:

  • if the step needs a result back now to continue reasoning or update state, an effectful action is acceptable
  • if the workflow has already decided on an outbound effect and wants the runtime/integration layer to own delivery, return a directive

Suggested jido touchpoints

  • README.md
  • guides/core-loop.md
  • guides/actions.md
  • guides/directives.md
  • lib/jido.ex moduledoc
  • lib/jido/agent.ex moduledoc

Ecosystem follow-ups

  • agentjido/jido_action: clarify action purity and I/O expectations in docs (agentjido/jido_action#138)
  • agentjido/jido_ai: clarify tool-action I/O vs runtime-owned effects in docs (agentjido/jido_ai#243)
  • agentjido/jido_signal: clarify dispatch's role in the docs relative to the wider effect boundary (agentjido/jido_signal#137)

Acceptance criteria

  • jido docs have one canonical explanation of the purity/effects boundary.
  • The README and core guides no longer imply that all side effects must be directives.
  • The docs explicitly distinguish:
    • pure agent/strategy decision logic
    • actions as reusable execution units that may be effectful
    • directives as runtime-owned effect descriptions
    • signals/dispatch as delivery infrastructure
  • The sibling package docs are linked/aligned from this canonical explanation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    parkedWorth keeping open, not worth acting on now

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions