WIP: How To Train Your Agent blog post#361
Conversation
This comment has been minimized.
This comment has been minimized.
Signed-off-by: Han Verstraete (OpenFaaS Ltd) <han@openfaas.com>
aa7bc4b to
40dc4a6
Compare
AI Pull Request OverviewDisclaimer: This review was generated by automated AI and may contain errors. Do not trust its outputs without human verification. Summary
Approval rating (1-10)6/10. The content is well-structured and the examples are practical, but the Go handler contains a real correctness issue that readers may copy verbatim. Summary per fileSummary per file
Overall AssessmentThe post is well-written and the three examples cover a useful range of complexity. The framing — that agent skills give models the right context to avoid common OpenFaaS mistakes — is clear and the narrative follows through on that claim. The main concern is the Go handler snippet, which contains a correctness issue readers will likely replicate. The Python example has a minor inconsistency worth clarifying. Both are fixable in-place before publication. Detailed ReviewDetailed ReviewGo handler — partial DB open leaves the function permanently degraded
cityDB, err = geoip2.Open(filepath.Join(dir, "GeoLite2-City.mmdb"))
if err != nil {
initErr = err
log.Printf("ERROR opening GeoLite2-City.mmdb: %v", err)
return
}
asnDB, err = geoip2.Open(filepath.Join(dir, "GeoLite2-ASN.mmdb"))
if err != nil {
initErr = err
log.Printf("ERROR opening GeoLite2-ASN.mmdb: %v", err)
}If Since both databases are embedded in the image at build time, the failure scenario is uncommon in production, but the code will mislead readers about how to handle partial initialisation. The fix is either to treat the two databases as independent (check Python handler — search window vs. cron interval mismatch is unexplained
hits += search_hn(query="serverless", tags=tags, num_hours=24)The function is scheduled every 15 minutes but searches the last 24 hours on every invocation. This is safe because the database deduplicates hits, but the first invocation will attempt to post up to ~100 items (50 per Node.js handler — master key is read from disk on every invocation
Editorial — WIP titleThe PR title is "WIP: How To Train Your Agent blog post". The post reads as substantially complete; if there are specific sections still in progress, flagging them explicitly (e.g. with a TODO comment in the draft or a checklist item in the PR description) would help reviewers know what to focus on. AI agent details. |
Description
New blog post introducing OpenFaaS Agent Skills and the
openfaas-function-devskill, with three end-to-end examples.Motivation and Context
Share how agent skills help AI coding agents build OpenFaaS functions the idiomatic way.
Have you applied the editorial and style guide to your post?
See the README.md
How have you tested the instructions for any tutorial steps?
All three examples were built, run locally, and deployed to a live cluster.
Types of changes
Checklist:
git commit -s