Skip to content

What to do about Req LLM #122

Description

@olivermt

Code of Conduct

  • I agree to follow this project's Code of Conduct

AI Policy

  • I agree to follow this project's AI Policy, or I agree that AI was not used while creating this issue.

Is your feature request related to a problem? Please describe.

So this issue is meant mostly as a discussion on what (if anything) to do with Req LLM.

First of all for those who havent read the announcement: https://agentjido.xyz/blog/introducing-req_llm

The gist of it is that Mike Hosteler the Jido author made a Req extension that lets you talk to most of the vendors out there with most of the released models in the supported set.

This is great for a lot of reasons, but mostly it lets me easily do middleware in my agent calls tracking things like rate limits, token counts and whatnot. It is also a lot easier to write tests (I don't even know how to test with LangChain tbf) as you can just use the standard Req.Test facilities which is golden when trying to make resilient systems for malformed tool calls etc.

Either way:

My initial thought was: Great! Lets make an adapter in AshAi so we can use ReqLLM or LangChain as a config option. When I started to dig in tho, I realized that LangChain is fairly embedded into the codebase and there is also seems to be overlap with some of the work ReqLLM does around tool calls etc.

This made me a bit unsure about what the best path forward here is. Considering how intertwined some of the code is with LangChain I wonder if an adapter is more work than I suspected.

Am I overestimating the effort needed to adapterize this?
Is it a better path to explore ash_req_llm that is basically ReqLLM + the dsl parts of AshAi? (So you can do tool _list: [Resource1.tool_name, Resource2.other_tool_name])

I am leaning a little towards the latter just because it is a very quick way to easily get to use ReqLLM with ash resources in the same ergonomic way as we can with AshAI, but I am also vary of "there are now N+1 competing frameworks" XKCD style so I figured I'd open a discussion issue to get some perspectives.

Describe the solution you'd like

See above

Describe alternatives you've considered

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions