6 ms·
Chidori – Declarative framework for AI agents (Rust, Python, and Node.js)
- josh-payne 3y agoDude this is so cool. Reliable agents are freakin hard to build, excited to try this out
- gailees 3y ago[flagged]
- josh-payne 3y agoIt's got JS and python too
- josh-payne 3y agoAlso, even if it didn't have it you could use GPT-Migrate (shameless plug) https://github.com/0xpayne/gpt-migrate https://github.com/0xpayne/gpt-migrate
- matjet 3y agoIs this a sarcastic joke, or is it a serious comment? I honestly cannot tell.
- txtsd 3y agoYes. Poe's Law.
- transitivebs 3y agoFriend of mine just open sourced his agent framework. It's written in Rust and supports some cool features like time-travel debugging, embedded code interpreter (Deno + Starlark), human-in-the-loop, and agent evals. Sharing here cause he's an introvert :) Would love to hear what the HN community thinks!
- jauntywundrkind 3y agoSmaller target, but https://news.ycombinator.com/item?id=36854102 https://news.ycombinator.com/item?id=36854102 https://github.com/e2b-dev/agent-protocol https://github.com/e2b-dev/agent-protocol "Agent Protocol" was submitted yesterday, & reminds me of this a little. This is definitely a bigger, more overarching thing.
- kveykva 3y agoI like the idea of the agent-protocol they define, I do feel that long term there might be a common interface for agent <-> agent or user <-> agent communication.
- mlejva 3y agoHey, CEO of e2b here (the ones currently pushing the protocol). Congrats to the launch of Chidori! Great work! > I do feel that long term there might be a common interface for agent <-> agent or user <-> agent communication. Definitely! We're just starting really small so we don't build the wrong thing and abstraction. We'd would love to hear your thoughts and feedback on the direction of the protocol. And how the protocol could help Chidori and your users. Essentially, how we can get it to more agent devs and make it useful for them. Would you be up for a chat? I'm @mlejva on Twitter
- OwenCR 3y agoThis is great, I had been wanting a framework like SAM or Serverless for Lambda functions but for running LLM apps.
- smasher164 3y agoI love the Naruto reference.
- kveykva 3y agoHello! I'm the author. If anyone has questions or feedback I'd really appreciate it!
- surge 3y agoYou stole the name from Naruto...didn't you? Which is fine. It's been what, over 15 years since the episode/manga with that technique debuted? I guess I shouldn't be surprised someone young who watched it grew up and made a thing.
- kveykva 3y agoIt's definitely a reference to it! It also broadly does mean thousand birds.
- mepian 3y agoI don't know much about Naruto so initially I thought it could be a Persona 3 reference.
- chirau 3y agoInterestingly, in the Shona language it means 'puppet' which I found very appropriate as it is a functional framework which you have behave in whatever way you want. This was my primary assumption re nomenclature
- bewresu 3y agoAh, nostalgia. Someone better make another called Rasengan.
- matjet 3y agoLore dump: This is not a coincidence, as the characters themselves refer to the chidori being named due to sounding like thousands of birds. The alternate name used by kakashi, raikiri, is related to https://en.wikipedia.org/wiki/Tachibana_D%C5%8Dsetsu https://en.wikipedia.org/wiki/Tachibana_D%C5%8Dsetsu
- 3y ago
- snthpy 3y agoThis looks very cool! I'm most interested in the reactive runtime though and like the temporal.io and Timely Dataflow references. Is it possible to just have access to that in Rust and leave out the agent bits?
- kveykva 3y agoYou could build a system that never invoked prompt nodes, and I think that would be equivalent! Re: timely dataflow, there are only hints of that in there right now - but I intend to expand on it.
- jxyxfinite 3y agoCan this be integrated with local LLMs or does it only support openAI?
- kveykva 3y agoCurrently it only supports openAI. I'm looking into patterns for supporting local LLMs! I think the best approach for that might be to allow you to update the api endpoint to your own and assume you're using something that mirrors the structure of their API. The main escape hatch for everything right now are custom nodes though. But then you'll need to bring your own templating pattern.
- unshavedyak 3y agoAh, yea i definitely need local-only support. My goal is to build a single binary, local only command<->LLM interface. Chidori looks to overlap with that significantly, but of course i'd need custom LLM resolution.
- hgomersall 3y agoAs someone that might well be interested in using this (as in someone that is likely to make use of better tooling around LLMs), I'm really struggling to understand what it does. Can anyone provide a summary of what an agent is in this context and an example of why this library makes things better?
- kveykva 3y agoIn what I think of as engineering terms: an agent is a long running service that invokes LLMs during its execution. In contrast to an LLM driven application where the primary function is synchronous with the end user (like chatGPT). There's a blurry line there but that's how I think about it. AutoGPT and BabyAGI are probably the two most well known examples so far. A significant struggle when building these types of applications is understanding and debugging behavior many execution steps deep. This tries to assist with that by giving a framework for structuring the way your agent runs. Maybe a similar concept is breaking out a web application into services, or individual route handlers, rather than implementing everything as one massive loop that responds to events.
- hgomersall 3y agoSo essentially a long running process that responds to events etc. So my understanding is now: when stuff happens, say a database gets updated, or a timer triggers, the agent wrangles the data and passes it to OpenAI for some LLM heavy lifting, then wrangles what is returned somehow. Is that correct?
- kveykva 3y agoThat is correct
- gerad 3y agoYeah, but the value they provide IMO (or promise to, it’s only promised in the readme, not shown) is the observability. Creating one of these event driven systems is somewhat trivial. Node has event emitter built in for example. Being able to monitor, debug, scale it and ensure it’s robust to failure is much harder. In that respect it sounds kinda like tray.io. [1] 1: https://youtu.be/g_2HNv8HZcA https://youtu.be/g_2HNv8HZcA
- veaxvoid 3y agocan’t wait for Rasengan and Sharingan frameworks
- kveykva 3y agoThe temptation to call something related to the replay functionality Sharingan is pretty strong now that I've used this name haha.
- transitivebs 3y agoMangekyō
- ksec 3y agoWhile people think this has something to do with Naruto. I would like to think it is some sort of future AI "Black technology" from Whispered. ( Yes, Chidori has a lot of other usage in Japanese )
- alex_lav 3y agoRequires OpenAI API key. It feels like this is becoming too prominent.
- jensneuse 3y agoI've built something similar with a focus on returning structured data from the Agent and making it simple to expose an Agent as an OpenAPI. If that sounds interesting, I've wrote up some details here: https://wundergraph.com/blog/beyond_functions_seamlessly_build_ai_enhanced_apis_with_openai https://wundergraph.com/blog/beyond_functions_seamlessly_bui...
- unshavedyak 3y agoWell.. i'll be damned. I've been wanting to toy with LLMs on a local-only and simple "command<->LLM glue" style development. If i understand this project right.. it looks like Chidori implements most of the foundational stuff i wanted to do. Notably defining commands (nodes in this, i think?), monitoring node IO and LLM IO, etc. Looks like i'll need to give this a try. Awesome! edit: My goal is single binary local-only install though, so sounds like Chidori struggles here due to OpenAI required. Unfortunate for now