• bitcoinBitcoin(BTC)$81,689.001.52%
  • ethereumEthereum(ETH)$2,365.991.46%
  • tetherTether(USDT)$1.000.03%
  • binancecoinBNB(BNB)$749.360.14%
  • rippleXRP(XRP)$1.31-0.18%
  • usd-coinUSDC(USDC)$1.000.02%
  • solanaSolana(SOL)$102.591.59%
  • tronTRON(TRX)$0.3312320.16%
  • Figure HelocFigure Heloc(FIGR_HELOC)$1.040.51%
  • zcashZcash(ZEC)$1,356.246.45%
  • HyperliquidHyperliquid(HYPE)$93.9617.68%
  • dogecoinDogecoin(DOGE)$0.0805881.66%
  • moneroMonero(XMR)$602.850.04%
  • USDSUSDS(USDS)$1.000.03%
  • whitebitWhiteBIT Coin(WBT)$78.391.50%
  • chainlinkChainlink(LINK)$11.963.46%
  • leo-tokenLEO Token(LEO)$9.40-0.03%
  • cardanoCardano(ADA)$0.2062011.52%
  • nearNEAR Protocol(NEAR)$4.650.40%
  • stellarStellar(XLM)$0.1727191.31%
  • bitcoin-cashBitcoin Cash(BCH)$287.54-1.74%
  • uniswapUniswap(UNI)$7.404.35%
  • RainRain(RAIN)$0.006460-6.10%
  • daiDai(DAI)$1.000.01%
  • litecoinLitecoin(LTC)$58.590.41%
  • Ethena USDeEthena USDe(USDE)$1.000.01%
  • CantonCanton(CC)$0.1034033.47%
  • avalanche-2Avalanche(AVAX)$9.001.40%
  • suiSui(SUI)$0.952.90%
  • USD1USD1(USD1)$1.000.03%
  • the-open-networkGram (prev. Toncoin)(GRAM)$1.230.23%
  • hedera-hashgraphHedera(HBAR)$0.075228-0.88%
  • tether-goldTether Gold(XAUT)$4,018.98-0.40%
  • Global DollarGlobal Dollar(USDG)$1.000.02%
  • BittensorBittensor(TAO)$258.722.38%
  • shiba-inuShiba Inu(SHIB)$0.0000051.67%
  • paypal-usdPayPal USD(PYUSD)$1.000.03%
  • quant-networkQuant(QNT)$198.772.39%
  • EthenaEthena(ENA)$0.2139458.81%
  • crypto-com-chainCronos(CRO)$0.0539321.04%
  • Ripple USDRipple USD(RLUSD)$1.000.01%
  • BitwayBitway(BTW)$1.64-6.63%
  • MemeCoreMemeCore(M)$1.07-3.91%
  • okbOKB(OKB)$113.653.10%
  • Ondo US Dollar YieldOndo US Dollar Yield(USDY)$1.150.01%
  • Circle USYCCircle USYC(USYC)$1.140.01%
  • pepePepe(PEPE)$0.00000513.32%
  • BlackRock USD Institutional Digital Liquidity FundBlackRock USD Institutional Digital Liquidity Fund(BUIDL)$1.000.00%
  • aaveAave(AAVE)$136.973.23%
  • OndoOndo(ONDO)$0.4303462.57%
TradePoint.io
  • Main
  • AI & Technology
  • Stock Charts
  • Market & News
  • Business
  • Finance Tips
  • Trade Tube
  • Blog
  • Shop
No Result
View All Result
TradePoint.io
No Result
View All Result

Build a Hybrid-Memory Autonomous Agent with Modular Architecture and Tool Dispatch Using OpenAI

May 12, 2026
in AI & Technology
Reading Time: 3 mins read
A A
Build a Hybrid-Memory Autonomous Agent with Modular Architecture and Tool Dispatch Using OpenAI
ShareShareShareShareShare
class MemoryStoreTool(Tool):
   name = "memory_store"
   description = "Save an important fact or piece of information to long-term memory."


   def __init__(self, memory: MemoryBackend):
       self._mem = memory


   def run(self, text: str, category: str = "general") -> str:
       chunk_id = self._mem.store(text, {"category": category})
       return f"Stored as {chunk_id}."


   def schema(self) -> Dict:
       return {
           "type": "function",
           "function": {
               "name": self.name,
               "description": self.description,
               "parameters": {
                   "type": "object",
                   "properties": {
                       "text":     {"type": "string", "description": "The fact to remember."},
                       "category": {"type": "string", "description": "Category tag, e.g. 'user_pref', 'task', 'fact'."},
                   },
                   "required": ["text"],
               },
           },
       }




class MemorySearchTool(Tool):
   name = "memory_search"
   description = "Search long-term memory for information relevant to a query."


   def __init__(self, memory: MemoryBackend):
       self._mem = memory


   def run(self, query: str, top_k: int = 3) -> str:
       results = self._mem.search(query, top_k=top_k)
       if not results:
           return "No relevant memories found."
       lines = [f"[{r['id']}] (score={r['rrf_score']}) {r['text']}" for r in results]
       return "Relevant memories:\n" + "\n".join(lines)


   def schema(self) -> Dict:
       return {
           "type": "function",
           "function": {
               "name": self.name,
               "description": self.description,
               "parameters": {
                   "type": "object",
                   "properties": {
                       "query": {"type": "string", "description": "What to look for."},
                       "top_k": {"type": "integer", "description": "Max results (default 3)."},
                   },
                   "required": ["query"],
               },
           },
       }




class CalculatorTool(Tool):
   name = "calculator"
   description = "Evaluate a safe mathematical expression, e.g. '2 ** 10 + sqrt(144)'."


   def run(self, expression: str) -> str:
       allowed = {k: getattr(math, k) for k in dir(math) if not k.startswith("_")}
       allowed.update({"abs": abs, "round": round})
       try:
           result = eval(expression, {"__builtins__": {}}, allowed)
           return str(result)
       except Exception as exc:
           return f"Error: {exc}"


   def schema(self) -> Dict:
       return {
           "type": "function",
           "function": {
               "name": self.name,
               "description": self.description,
               "parameters": {
                   "type": "object",
                   "properties": {
                       "expression": {"type": "string", "description": "Math expression to evaluate."},
                   },
                   "required": ["expression"],
               },
           },
       }




class WebSnippetTool(Tool):
   name = "web_search"
   description = "Search the web for current information on a topic (simulated)."


   _KB = {
       "openai": "OpenAI is an AI safety company that develops the GPT family of models.",
       "rag": "Retrieval-Augmented Generation (RAG) combines a retrieval system with an LLM to ground answers in external documents.",
       "bm25": "BM25 (Best Match 25) is a probabilistic keyword ranking function used in search engines.",
   }


   def run(self, query: str) -> str:
       q = query.lower()
       for kw, snippet in self._KB.items():
           if kw in q:
               return f"Web snippet for '{query}': {snippet}"
       return f"No snippet found for '{query}'. (Mock tool — integrate a real search API here.)"


   def schema(self) -> Dict:
       return {
           "type": "function",
           "function": {
               "name": self.name,
               "description": self.description,
               "parameters": {
                   "type": "object",
                   "properties": {
                       "query": {"type": "string", "description": "Search query."},
                   },
                   "required": ["query"],
               },
           },
       }




@dataclass
class AgentPersona:
   name: str
   role: str
   traits: List[str]
   forbidden_phrases: List[str] = field(default_factory=list)
   goals: List[str] = field(default_factory=list)


   def compile_system_prompt(self, extra_context: str = "") -> str:
       lines = [
           f"You are {self.name}, {self.role}.",
           "",
           "## Core Traits",
           *[f"- {t}" for t in self.traits],
       ]
       if self.goals:
           lines += ["", "## Goals", *[f"- {g}" for g in self.goals]]
       if self.forbidden_phrases:
           lines += ["", "## Forbidden Phrases (never say these)", *[f"- \"{p}\"" for p in self.forbidden_phrases]]
       if extra_context:
           lines += ["", "## Live Context", extra_context]
       lines += [
           "",
           "## Behaviour",
           "- Always reason step-by-step before answering.",
           "- Use available tools proactively; never guess when you can look up.",
           "- After using memory_search, quote the retrieved ID in your answer.",
           "- Keep answers concise unless depth is explicitly requested.",
       ]
       return "\n".join(lines)




ARIA = AgentPersona(
   name="Aria",
   role="a precise, helpful research assistant with a hybrid memory system",
   traits=["Methodical", "Curious", "Transparent about uncertainty", "Concise"],
   goals=[
       "Remember and connect information across conversations",
       "Use tools whenever they can improve accuracy",
   ],
   forbidden_phrases=["I cannot", "As an AI language model"],
)


print("✅  Tools and AgentPersona ready.")

Credit: Source link

YOU MAY ALSO LIKE

DoorDash Acquires Instacart In $17 Billion Delivery Service Merger

Which Metric Should You Use? – Unite.AI

ShareTweetSendSharePin

Related Posts

DoorDash Acquires Instacart In  Billion Delivery Service Merger
AI & Technology

DoorDash Acquires Instacart In $17 Billion Delivery Service Merger

October 29, 2026
Which Metric Should You Use? – Unite.AI
AI & Technology

Which Metric Should You Use? – Unite.AI

October 29, 2026
Apple And Google Fined In South Korea Over App Store Violations
AI & Technology

Apple And Google Fined In South Korea Over App Store Violations

October 29, 2026
Hackers Leaked Details Of More Than 41,000 Homeland Security Personnel
AI & Technology

Hackers Leaked Details Of More Than 41,000 Homeland Security Personnel

October 29, 2026
Next Post
Why the ‘SpaceMob’ Is So Bullish on AST

Why the 'SpaceMob' Is So Bullish on AST

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Search

No Result
View All Result
Apple fanatics line up overnight for new foldable iPhone Duo, but stores sell out within hours

Apple fanatics line up overnight for new foldable iPhone Duo, but stores sell out within hours

October 23, 2026
Anthropic Investigates Elevated Errors Across Five Claude Models – Unite.AI

Anthropic Investigates Elevated Errors Across Five Claude Models – Unite.AI

October 25, 2026
Meet the Press Full Episode — October 18

Meet the Press Full Episode — October 18

October 23, 2026

About

Learn more

Our Services

Legal

Privacy Policy

Terms of Use

Bloggers

Learn more

Article Links

Contact

Advertise

Ask us anything

©2020- TradePoint.io - All rights reserved!

Tradepoint.io, being just a publishing and technology platform, is not a registered broker-dealer or investment adviser. So we do not provide investment advice. Rather, brokerage services are provided to clients of Tradepoint.io by independent SEC-registered broker-dealers and members of FINRA/SIPC. Every form of investing carries some risk and past performance is not a guarantee of future results. “Tradepoint.io“, “Instant Investing” and “My Trading Tools” are registered trademarks of Apperbuild, LLC.

This website is operated by Apperbuild, LLC. We have no link to any brokerage firm and we do not provide investment advice. Every information and resource we provide is solely for the education of our readers. © 2020 Apperbuild, LLC. All rights reserved.

No Result
View All Result
  • Main
  • AI & Technology
  • Stock Charts
  • Market & News
  • Business
  • Finance Tips
  • Trade Tube
  • Blog
  • Shop

© 2023 - TradePoint.io - All Rights Reserved!