Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .doctor.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
%Doctor.Config{
ignore_modules: [
# These modules use macros that generate code inside quote blocks.
# Doctor incorrectly counts def statements inside quote as module functions.
Jido.Agent,
Jido.Skill
],
ignore_paths: [],
min_module_doc_coverage: 100,
min_module_spec_coverage: 100,
min_overall_doc_coverage: 100,
min_overall_moduledoc_coverage: 100,
min_overall_spec_coverage: 100,
exception_moduledoc_required: true,
raise: false,
reporter: Doctor.Reporters.Full,
struct_type_spec_required: true,
umbrella: false
}
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ Jido is the core package of the Jido ecosystem. The ecosystem is built around th
| [jido_signal](https://github.com/agentjido/jido_signal) | CloudEvents-based message envelope and supporting utilities for routing and pub/sub messaging |
| [jido](https://github.com/agentjido/jido) | Core agent framework with state management, directives, and runtime |
| [jido_ai](https://github.com/agentjido/jido_ai) | AI/LLM integration for agents |
| [jido_coder](https://github.com/agentjido/jido_coder) | AI coding agent with file operations, git integration, and test execution |

For demos and examples of what you can build with the Jido Ecosystem, see [https://agentjido.xyz](https://agentjido.xyz).

Expand Down Expand Up @@ -273,11 +272,13 @@ State operations are internal state transitions handled by the strategy layer du
- [Signals & Routing](guides/signals.md) - Signal-based communication
- [Agent Directives](guides/directives.md) - Effect descriptions for the runtime
- [Runtime and AgentServer](guides/runtime.md) - Process-based agent execution
- [Persistence & Storage](guides/storage.md) - Hibernate, thaw, and InstanceManager lifecycle
- [Skills](guides/skills.md) - Composable capability bundles
- [Strategies](guides/strategies.md) - Execution strategies (Direct, FSM)

**Advanced:**
- [FSM Strategy Deep Dive](guides/fsm-strategy.livemd) - State machine workflows
- [Worker Pools](guides/worker-pools.md) - Pre-warmed agent pools for throughput
- [Testing Agents](guides/testing.md) - Testing patterns and best practices

**API Reference:** [hexdocs.pm/jido](https://hexdocs.pm/jido)
Expand Down
18 changes: 11 additions & 7 deletions guides/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,19 +136,21 @@ config :my_app, MyApp.Jido,

```elixir
# Simple call - handles checkout/checkin automatically
{:ok, result} = Jido.AgentPool.call(MyApp.Jido, :fast_search, signal)
{:ok, result} = Jido.Agent.WorkerPool.call(MyApp.Jido, :fast_search, signal)

# Transaction-style for multiple operations
Jido.AgentPool.with_agent(MyApp.Jido, :fast_search, fn pid ->
Jido.Agent.WorkerPool.with_agent(MyApp.Jido, :fast_search, fn pid ->
Jido.AgentServer.call(pid, signal1)
Jido.AgentServer.call(pid, signal2)
end)

# Check pool status
status = Jido.AgentPool.status(MyApp.Jido, :fast_search)
status = Jido.Agent.WorkerPool.status(MyApp.Jido, :fast_search)
# => %{state: :ready, available: 5, overflow: 0, checked_out: 3}
```

See [Worker Pools](worker-pools.md) for detailed pool configuration and usage patterns.

### Pool State Semantics

Pooled agents are **long-lived stateful workers**. State persists across checkouts unless the agent crashes. Design your agent to accept request-specific data via signals rather than storing it in agent state if you need per-request isolation.
Expand All @@ -164,7 +166,7 @@ Configure timeouts based on your workload:
Jido.AgentServer.call(pid, signal, 10_000)

# Pool checkout timeout
Jido.AgentPool.call(MyApp.Jido, :pool, signal, timeout: 10_000)
Jido.Agent.WorkerPool.call(MyApp.Jido, :pool, signal, timeout: 10_000)
```

### Graceful Shutdown
Expand Down Expand Up @@ -304,6 +306,8 @@ See [Testing](testing.md) for more patterns.

## Related

- [Runtime](runtime.md) - AgentServer and process-based execution
- [Testing](testing.md) - Testing patterns and best practices
- [Strategies](strategies.md) - Execution strategies configuration
- [Persistence & Storage](storage.md) — Hibernate/thaw and InstanceManager lifecycle
- [Worker Pools](worker-pools.md) — Pre-warmed agent pools for throughput
- [Runtime](runtime.md) — AgentServer and process-based execution
- [Testing](testing.md) — Testing patterns and best practices
- [Strategies](strategies.md) — Execution strategies configuration
Loading