vicentereig

Joined 15 years ago

Karma
27
Submissions
30
Member since
Dec 23
Fractional engineering lead. Apple, Atlassian, New Relic. I like the cathedral-builder's view.

hey at vicente.services https://vicente.services

View on Hacker News

Recent submissions

Comment · 5 months ago
It’s funny how many agentic things decompose into a DSPy RLM with specialized tools, although the tools here do the heavy lifting.
Comment · 9 months ago
Comment · 10 months ago
I appreciate your time checking it out! I've used and keep using DSPy a lot for work, and I felt I was missing a limb in my Rails-related projects. Let me know if you have any thoughts or feedback, every person has a different perspective and I always learn something new.
Comment · 10 months ago
Thanks for sharing your experience! I know there's many of us out there dabbling with LLMs and some solid businesess built on Ruby, lurking in the background without publishing much.

Your single-tool approach is a solid starting point. As it grows, you might hit context window limits and find the prompt getting unwieldy. Things like why is this prompt choking on 1.5MB of JSON coming from this other API/Tool?

When you look at systems like Codex CLI, they run at least four separate LLM subsystems: (1) the main agent prompt, (2) a summarizer model that watches the reasoning trace and produces user-facing updates like "Searching for test files...", (3) compaction and (4) a reviewer agent. Each one only sees the context it needs. Like a function with their inputs and outputs. Total tokens stay similar, but signal density per prompt goes up.

DSPy.rb[0] enables this pattern in Ruby: define typed Signatures for each concern, compose them as Modules/Prompting Techniques (simple predictor, CoT, ReAct, CodeAct, your own, ...), and let each maintain its own memory scope. Three articles that show this:

- "Ephemeral Memory Chat"[1] — the Two-Struct pattern (rich storage vs. lean prompt context) plus cost-based routing between cheap and expensive models.

- "Evaluator Loops"[2] — decompose generation from evaluation: a cheap model drafts, a smarter model critiques, each with its own focused signature.

- "Workflow Router"[3] — route requests to the right model based on complexity, only escalate to expensive LLMs when needed.

And since you're already using RubyLLM, the dspy-ruby_llm adapter lets you keep your provider setup while gaining the decomposition benefits.

Thanks for coming to my TED talk. Let me know if you need someone to bounce ideas off.

[0] https://github.com/vicentereig/dspy.rb

[1] https://oss.vicente.services/dspy.rb/blog/articles/ephemeral...

[2] https://oss.vicente.services/dspy.rb/blog/articles/evaluator...

[3] https://oss.vicente.services/dspy.rb/blog/articles/workflow-...

(edit: minor formatting)

Comment · 10 months ago
Comment · 10 months ago
Comment · 10 months ago
Comment · 10 months ago
You’re right they’re different models. The path would be Falcon + async-job-adapter-active_job. I am exploring eliminating worker processes, so jobs run as fibers in the same process, yielding during I/O.
Comment · 10 months ago
Comment · 10 months ago
Comment · 1 year ago
I work with DSPy in Python and felt it was missing in the Ruby ecosystem.

So I started https://github.com/vicentereig/dspy.rb: a composable, type-safe version built for Rubyists who want to design and optimize prompts, and reuse LLM pipelines without leaving their language of choice. Working with DSPy::Signatures reminds me a bit of designing a db schema with an ORM.

It’s still early, but it already lets you define structured modules, instrument them in Langfuse, wire them up like functional components, and experiment with signature optimization. All in plain Ruby.

Comment · 3 years ago
It's a _headless_ Content Management System. https://www.contentful.com/

They are useful in organizations where the people who author and publish the content aren't the same people who known how to code a website.

Comment · 3 years ago
Hey Bryan,

It'd be helpful if you could provide a couple of examples of that _boilerplate content_ looks like.

I led the team migrating to Contentful (CF) a hefty documentation website [1] from a homegrown CMS based on MDX. 600+ mdx articles, multiple GBs of media. This was about a year ago, so my knowledge might be outdated.

What worked for us was focusing our workflow as if CF were a database. I personally borrowed a bunch of concepts of how Rails' Active Record allows you, or your CI pipeline, to manage your database schema. Things like:

- have CF doing some gymnastics to keep track of migrations ran.

- supporting ephemeral CF environments so each developer could work without stepping on each others toes.

- promoting environments on PR merges

Being able to track changes in CF's schema through migrations, allowed us to build other useful stuff like:

- structuring articles in a way that the navigation under each section is not a pain to rebuild.

This might be what you mean when you talk about _boilerplate content_. Didn't find anything at the time, but it's possible that someone else has built a framework of sorts.

It took us a few weeks to prepare ours before working on actually migrating content. However, it supported our work along the way during the incremental and continuous migration we planned.

And then we were in a good spot to actually start migrating content. Transpiling the MDX to the JSON CF can ingest, uploading media assets, rewiring the UI (nextjs) to fetch contents from CF instead of the local MDX source.

Anyway, let me know if you want to bounce some ideas off. Contact details in my profile.

[1] https://tray.io/documentation/

Comment · 4 years ago
Long story, short: I don't keep track of them.

I felt the need to protect myself from these sources of FOMO.

When it is necessary to set up a group chat, I like them short-lived. You organize an event with friends. The event is over. I delete the chat for all. Sometimes I lack the ability to do so. So I just leave, usually leaving a see-you-soon note. You know, ruthlessly prioritizing where I am spending my attention, while not acting like a d*ck.

I keep less than a handful of evergreen group chats with family and close friends. All of them with notifications on mute. No read, played, delivered ticks as well. If I need confirmation I'll just call them on the phone!

I leave notifications on for a few folks like my dad. He can get my attention anytime, anywhere. A good old phone call will definitely catch my attention too.

In return, I get to spend real good quality time, when they are not around, with my partner, family, close friends, and acquaintances. And hopefully they do too. :)

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton