• bitcoinBitcoin(BTC)$60,624.00-0.45%
  • ethereumEthereum(ETH)$1,554.47-2.66%
  • tetherTether(USDT)$1.000.01%
  • binancecoinBNB(BNB)$573.17-0.46%
  • usd-coinUSDC(USDC)$1.00-0.01%
  • rippleXRP(XRP)$1.09-1.63%
  • solanaSolana(SOL)$61.88-4.90%
  • tronTRON(TRX)$0.321196-0.26%
  • Figure HelocFigure Heloc(FIGR_HELOC)$1.03-0.28%
  • HyperliquidHyperliquid(HYPE)$57.33-1.71%
  • dogecoinDogecoin(DOGE)$0.080780-2.21%
  • USDSUSDS(USDS)$1.000.00%
  • leo-tokenLEO Token(LEO)$9.55-2.04%
  • RainRain(RAIN)$0.012859-2.70%
  • stellarStellar(XLM)$0.2081837.50%
  • CantonCanton(CC)$0.1566009.72%
  • zcashZcash(ZEC)$359.745.86%
  • cardanoCardano(ADA)$0.157822-2.17%
  • moneroMonero(XMR)$299.29-6.45%
  • chainlinkChainlink(LINK)$7.34-1.12%
  • whitebitWhiteBIT Coin(WBT)$43.23-0.29%
  • USD1USD1(USD1)$1.00-0.01%
  • Ethena USDeEthena USDe(USDE)$1.00-0.01%
  • bitcoin-cashBitcoin Cash(BCH)$214.51-1.75%
  • daiDai(DAI)$1.000.00%
  • the-open-networkToncoin(TON)$1.583.54%
  • MemeCoreMemeCore(M)$2.83-3.77%
  • hedera-hashgraphHedera(HBAR)$0.078272-2.51%
  • litecoinLitecoin(LTC)$42.03-3.82%
  • LABLAB(LAB)$9.20-7.01%
  • paypal-usdPayPal USD(PYUSD)$1.00-0.01%
  • avalanche-2Avalanche(AVAX)$6.63-5.62%
  • suiSui(SUI)$0.71-0.62%
  • Circle USYCCircle USYC(USYC)$1.130.00%
  • shiba-inuShiba Inu(SHIB)$0.000005-1.81%
  • tether-goldTether Gold(XAUT)$4,288.29-0.83%
  • crypto-com-chainCronos(CRO)$0.058330-0.25%
  • Global DollarGlobal Dollar(USDG)$1.000.03%
  • nearNEAR Protocol(NEAR)$1.87-5.63%
  • BlackRock USD Institutional Digital Liquidity FundBlackRock USD Institutional Digital Liquidity Fund(BUIDL)$1.000.00%
  • Ondo US Dollar YieldOndo US Dollar Yield(USDY)$1.131.47%
  • pax-goldPAX Gold(PAXG)$4,295.14-1.04%
  • BittensorBittensor(TAO)$194.45-0.61%
  • World Liberty FinancialWorld Liberty Financial(WLFI)$0.055725-2.29%
  • mantleMantle(MNT)$0.52-0.76%
  • Ripple USDRipple USD(RLUSD)$1.00-0.01%
  • AsterAster(ASTER)$0.620.15%
  • OndoOndo(ONDO)$0.324971-5.10%
  • polkadotPolkadot(DOT)$0.93-2.96%
  • HTX DAOHTX DAO(HTX)$0.000002-1.22%
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

YOU MAY ALSO LIKE

Has the AI Trade Run Too Far?

Astronomers Measure The Mass Of A Dormant Black Hole, Our Solar System’s Lost Protoplanet, And More Science Stories

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

ShareTweetSendSharePin

Related Posts

Has the AI Trade  Run Too Far?
AI & Technology

Has the AI Trade Run Too Far?

June 6, 2026
Astronomers Measure The Mass Of A Dormant Black Hole, Our Solar System’s Lost Protoplanet, And More Science Stories
AI & Technology

Astronomers Measure The Mass Of A Dormant Black Hole, Our Solar System’s Lost Protoplanet, And More Science Stories

June 6, 2026
Orbital Data Centers Face Space-Based Challenges
AI & Technology

Orbital Data Centers Face Space-Based Challenges

June 6, 2026
Apex Is the ‘Ford’ of Satellites, Says CEO
AI & Technology

Apex Is the ‘Ford’ of Satellites, Says CEO

June 6, 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
Berkshire Hathaway to Buy Taylor Morrison for .8 Billion – Bloomberg.com

Berkshire Hathaway to Buy Taylor Morrison for $6.8 Billion – Bloomberg.com

June 1, 2026
Videos of attacks on Christians reveal violence on the rise in Jerusalem

Videos of attacks on Christians reveal violence on the rise in Jerusalem

June 6, 2026
Massachusetts police search for Harvard, MIT intruder

Massachusetts police search for Harvard, MIT intruder

May 31, 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!