4 ms·
Show HN: Agency – Unifying human, AI, and other computing systems, in Python
Hello hackernews! I'm excited to share a new open source python library I just released for creating AI agent-integrated systems.
The name is `agency`. It differs from other agent libraries, most importantly in that it's intended to address a distinct part of the overall problem, that of agent integration. It is not an agent toolchain like LangChain and others.
`agency` is a framework intended for safely integrating agents with computing systems and humans in a way that all parties can easily understand and communicate with each other.
I've spent a lot of time on the readme which contains a detailed and working walkthrough of building an agent integrated system that includes multiple types of agents, operating system integration, access control, and a flask+react based web application where users can appear as individual "agents" as well.
Also worth noting is that I _just_ pushed an update to integrate with the new functions support on the OpenAI API! (https://openai.com/blog/function-calling-and-other-api-updates https://openai.com/blog/function-calling-and-other-api-updat...)
I'm eager to hear what people think! I developed this in order to build a foundation for some of my own ambitious ideas. If you find this useful for your own projects I'd love to know!
Thanks for checking it out! I hope this helps you build amazing things!
- throwaway4aday 3y agoIt's great to see this kind of infrastructure work to integrate a variety of agents into whatever system you're building. Keep up the good work! I may crib some notes from this for use in non-Python projects.
- jasonwcfan 3y agoCool - if I'm understanding correctly it's basically an API between different classes of "agents"? One piece of feedback: the project sounds useful once I read into it a bit more but the headline is confusing since "unifying" can mean many different things.
- bbor 3y agoHmm in what sense did you think it was meant? Curious. To me it seemed pretty clear but I'm guessing I'm just naive to some corner of the industry.
- jasonwcfan 3y agoI had no idea what "unifying" meant at first. The best guess I can make is something that lets humans interact with AI and computer systems, which is super vague. Maybe I'm just to used to all the marketing speak out there where "unifying" has been co-opted to mean basically nothing. e.g. "We unify technology with human potential!"
- bbor 3y agoGood points. Perhaps “cooperate” is clearer? Or “Connecting”? Tho at a certain point we’ve gotta reclaim the fun academic terms from the MBAs!
- TechBro8615 3y agoI think what's missing from the title is "actor framework" - omitting it is kinda burying the lede, since the main idea seems to be fitting AI and human workflow orchestration into an actor framework, which is a well known paradigm with a name that immediately evokes the intent of the library.
- 0perand 3y agothank you for this feedback! I was considering something like that. I'm going to make some updates for clarity and mentioning the actor model approach more prominently will definitely be part of it.
- 0perand 3y agothanks for that feedback. If you guys saw my messaging just two weeks ago it was even more obtuse... I'll work on it some more :)
- bbor 3y agoAwesome stuff - this is the kind of high-level thinking I love to see. I think your "do one thing and do it well" focus is commendable, and the subjective choices you've taken to get there are all A+ to me. This isn't turning out to be a very useful comment but wanted to let you know that someone who's also thinking about abstract frameworks for agent ensembles thinks you're right on the money. A bit busy right now but will probably try to contribute if I can! I know very little about the low-level workings of Python and whatever the "GIL" is, but my single-process ensemble ended up using `AsyncIO` instead of `Thread` because of difficulty running a Flask server in a child thread; do you know if that would fix your CPU blocking concerns? Mostly asking so I know if I have the same problems and just haven't discovered them yet lol One very subjective opinion: The README is great but very long - I would consider putting either/both of the code samples from the bottom at the top, so someone experienced with the basic concepts can take a quick look and understand the gist immediately. Your language at the top is of course all accurate, but it's such an abstract project that even an accurate description leaves a lot of questions, IMO. P.S. I can't believe you got the github username "operand" that's sick
- 0perand 3y agothanks so much! I went to sleep and saw that this post actually blew up a bit :) I'm taking in all of this feedback. I hear you on the long readme. I'm thinking I'll break out the walkthrough into its own doc. Regarding the multithreading. It's something I have to still look into. I'm not sure that using asyncio will get around it.
- mcaledonensis 3y agoConsider methods of directing the conversation flow. Like {{guidance}} or nemoguardrails.
- monkeydust 3y agoCommend the investment in time on this and I will see if I can contribute. From a product lens it's great to see higher level thinking on how to incorporate agents. Feels like we're moving beyond the 'cool demos' phase now.
- Fiahil 3y agoLooks very nice and I adhere to the concepts quite a lot ! one thing you could add : tha ability to save messages sent throughout the Agency/system to a log. That would grant you instant replay ability.
- 0perand 3y ago100% The only reason I haven't yet is it just hasn't been important. Great first issue for a PR! ;)
- PeterStuer 3y agoYe old blackboard.
- deleted 3y ago[deleted]