Skip to content

Add AI agent example (LangGraph + Vertex AI Gemini) - #393

Open
thibauult wants to merge 5 commits into
finos:mainfrom
thibauult:feature/ai-agent-example
Open

Add AI agent example (LangGraph + Vertex AI Gemini)#393
thibauult wants to merge 5 commits into
finos:mainfrom
thibauult:feature/ai-agent-example

Conversation

@thibauult

Copy link
Copy Markdown
Member

Summary

  • Add examples/ai_agent/ wiring a LangGraph ReAct agent (Vertex AI Gemini) into a Symphony bot, mirroring the Java BDK's bdk-ai-agent-example
  • BDK-backed tools: user lookup, room member listing, send message to stream
  • Per-conversation in-memory checkpointing keyed by (stream_id, user_id)
  • OpenSpec proposal/design/spec artifacts and opsx commands/skills used to author the change

Test plan

  • Ran the bot locally against a real Symphony bot config with GCP_PROJECT_ID/GCP_LOCATION=global/GEMINI_MODEL_NAME=gemini-2.5-flash-lite
  • Sent @BotMention messages, confirmed datafeed dispatch and tool invocation (user lookup, room members)
  • Fixed a bug in list_current_room_members (MembershipList wraps members in .value, not directly iterable)

…ony bot

Mirrors the Java BDK's bdk-ai-agent-example: any message addressed to the bot
is forwarded to a LangGraph ReAct agent backed by Gemini, with BDK-backed
tools for user lookup, room member listing, and sending messages.
Harden workflows against supply-chain tag mutation by pinning actions to
SHAs, bump cryptography to >=48.0.1 for a CVE fix, allow BSD-3-Clause
license, and add a documented safety-policy exception for CVE 96886
(fix requires urllib3 2.7.0 which drops Python 3.9 support).
Semgrep flagged mutable actions/upload-artifact@v4 tag; safety flagged
aiohttp 3.13.5 CVEs because cve-scanning-python.yml was missing the -i
ignore flags already present in security.yml for py3.9-only findings.
…ample

# Conflicts:
#	poetry.lock
#	pyproject.toml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants