Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Rivet – open-source AI Agent dev env with real-world applications (ironcladapp.com)
176 points by gogwilt on Sept 8, 2023 | hide | past | favorite | 30 comments
We just launched Rivet, the open-source visual AI programming environment! We built Rivet, because we were building complex AI Agent applications at Ironclad. It unlocked our abilities here, and we're excited to make available to the entire community.

Backstory: A few months ago, inspired by things like LangChain and LlamaIndex, we started building an AI agent that could work with legal contracts. Unfortunately, we couldn't just use retrieval augmented generation (RAG), because a lot of contracts are basically identical (many chunks with near-identical embeddings), except for a few key details. So, we turned to things like ReAct and AutoGPT for inspiration.

At first, things went great. We were adding agent capabilities, doing chain-of-thought prompting.

But then we hit a wall.

The agent became too complex. We had debugger breakpoints on almost every line of code, but we still had no idea where the agent was breaking. Every change we made destabilized something else. After two weeks of fumbling, I decided to end the project.

But one of my teammates, Andy, didn't give up.

The following week, he showed me v0 of Rivet. He'd used it to refactor and improve our existing agent. I was skeptical... it just seemed like a visual programming environment, and I was not a fan. But I gave it a shot, and suddenly found myself able to add new skills to the agent, debug brittle areas with ease, and update prompts with confidence.

Rivet is a game-changer. And more than that, it makes building with LLMs super fun.

What exactly makes it different?

First, the debugger is incredible. You have to experience it to believe it. You can update a graph, and then immediately run it, and see where it succeeded or failed. Even better: you can attach Rivet as a remote debugger, and watch your agent graphs execute in your app.

Second, visual programming is actually a game-changer for prompting LLMs. I don't know why exactly, but it's way easier to understand and organize your work when you have an extra dimension to work with.

Finally, Rivet is built to be embedded into a larger application (TypeScript for now, but we've also found a way to run it in Python). Beyond importing Rivet as a dependency, you can also define "external functions" dynamically at run-time. It feels pretty sketchy to give a LLM a key and unfettered access to an API. With Rivet, you can give it access to a specific set of defined functions, potentially pre-scoped to the access level you want.

...Sorry that was long. If you read this whole thing, thank you!

We're really excited to hear what you think! We just launched our first Rivet-based application at Ironclad, and we've been working with companies like Sourcegraph, Attentive, AssemblyAI, Bento, and Willow to make Rivet useful for others.




Nice app, and thank you for OSS!

Am I right, that the following 2 services solve the same product in a similar way: https://github.com/logspace-ai/langflow , https://github.com/FlowiseAI/Flowise ?

It's absolutely ok if the answer is "Yes", I think that in this hot market each product will find a place. And competition is also motivate :)

It would be also nice to add Rivet here: https://github.com/kyrolabs/awesome-langchain#low-code


Thanks!

Yes, I think Rivet, langflow, and flowise all came to the idea of visual programming for LLMs in parallel. I like to think it's a good sign that visual programming is a powerful paradigm here :)

I do think Rivet hits a pretty different use-case. Beyond being in the TypeScript ecosystem, Rivet's remote debugging and embedability are pretty unique, and super critical!


This is awesome! I've been looking for exactly this type of solution that gives a more intuitive (yet robust) ui and has node/typescript api (rivets node sdk is even better!).

Quick question, how does it know to choose plugins? I think you add a plugin node to the graph but are there ways in which you can describe what the plugin does so that an llm could dynamically choose amongst plugins? Or is this just building out a graph with nodes that explicitly choose amongst plugins via prompting?

Thanks so much for open sourcing this! Great work!

(also love that your docs authoring look to be assisted by llm's, so meta: https://rivet.ironcladapp.com/docs/api-reference/node/overvi...)


Thanks! Really glad to hear it, and excited to hear what you think!

Rivet doesn't have a built-in way of choosing between different ChatGPT plugins, so you have to explicitly build out the graph and choose via prompting. We published an example app that actually does this, although the "plugin choosing" part is intentionally simplistic: https://github.com/Ironclad/rivet-example

And yes... the docs and a decent amount of the code was heavily assisted by LLMs (all Andy, not me). Apparently if you look in the commit history, you can kind of see how Andy used Rivet to build Rivet!


Excited to give this a try! A visual environment seems like a natural fit for chained LLM calls.

Have you considered supporting OSS LLMs? Inference servers like LocalAI or vLLM expose APIs for various OSS models with OpenAI-compatible endpoints, so might not be much more work to integrate.


Thanks!

And yes, we'd love to support OSS LLMs. And we welcome contributions ;)

Rivet also has a plug-in system, and our friends at AssemblyAI were actually able to develop a plug-in for using their audio transcription and understanding AI models in Rivet!


We recently opensourced a similar platform for building workflows by chaining LLMs visually along with LocalAI support.

Check it out at https://github.com/trypromptly/LLMStack. Like you said, it was fairly easy to integrate LocalAI and is a great project.


Nice! Love this!


Super interesting. I haven’t seen much chain support tech for ts folk which is a hard requirement for more production applications.


Thanks! 100%. I think the TS support has also helped us innovate on the UX side of things much more quickly.


Awesome work Cai and Andy. Do you have advice on structuring functions for best results? (eg, is it a good idea to give my agent access to things like a calculator "in case it needs it" or be careful about spoon-feeding it the tools I think it needs)


Thanks!

I don't think it's a good idea to give an agent tools "just in case."

We've opted for giving our agents access to a few distinct, but powerful tools, and then trusting them to combine these tools in a strategic way. It's going well so far, but we are pretty careful to clearly explain the tools.

However, I've spoken to other teams that have opted for giving their agents tons of tools, and it sounds like that can work pretty well. But everything seems to take work and experimentation.


This is a game changer. I have implemented AI features recently, and it was a nightmare using code.

Visual programming is a perfect match for AI. And Rivet is very neat and polished. I will definitely use it to build the next AI feature

Thanks for sharing


Thank you! 100% with you on the nightmare using code.

We'd love your feedback when you get a chance to dig in! Building AI features is SUPER fun with Rivet!


Who do you think is the sweet spot user for Rivet? Anyone building any LLM app, or a certain kind (e.g. agents)? Is there a use case for which you'd advise against using Rivet?


I think it's people building tool-using agent applications.

We've been collaborating with several amazing teams over the past few months, who have been pushing Rivet in various ways. We used it for a chat interface at Ironclad, but we've seen companies like Bento and Willow integrate it with different UX paradigms.

The commonality seems to be that we are all integrating LLMs into an application, and want the LLM to somehow interact with that application (set up search filters, build a guide based on documentation).


Are there any real world projects which are open source using this? Would love to take a peek on how this looks like on something non trivial.


Unfortunately nothing beyond the example apps. We wanted to get an example with a full agentic loop together, but settled for the simpler chatbot.

We'd love suggestions here, actually. Can you think of a use-case that might be a good example to open-source? Preferably something that interacts with multiple APIs towards a specific purpose?


Looks interesting! Since it's already typescript, are there any plans for a web app in addition to desktop?


Thanks!

Actually, when running locally, you can open it in a web app. There's one catch, though: saving project files is pretty janky (it downloads the project file). I think basically everything else works pretty well, though!


figuring out how to iterate rapidly with our AI efforts was poking around in the dark until we got Rivet set up and could start to isolate variables. So this has been really exciting to see.


Thanks! Super impressed by your team's application of AI!


I love it! and so glad you guys made it open source. nice work!


Thanks @ryscheng!


I played around with Rivet and contributed to it. Great tool!


Yes! Thanks a ton for your contributions!


Very cool. Congrats on getting this launched @gogwilt!


Thanks Mike! Your advice and support has been super critical and motivating!


What's the target ICP - mid/late stage enterprises or startups/tinkerers?


Likely early to growth-stage start-ups!

That's at least what a lot of our early design partners and collaborators have been. Rivet slots in neatly to most modern TypeScript applications, and is pretty easy to adopt progressively.

(Also depends on your definition... I'd consider Ironclad a "growth-stage start-up," but I imagine others would say otherwise!)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: