Show HN: Nous – Open-Source Agent Framework with Autonomous, SWE Agents, WebUI (github.com)
It's a bit of CrewAI, OpenDevon, LangFuse/Cloud all in one, providing devs who prefer TypeScript an integrated framework thats provides a lot out of the box to start experimenting and building agents with.
It started after peeking at the LangChain docs a few times and never liking the example code. I began experimenting with automating a simple Jira request from the engineering team to add an index to one of our Google Spanner databases (for context I'm the DevOps/SRE lead for an AdTech company).
It incudes the tooling we're building out to automate processes from a DevOps/SRE perspective, which initially includes a configurable GitLab merge request AI reviewer.
The initial layer above Aider (https://aider.chat/) grew into coding agent and an autonomous agent with LLM-independent function calling with auto-generated function schemas.
And as testing via the CLI became unwieldy soon grew database persistence, tracing, a Web UI and human-in-the-loop functionality.
One of the more interesting additions is the new autonomous agent which generates Python code that can call the available functions. Using the pyodide library the tool objects are proxied into the Python scope and executed in a WebAssembly sandbox.
As its able to perform multiple calls and validation logic in a single control loop, it can reduce the cost and latency, getting the most out of the frontier LLMs calls with better reasoning.
Benchmark runners for the autonomous agent and coding benchmarks are in the works to get some numbers on the capabilities so far. I'm looking forward to getting back to implementing all the ideas around improving the code and autonomous agents from a metacognitive perspective after spending time on docs, refactorings and tidying up recently.
Check it out at https://github.com/trafficguard/nous
37 comments
[ 3.1 ms ] story [ 75.6 ms ] threadIf OP is not Nous Research (which I suspect to be the case) then a name change is a must as they're already a fairly well established company in the LLM space (surprised OP isn't aware of the name collision already). It's a bit similar to creating a new library with the "Smiling Face with Open Hands emoji"[0] as your logo
0. https://emojipedia.org/hugging-face
And this framework kinda does fall within that space
I see a bit of reuse of words in other various llm related projects.
Langchain/langfuse/langflow
Llama/ollama/llamaindex
so I hadn't been too worried about it when became aware of them.
That's what Show HN is for, getting feedback, and a name changed now would be easy before I post it around more.
A quick dip into Google Books throws back this from the works of George Garrett, a Liverpool-born working class writer who wrote about being a merchant seaman during World War I: "An older fireman stopped them. 'Use your nous,' he sang out. 'You can't pile into another room and waken all hands for the sake of an individual."
Or this from The Spectator in the 80s: "Use your nous, you silly cow"
https://www.quora.com/What-does-the-British-slang-word-nous-...
Just FYI your chosen name collides with Nous Research, which has been a prominent player in open weights AI the past year.
Maybe I should rewrite my app using Nous...
If you think you might want to feel free to get in touch
Initially the coding and software dev agents were called workflows, but to make it more agenty I was ok with it being called an agent if the result of an llm call affected the control flow
An LLM agent is not a chat bot, unlike an assistant. It is a primarily or fully autonomous LLM driven application which "chats" primarily with itself and/or other agents.
In other words, assistants primarily interact with humans while agents primarily interact with themselves and other agents.
I wanted to try this out (specifically the web UI), so I configured the env file, adjusted the docker compose file, ran `docker compose up` and it "just works".
It would be great if there was a basic agent example or two pre-configured, so you can set this up and instantly get a better sense of how everything works from a more hands-on perspective.
The CLI scripts under src/cli would be the best examples currently to have a look at for running an autonomous agent, and the fixed workflows (e.g code.ts)
Playing with the code agents do far I've found Aider to do many silly mistakes and revert its own changes in the next commit of the same task. On the other hand Plandex is more consistent but can get in a loop of splitting the take into way too small pieces and burning money. I'm interested to see other approaches coming up.
Then finally there's a review step which asks:
This helps catch issues that Aider inadvertently introduced, or missed.I have some ideas around implementing workflows that mimic what we do. For example if you have a tricky bug, add a .only to the relevant describe/it tests (or create tests if they dont exist) add lots of logging and assertions to pinpoint the fix required, then undo the .only and extra logging. Thats whats going to enable higher overall success rates, which you can see the progress in the SWE-bench lite leaderboard as simple RAG implementations had up to ~4% success rate with Opus, while the agentic solutions are reaching 43% pass rate on the full suite.
As for LLM costs that really depends what you're trying to do when it. Fortunately that cost is always coming down. When I was first building it with Claude Opus the costs did add up, but 100 days later we have 3.5 Sonnet at a fraction of the cost.
The Aider benchmarks are good to see how different LLMs perform for coding/patch generation. Sonnet 3.5 is best if it's in the budget. DeepSeek coder v2 gives the best bang for buck https://aider.chat/2024/07/25/new-models.html
https://aiagentsdirectory.com/