← All ivy-agents
IVYXSTUDIO · IVY AGENT
F

Feed Digest

ivy.agent.feed-digest · v1.0.0

ivyx

Fetches each RSS or Atom feed in a list, has a model write one line per item with its link, and saves the digest as a file.

Steps

In the order the agent's file lists them, each with where its inputs come from and the values the file fixes. A branch or a loop is a step too.

  1. 01
    Fetch each feed

    Runs RSS Fetch once for each item of urls from the agent's input.

    For each
  2. 02
    Write the digest

    Write a digest of these feed items in Markdown. For each feed write a '## ' heading with the feed's title. Under it write one line per item in exactly this form: - [item title](item link): a few words on what the item says. Every line must carry its item's link, copied from the item. Use every item and say only what the items say.

    takes
    context from step 1, results
    returns
    digest
    Model turn
  3. 03
    Write the digest
    ivy.node.file-write

    Writes text to a file, creating its folder, and returns the absolute path and the number of bytes written.

    takes
    text from step 2, output.digest
    set
    path reports/digest.md
    overwrite true
    returns
    path, bytes
    Ivy Node

Nodes it brings

Adding this agent in IVYX Studio adds these nodes with it. A node your workspace already has is kept as it is, even at another version.

What it touches

Collected from what each of its nodes declares, plus the model call when a step is a model turn. A declaration is the author's statement, and it is what policy rules select on.

Writes filesCalls a modelNetwork

Inputs

FieldTypeDescription
urlsrequiredarrayThe feeds to read.

Outputs

FieldTypeDescription
digeststringThe digest, one line per item.
pathstringThe file the digest was written to.
bytesintegerHow many bytes were written.

Tests

2 of 2 test cases passed on Oct 4, 2026, in the publisher's own environment, before this version was published. The registry keeps that record; it does not run the cases again.

Requires: python:3.9, a model core, the test feeds served on 127.0.0.1:18901 (python3 -m http.server in data/showcase/site)

  • two-feeds

    Two feeds: the digest carries an item from each.

    given
    urls ["http://127.0.0.1:18901/tech.xml","http://127.0.0.1:18901/biz.xml"]
    expects
    digest matches [Pp]ython[\s\S]*tech\.example/py[\s\S]*([Rr]etail|[Rr]ate)
    path matches reports/digest\.md$
    bytes is greater than 80
  • one-feed

    One feed gives a digest of that feed only.

    given
    urls ["http://127.0.0.1:18901/biz.xml"]
    expects
    digest matches [Rr]etail|[Rr]ate