Joep

Joep

Both apply i guess. From the read_me:

Our Definition of an Agent

An Agent is a system where LLMs or classical planning algorithms dynamically direct their own processes.

0
Post #11
mikehostetler

mikehostetler OP

The primitives share similarities with Oban - but the use-cases are different.

Agent techniques like “Chain of Thought” (Chain-of-Thought Prompting | Prompt Engineering Guide<!-- -->) string together several actions with an LLM’s response deciding which next-action to choose. This simulates human reasoning leading to higher-quality outputs.

Jido was tailored towards these use cases. But, as I explained above, as I worked through my own prompting pipelines, I got annoyed with LLM’s being slow an flaky. When I set out to build Jido, I wanted to ensure the building blocks didn’t make assumptions about LLM’s being involved, but also supported classical AI planning algorithms - a currently neglected sector of artificial intelligence research.

Think about video game NPC’s - the AI used to power them are most often things like Behavior trees or Zipper trees.

Elixir has a solid base of these algorithms available as Hex packages now and there was even a talk at ElixirConf about them in 2018

A lot of the latest AI research focus has gone towards LLM’s lately, but I find algorithms like behavior trees to be more practical in the real-world because they are more reliable in several ways.

Really appreciate the questions here- I’m adding clarifications to the README along the way to hopefully answer some of these questions for others in the future.

5
Post #12
dimitarvp

dimitarvp

That helps, thank you.

Another question: can this library be used without LLM agents at all? Or anything AI-related? From what I quickly gleaned it seems that it can be used similarly to how are Oban / Flow used?

0
Post #13
mikehostetler

mikehostetler OP

Correct - the foundational library can be used without LLM’s. During planning, I felt it was important to simplify down to the base data structures and interaction patterns - get those correct - and then build LLM interaction patterns on top of that.

You can see an initial implementation of a Jido.Action that calls an LLM in the jido_ai package here: https://github.com/agentjido/jido_ai/blob/main/lib/examples/politician.ex

This example uses instructor_ex - but langchain or any other Elixir AI package could easily be integrated for an LLM response.

Yes, exactly - or even Broadway. This problem space of data transformation pipelines has a lot of solutions.

Each solution has it’s strengths. I love and have used each of these tools many times.

Jido won’t be the best at raw throughput as it does not use GenStage - like Broadway or Flow. Jido does not assume a database, if you need a database backed Job Processing system, you should use Oban.

Jido is aimed at the space where a particular agent (or queue?) is built to facilitate a wide variety of output - because a LLM is typically involved. Low throughput, high variety.

Where the Agent space gets crazy-weird is when you let the LLM pick the next action. It’s not random … but it’s not idempotent either. Jido agents natively support a list of “allowed” actions (Agents — Jido v2.3.2) for this reason - it provides a small level of control over this use case.

I purpose built Directives to help provide some control over these advanced use cases.

This space evolves weekly - and I’m constantly learning and evolving my thinking here as well.

6
Post #14
sleipnir

sleipnir

Your project has many similarities with my spawn project. It would be nice to exchange ideas about our projects.

0
Post #15
apoorvaeternity

apoorvaeternity

Thankyou for making this. Is there a way to make it work with local ollama installation?

1
Post #16
mikehostetler

mikehostetler OP

Yep, just make an action for it like I did for instructor_ex in jido_ai

Happy to accept a PR for this!

https://github.com/agentjido/jido_ai/blob/main/lib/jido_ai/anthropic.ex#L6

0
Post #17
apoorvaeternity

apoorvaeternity

Perfect - I will try and test it out and then send a PR your way.

1
Post #18
kamaroly

kamaroly

Congrats on the release of Jido. Just skimmed through the docs. Looks interesting. I will spare time to try it out.

1
Post #19
bgoosman

bgoosman

The links under Next Steps return 404. https://github.com/agentjido/jido/blob/main/guides/getting-started.md

1
Post #20