Jido core
Agent Skills documentation and examples for the Jido ecosystem
npx -y skills add agentjido/jido-skills --skill jido-coreAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Jido ecosystem overview, conventions, and foundational patterns. Load this skill when working with any Jido package. Covers the ecosystem map, Elixir/OTP conventions, project structure, and core design principles. Use when asked about Jido, building agents, or working in a Jido-based project.
The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
4.6 KB, as published. Nobody here has run it
Jido Core
Foundational skill for the Jido agent framework ecosystem.
Jido Ecosystem
| Package | Purpose | Key macro/module |
|---|---|---|
| jido (core) | Agent framework | use Jido.Agent, cmd/2, directives, plugins, AgentServer |
| jido_action | Composable validated actions | use Jido.Action, schema, run/2 |
| jido_signal | CloudEvents-based signals and routing | Jido.Signal, Jido.Signal.Router |
| jido_ai | AI/LLM integration for agents | Jido.AI, tool-calling, prompt chains |
| req_llm | HTTP client for LLM APIs | Anthropic, OpenAI, Google, Ollama |
Core Design Principles
- Agents are immutable data structures — plain structs, no hidden state.
cmd/2is the single entry point — actions in → updated agent + directives out.- State changes are pure data transformations — actions receive params, return maps.
- Side effects are directives — typed descriptions executed by the runtime, never inline.
- Built on OTP — agents run as GenServer processes (
AgentServer) in production.
Project Structure Convention
my_app/
├── lib/my_app/
│ ├── agents/ # Agent modules (use Jido.Agent)
│ ├── actions/ # Action modules (use Jido.Action)
│ ├── plugins/ # Plugin modules extending agents
│ └── sensors/ # Sensor modules for external input
├── test/
├── config/
├── mix.exs
└── AGENTS.md
Elixir/OTP Conventions for Jido
- Always
use Jido.Agentwithname,description, andschema. - Define
signal_routesfor runtime signal handling inAgentServer. - Keep actions pure — side effects belong in directives.
- Use NimbleOptions schemas for all validation.
- Follow standard Elixir naming:
PascalCasemodules,snake_casefunctions. - Run
mix testandmix qualitybefore committing. - Prefer
@moduledocand@docon all public modules and functions.
Key Types
| Type | Description |
|---|---|
Jido.Agent.t() | The agent struct — immutable, holds state and metadata |
Jido.Instruction.t() | Action + params tuple passed to cmd/2 |
Jido.Signal.t() | CloudEvents envelope carrying event data |
Directive Types
| Directive | Effect |
|---|---|
Emit | Dispatch a signal to the bus |
Spawn | Spawn a BEAM child process |
SpawnAgent | Spawn a child Jido agent |
StopChild | Stop a tracked child process |
Schedule | Send a delayed message |
Stop | Stop the agent process |
Quick Example
defmodule MyApp.Agents.Counter do
use Jido.Agent,
name: "counter",
description: "A simple counter agent",
schema: [
count: [type: :integer, default: 0]
],
actions: [MyApp.Actions.Increment]
signal_routes do
on "counter.increment", do: act(MyApp.Actions.Increment)
end
end
defmodule MyApp.Actions.Increment do
use Jido.Action,
name: "increment",
description: "Increment the counter by a given amount",
schema: [
amount: [type: :integer, default: 1]
]
@impl true
def run(params, context) do
current = context.state.count
{:ok, %{count: current + params.amount}}
end
end
# Usage
{:ok, agent} = Counter.new()
{agent, directives} = Counter.cmd(agent, {Increment, %{amount: 5}})
agent.state.count
#=> 5
Available Reference Docs
For deeper information, read these files:
reference/agents.md— Agent definition, schema,cmd/2, plugins,AgentServerreference/actions.md— Action behaviour,run/2, schema validation, compositionreference/directives.md— Directive types, runtime processing, custom directives
Workflow
When working in a Jido project:
- Identify the package — which Jido library is involved?
- Check the agent — read the agent module for schema and actions.
- Trace through
cmd/2— follow action → state update → directives. - Run tests —
mix testfor correctness,mix qualityfor lint/format/dialyzer. - Load deeper skills — load package-specific skills (jido-actions, jido-signals, jido-ai) as needed.