Implement tool-using AI behavior with explicit model policy, bounded execution, and observable request flow.
- Prefer
Jido.AI.Actions.*andJido.AI.Agentover ad-hoc raw facade calls. - Keep model alias, timeout, retry, and request policy explicit.
- Use Zoi-first schemas for structured inputs/outputs and tool contracts.
- Treat
ask/awaitrequest handles as the safe concurrency boundary. - Keep provider-specific logic behind ReqLLM integration points.
- Define tools as
Jido.Actionmodules with small, deterministic behavior. - Compose strategy agents (
ReAct,CoD,CoT,AoT, etc.) by workload profile. - Route AI outputs into domain actions instead of embedding domain mutation in prompts.
- Add telemetry hooks for request, LLM, and tool lifecycle events.
- Cover tool-call loops, request cancellation/timeouts, and fallback behavior.
- Keep a stable smoke subset (
mix test.fast) plus fullmix qualitybefore release. - Validate public examples when strategy/runtime behavior changes.
- Prompt-only pipelines with no schema validation or execution policy.
- Hidden model/provider defaults in production-critical paths.
- Unbounded tool retries/timeouts.
README.mdguides/AGENTS.md- https://hexdocs.pm/jido_ai
- https://hexdocs.pm/req_llm
- https://hexdocs.pm/usage_rules/readme.html#usage-rules