Circle Research lance OOAK, une extension du SDK OpenAI Agents, qui permet aux développeurs de créer des agents orientés objet.

La dernière chose à faire est de faire confiance à un LLM (Large Language Model) avec une clé secrète et une invite « Gardez le secret, gardez-le en sécurité ». Lorsque nous codons des agents IA, nous devons protéger les secrets du LLM qui alimente l'agent. Au lieu de cela, nous donnons à l'agent l'accès à des outils qui exécutent des opérations à l'aide du secret. Par exemple, nous pouvons autoriser l'IA à exécuter une fonction qui envoie des jetons cryptographiques.

Circle Research présente CHÊNE: un kit d'agents orienté objet. Il vous permet de créer des outils d'agent qui peuvent accéder à l'état de l'agent (tels que des portefeuilles). OOAK est une simple extension du SDK OpenAI Agents qui s'intègre à votre code d'agent existant. Vous pouvez même transférer des tâches entre vos agents de fonctions statiques existants et les agents OOAK.
Le contexte mondial
Étonnamment, les SDK existants tels que le SDK OpenAI Agents limitent l'utilisation des agents fonctions statiques. Cela signifie que les outils ne peuvent pas accéder à l'état de l'agent pour obtenir le portefeuille (ou toute autre ressource). Au lieu de cela, les SDK permettent aux agents d'accéder à un objet global unique qui détient l'état nécessaire à tous les agents.
La solution typique consiste à faire du portefeuille Web3 l'objet global unique. C'est très pratique jusqu'à ce que vous ajoutiez un deuxième agent qui doit accéder à un portefeuille différent (éventuellement à partir d'un framework différent) et un troisième agent qui utilise ses informations d'identification pour accéder à votre base de données clients. Le développeur finit par avoir besoin d'un objet conteneur global pour contenir tous ces états.

Le modèle d'objet global unique n'est pas suffisamment évolutif dans les systèmes complexes. Chaque agent a accès aux objets de tous les autres agents. Il est possible que les espaces de noms se chevauchent, en particulier lorsque des agents conçus pour un système sont ajoutés à un autre.
La seule autre option pour permettre aux agents d'accéder à un objet avec état est d'exécuter un serveur MCP dans un processus distinct. Le serveur MCP enregistre l'état et l'agent se connecte au serveur MCP en tant qu'outil. La communication entre l'agent et le MCP s'effectue soit via HTTP, soit via le système de fichiers. Il s'agit d'une méthode inefficace pour créer un agent simple qui utilise des secrets locaux.
Présentation d'InstanceAgent et de @agent_tool
Nous avons créé une extension du SDK OpenAI Agents qui permet aux agents d'utiliser des méthodes d'instance comme outils.
Nous introduisons un nouveau décorateur appelé @agent_tool qui fonctionne avec les méthodes d'instance. Il détecte soi dans le cadre de la signature de la fonction. Au moment du chargement, le décorateur supprime le « self » et le remplace par un argument d'instance. L'initialiseur OOAK InstanceAgent lie tous les @agent_tools à lui-même.
Nous pouvons maintenant créer un WalletAgent en tant que sous-classe de l'InstanceAgent. OOAK s'assure que @agent_tools appelle le bon objet.
class WalletInstanceAgent(InstanceAgent):
def __init__(self, model: OpenAIChatCompletionsModel, wallet: Wallet:
self.wallet = wallet
agent_tools = [self.send_usdc]
super().__init__(name="Wallet Agent", instructions="I send USDC on the blockchain", model=model, tools=None, agent_tools=agent_tools)
@agent_tool
def send_usdc(self, receiver: str, amount: int):
return self.wallet.send_usdc(receiver, amount)
Le WalletInstanceAgent s'initialise avec sa méthode send_usdc, qui est marquée par le décorateur @agent_tool. N'importe quelle instance de l'agent de portefeuille peut ensuite envoyer l'USDC à l'aide de son portefeuille. Il peut y avoir plusieurs WalletInstanceAgents en cours d'exécution, chacun avec son propre portefeuille. D'autres agents ne savent rien de ces portefeuilles et gèrent leur propre État.
Conclusion
Nous vous invitons à essayer notre extension @agent_tool orientée objet pour le SDK OpenAI Agents sur notre github.
Dans notre post suivant nous verrons comment OOAK aide les développeurs à gérer les flux de travail des agents.
Remarque : Cet article décrit la technologie développée par Circle Research, une division de Circle engagée en faveur du bien public et des contributions open source pour repousser les limites de la technologie utilisée dans les domaines de la cryptographie, de la blockchain et du Web3. Ces projets ne représentent pas des logiciels ou des services achevés et publiés. Sauf indication contraire, le contenu publié par Circle Research est open source et peut être consulté, utilisé et développé par tous. En raison de leur nature expérimentale et émergente, les innovations de Circle Research sont proposées pour être testées et évaluées à la discrétion du développeur ou de l'entreprise.




