frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Tendril – a self-extending agent that builds and registers its own tools

https://github.com/serverless-dna/tendril
33•walmsles•2h ago

Comments

walmsles•2h ago
I built this while working on a coding agent that kept starting cold every session. The deeper problem was that agent frameworks give you what a tool does and how to call it, but no structured answer to when — when should a tool fire autonomously, and when should it stay silent. That judgement is always implicit, scattered across system prompts and tool descriptions.

Tendril is a reference implementation of what I'm calling the Agent Capability pattern. It starts with three bootstrap tools and builds everything else itself. The key constraint: there's no direct code execution. The agent can only run registered capabilities, so every task forces it to write a tool, define its invocation conditions, and register it for future sessions. The registry accumulates across sessions.

I also ran the self-extending loop against five local models — Qwen3-8B, Gemma 4, Mistral Small 3.1, Devstral Small 2, Salesforce xLAM-2. None passed.

The failure modes were distinct enough to be worth writing up separately: https://serverlessdna.com/strands/ai-agents/agents-know-what...

Stack: AWS Strands TypeScript SDK, Bedrock (Claude Sonnet), Deno sandbox, Tauri + React desktop shell.

esafak•1h ago
You can list the uses of the available tools in the AGENTS. I keep my agents on a tight leash, and self-extension runs counter to this. I would not my agent to spontaneously develop the ability to tap my bank account, for example.
dd8601fn•38m ago
I did something that sounds similar for my home assistant.

The agent never executes anything. It has like four tools… search, request execute, request build, request update.

The tool service runs vector search against the tools catalog.

The build generalizes the requested function and runs authoring with review steps, declaring needed credentials and network access.

The adversarial reviewer can reject back to the authoring three times.

After passing, the tool is registered and embeddings are done for search. It’s live for future use.

Credentials are stored encrypted, and only get injected by the tools catalog service during tool execution. The network resources are declared so tool function execution can be better sandboxed (it’s not, yet).

The agent never has access to credentials and cannot do anything without going through vetted functions in the tool service.

Agent, author process, reviewer, embedding… all can be different models running local or remote.

Event bus, agent, tool service… all separate containers.

I have an url if you want to read a bit about what I did: https://dcd.fyi/agent

It’s really just meant for me, but if you’re interested in more details on anything let me know. There’s nothing super special in it.

sockaddr•1h ago
So basically you've built a mechanism for a model to de-compress itself.
gavinray•1h ago
It's really cool to see that other people run into the same issues and arrive at the same conclusions/solution.

At $DAYJOB, we have an LLM-based tool and this issue of "how do we avoid burning tokens solving the same problems over again" was an early obstacle

We wound up building a very similar thing to what you call "tools" (we named them "Saved Programs").

There's a wiki the LLM searches before solving a problem, that links saved programs for past actions to their content entry.

If it finds one, it'll re-use it, otherwise it'll generate a program and offer to save it, if you think it'll be common enough.

afshinmeh•55m ago
> how do we avoid burning tokens solving the same problems over again

Letting the LLM write half baked tools is the recipe for burning more tokens.

> There's a wiki the LLM searches before solving a problem, that links saved programs for past actions to their content entry.

What's the criteria for marking an LLM written tool as useful/correct before publishing it?

gavinray•36m ago

  > Letting the LLM write half baked tools is the recipe for burning more tokens.
It sure is, if the tools are half-baked and your user scale is N=1 rather than N=100 or N=1,000

  > What's the criteria for marking an LLM written tool as useful/correct before publishing it?
It solves the problem the originating user asked it to
afshinmeh•29m ago
> It solves the problem the originating user asked it to

Interesting. And is there a mechanism to go back and "fix" the tools after they are published? What happens if the tool decided to use the "id" attribute to click on buttons and now you have a new website that follows a different pattern to find the right target?

I agree that "correctness" of a tool could have different meaning depending on the context of the problem though (e.g. would you consider OOM a correctness bug even if it addresses the user's ask?)

Edmond•27m ago
it's called workflow automation: https://blog.codesolvent.com/2025/12/workflow-automation-let...

Everyone is just taking a round about way to get there. The workflow/program as "tools" approach is the right one. Agents skills are more or less in that same direction.

nickstinemates•30m ago
We built something similar[1], including integrated memory for debugging. It is very useful to have repeatable artifacts left behind every time you use an agent to accomplish a task.

The main design decision we took was to integrate with your existing agent instead of building a new one. Your harness, swamp, and you're off.

As an aside, building software for agents is incredibly fun.

1: https://swamp.club

weitendorf•28m ago
Get outta my swamp! Just kidding, it’s cool to see other people working on this stuff.

I think right now this is still a bit too fresh out of Claude Code to be usable by anybody but the people developing it. I got to around the same point with my first tempt at building a tool registry (https://github.com/accretional/collector) and then realized I basically needed to start over with much more investment in supporting infrastructure to build the thing I really wanted.

I can go as far into the weeds as anybody would ever care to hear about this, but for the sake of brevity I’ll just say this: reflection and type systems over the network are pretty much the only way to get this stuff to work properly (I mean you could just go full MCP/Skills but then all you really have are giant blobs of markdown and unconstrained json that make integration/discovery/usability a nightmare, and require an agent in the loop to drive/integrate the tools when you really just need to give them the actual APIs and documentation). That ends up getting rather hairy, we ended up actually building a declarative meta-lexer/parser/transpiler (meta basically just meaning it’s generalized across languages and self-hosting/bootstrapped) recently (https://github.com/accretional/gluon) because it turns out building a cross-language distributed type system is rather difficult. But reflection alone gets you halfway there as far as benefits.

mtrifonov•23m ago
I like that you approach the question of "when" in regards to tool calls. I've become frustrated that most agent frameworks don't acknowledge it in their design philosophy.

WHEN is upstream of WHAT and HOW. You can have perfect tool descriptions and perfect call signatures, but if the model can't read the situation to know whether the moment calls for any tool at all, you get either over-firing (agent burns tokens trying to "help") or under-firing (agent waits to be addressed and acts like a chatbot, not an autonomous participant).

I have had a lot of success when I refrain from codifying WHEN as rules. "If X then fire tool Y" is a dumb heuristic with extra steps. Describe the conditions of the moment. What's been tried, what's converged, what state the work is in. Then let the model decide whether to act and which tool fits.

Rules get stale. Situation-reads generalize.

Reading the Tendril README, looks like the registration mechanic is solving a slightly different problem (the "too many tools" / context-bloat problem) by giving the agent three bootstrap tools and a growing registry. The WHEN itself still seems to be codified as rules in the system prompt ("BEFORE acting, call searchCapabilities; IF found, load and execute; IF NOT found, build yourself"). That's exactly the IF-X-THEN-Y pattern your framing seems to want to move past.

Curious whether you see the registry itself as the structured WHEN, or whether the rule-based system prompt is a starting point you intend to evolve toward something more situational.

Microsoft and OpenAI end their exclusive and revenue-sharing deal

https://www.bloomberg.com/news/articles/2026-04-27/microsoft-to-stop-sharing-revenue-with-main-ai...
213•helsinkiandrew•2h ago•193 comments

"Why not just use Lean?"

https://lawrencecpaulson.github.io//2026/04/23/Why_not_Lean.html
103•ibobev•1h ago•34 comments

The Woes of Sanitizing SVGs

https://muffin.ink/blog/scratch-svg-sanitization/
36•varun_ch•49m ago•7 comments

Show HN: OSS Agent I built topped the TerminalBench on Gemini-3-flash-preview

https://github.com/dirac-run/dirac
169•GodelNumbering•3h ago•63 comments

Pgbackrest is no longer being maintained

https://github.com/pgbackrest/pgbackrest
310•c0l0•5h ago•151 comments

Apple is dropping AFP/TimeCapsule support in macOS 27

https://eclecticlight.co/2026/04/23/networking-changes-coming-in-macos-27/
33•pvtmert•44m ago•21 comments

4TB of voice samples just stolen from 40k AI contractors at Mercor

https://app.oravys.com/blog/mercor-breach-2026
208•Oravys•6h ago•83 comments

Men who stare at walls

https://www.alexselimov.com/posts/men_who_stare_at_walls/
189•aselimov3•5h ago•94 comments

Fully Featured Audio DSP Firmware for the Raspberry Pi Pico

https://github.com/WeebLabs/DSPi
176•BoingBoomTschak•2d ago•35 comments

Tendril – a self-extending agent that builds and registers its own tools

https://github.com/serverless-dna/tendril
33•walmsles•2h ago•12 comments

FDA Approves First-Ever Gene Therapy for Treatment of Genetic Hearing Loss

https://www.fda.gov/news-events/press-announcements/fda-approves-first-ever-gene-therapy-treatmen...
103•JeanKage•6h ago•41 comments

Den stora Älgvandringen – The great moose migration (live)

https://www.svtplay.se/video/jXv3A5G/den-stora-algvandringen/idag-00-00
25•donjoe•2d ago•2 comments

US Supreme Court Reviews Police Use of Cell Location Data to Find Criminals

https://www.nytimes.com/2026/04/27/us/politics/supreme-court-cell-data-geofence.html
37•unethical_ban•50m ago•5 comments

Flipdiscs

https://flipdisc.io
452•skogstokig•4d ago•76 comments

Show HN: Utilyze – an open source GPU monitoring tool more accurate than nvtop

https://www.systalyze.com/utilyze
7•ManyaGhobadi•2h ago•0 comments

I bought Friendster for $30k – Here's what I'm doing with it

https://ca98am79.medium.com/i-bought-friendster-for-30k-heres-what-i-m-doing-with-it-d5e8ddb3991d
998•ca98am79•19h ago•522 comments

GitHub Copilot is moving to usage-based billing

https://github.blog/news-insights/company-news/github-copilot-is-moving-to-usage-based-billing/
37•frizlab•17m ago•7 comments

Managing the Unmanaged Switch

https://watchmysys.com/blog/2026/03/managing-the-unmanaged-switch/
19•luu•2d ago•3 comments

Running local LLMs offline on a ten-hour flight

https://deploy.live/blog/running-local-llms-offline-on-a-ten-hour-flight/
63•darccio•3h ago•43 comments

Dutch central bank ditches AWS and chooses Lidl for European Cloud

https://www.techzine.eu/news/infrastructure/140634/dutch-central-bank-chooses-lidl-for-european-c...
37•benterix•1h ago•20 comments

Quarkdown – Markdown with Superpowers

https://quarkdown.com/
126•amai•7h ago•20 comments

AI should elevate your thinking, not replace it

https://www.koshyjohn.com/blog/ai-should-elevate-your-thinking-not-replace-it/
728•koshyjohn•20h ago•515 comments

Understanding the short circuit in solid-state batteries

https://www.mpie.de/5151287/short-circuit-solid-state-batteries
27•hhs•1d ago•4 comments

Show HN: A terminal spreadsheet editor with Vim keybindings

https://github.com/garritfra/cell
47•garritfra•4h ago•22 comments

Getting my daily news from a dot matrix printer 2024

https://aschmelyun.com/blog/getting-my-daily-news-from-a-dot-matrix-printer/
59•xupybd•2d ago•9 comments

TurboQuant: A first-principles walkthrough

https://arkaung.github.io/interactive-turboquant/
252•kweezar•14h ago•54 comments

Self-updating screenshots

https://interblah.net/self-updating-screenshots
412•bjhess•1d ago•68 comments

The Prompt API

https://developer.chrome.com/docs/ai/prompt-api
224•gslin•14h ago•116 comments

Supreme Court to Hear Arguments in Landmark Roundup Weedkiller Case

https://www.nytimes.com/2026/04/26/climate/supreme-court-bayer-monsanto-roundup-glyphosate.html
13•mikhael•35m ago•2 comments

Canva apologizes after its AI tool replaces 'Palestine' in designs

https://www.theverge.com/ai-artificial-intelligence/919028/canva-magic-layers-ai-replacing-palestine
16•alex_suzuki•1h ago•1 comments