Hi 大家好

在本文中,我讲介绍我的应用 iris-AgenticAI .

代理式人工智能的兴起标志着人工智能与世界互动方式的变革性飞跃--从静态响应转变为动态、目标驱动的问题解决方式。参看 OpenAI’s Agentic SDK , OpenAI Agents SDK使您能够在一个轻量级、易用且抽象程度极低的软件包中构建代理人工智能应用程序。它是我们之前的代理实验 Swarm 的生产就绪升级版。

该应用展示了下一代自主人工智能系统,这些系统能够进行推理、协作,并以类似人类的适应能力执行复杂任务。

应用功能

  • Agent Loop 🔄 一个内置循环,可自主管理工具的执行,将结果发回 LLM,并迭代直至任务完成。
  • Python-First 🐍 利用本地 Python 语法(装饰器、生成器等)来协调和连锁代理,而无需外部 DSL。
  • Handoffs 🤝 通过在专业代理之间委派任务,无缝协调多代理工作流程。
  • Function Tools ⚒️ 用 @tool 修饰任何 Python 函数,可立即将其集成到代理的工具包中。
  • Vector Search (RAG) 🧠 原生集成向量存储(IRIS),用于 RAG 检索。
  • Tracing 🔍 内置跟踪功能,可实时可视化、调试和监控代理工作流(想想 LangSmith 的替代方案)。
  • MCP Servers 🌐 通过 stdio 和 HTTP 支持模型上下文协议(MCP),实现跨进程代理通信。
  • Chainlit UI 🖥️ 集成 Chainlit 框架,可使用最少的代码构建交互式聊天界面。
  • Stateful Memory 🧠 跨会话保存聊天历史、上下文和代理状态,以实现连续性和长期任务。

0 0
0 177
InterSystems 开发者社区汇聚了 25,835 位出色的开发者
InterSystems IRIS 程序员可以在这里学习、分享、了解最新动态、成长,以及收获快乐!
文章
· 二月 18, 2025 阅读大约需 2 分钟
第二十八章 T 开头的术语

第二十八章 T 开头的术语

以 T 开头的术语

表 (table)

InterSystems SQL

表是一种由表示特定实体的行和表示每个实体特定数据点的列组成的数据结构。

目标角色 (target role)

系统

在受保护的 IRIS 应用中,由应用程序授予给已经是其他角色(称为匹配角色)成员的用户的角色。如果用户拥有匹配角色,则在使用应用程序时,用户还可以被授予一个或多个额外的目标角色。

目标用户 (target user)

系统

0 0
0 168
文章
· 五月 15, 2025 阅读大约需 24 分钟
基于 Kubernetes 而非传统Mirror的IRIS 高可用部署

在本文中,我们将使用基于分布式存储的 Kubernetes 部署来构建一个 IRIS 的高可用配置,而不使用“传统的”IRIS Mirror。 这种部署将能够容忍与基础架构相关的故障,如节点、存储和可用区故障。 所描述的方法可以大大降低部署的复杂性,代价是 RTO的略微延长。

0 0
0 155
文章
· 二月 11, 2025 阅读大约需 2 分钟
第二十一章 P 开头的术语

第二十一章 P 开头的术语

主持久超类 (primary persistent superclass)

对象(Objects)

一个类的主要持久超类决定了该类的持久行为。默认情况下,主要持久超类是超类列表中最左侧的持久超类。通常,与相同主要持久超类相关联的类的所有数据一起存储。

主卷 (primary volume)

系统

卷集中的第一个卷或唯一卷。

主设备 (principal device)

系统

与进程相关联的输入/输出设备,通常是终端或计算机键盘和显示器。对于后台进程,你可以在 JOB 命令中分配主设备,或者在系统配置编辑器中将其设置为父进程的主设备。如果不以这些方式设置设备,则后台进程的默认设备是空设备(null device)。

0 0
0 146
InterSystems 官方
· 三月 3, 2025
InterSystems Language Server 2.7 的最新变化

首先,祝开发者社区的各位成员新年快乐! 我们希望今年为大家带来更多好东西,今天我想介绍 VS Code的最新版 Intersystems Language Server 扩展程序。 大多数 Language Server 改进都可以通过 ObjectScript 扩展 UI 体验到,因此您可能不知道 2024 年我们发布了 Intellisense 和鼠标悬停等方面的许多改进。 请快速浏览 Language Server 更新日志 看看您错过了什么。 最近发布的2.7.0 版本带来了对 Windows ARM 平台的支持,因此,如果您使用 Surface Pro 11 这类设备(我正在用这台设备愉快地写这篇帖子),那么您现在可以在您的设备上获得出色的 ObjectScript 开发体验。 赶快试用一下,并在下方评论区中分享您的使用心得。

0 0
0 144
文章
· 四月 10, 2025 阅读大约需 6 分钟
如何构建代理人工智能 RAG 应用程序: 分步指南

社区朋友们好,

传统的基于关键词的搜索方式在处理具有细微差别的领域特定查询时往往力不从心。而向量搜索则通过语义理解能力,使AI智能体能够根据上下文(而非仅凭关键词)来检索信息并生成响应。

本文将通过逐步指导,带您创建一个具备代理能力的AI RAG(检索增强生成)应用程序。

实现步骤:

  1. 添加文档摄取功能
    • 自动获取并建立文档索引(例如《InterSystems IRIS 2025.1版本说明》)
    • 实现向量搜索功能
  2. 构建向量搜索智能体
  3. 移交至主智能体(分流处理)
  4. 运行智能体

1. Create Agent Tools 添加文档摄取功能

Implement Document Ingestion: Automated ingestion and indexing of documents


1.1 - 以下是实现文档摄取工具的代码:

    def ingestDoc(self):
        #Check if document is defined, by selecting from table
        #If not defined then INGEST document, Otherwise back
        embeddings = OpenAIEmbeddings()	
        #Load the document based on the fle type
        loader = TextLoader("/irisdev/app/docs/IRIS2025-1-Release-Notes.txt", encoding='utf-8')      
        
        documents = loader.load()        
        text_splitter = RecursiveCharacterTextSplitter(chunk_size=400, chunk_overlap=0)
        
        texts = text_splitter.split_documents(documents)
                       
        #COLLECTION_NAME = "rag_document"
        db = IRISVector.from_documents(
            embedding=embeddings,
            documents=texts,
            collection_name = self.COLLECTION_NAME,
            connection_string=self.CONNECTION_STRING,
        )

        db = IRISVector.from_documents(embedding=embeddings,documents=texts, collection_name = self.COLLECTION_NAME, connection_string=self.CONNECTION_STRING,)

向量搜索智能体(Vector Search Agent)能够自动完成文档的摄取(ingest)索引构建(index), 该新功能在InterSystems IRIS 2025.1的数据资源文件夹里) 至 IRIS 向量存储, 只有当数据尚未存在时,才执行该操作。



运行以下查询以从向量存储中获取所需数据:

SELECT
id, embedding, document, metadata
FROM SQLUser.AgenticAIRAG



1.2 - 实现向量搜索功能


以下代码为智能体提供了搜索能力:

 def ragSearch(self,prompt):
        #Check if collections are defined or ingested done.
        # if not then call ingest method
        embeddings = OpenAIEmbeddings()	
        db2 = IRISVector (
            embedding_function=embeddings,    
            collection_name=self.COLLECTION_NAME,
            connection_string=self.CONNECTION_STRING,
        )
        docs_with_score = db2.similarity_search_with_score(prompt)
        relevant_docs = ["".join(str(doc.page_content)) + " " for doc, _ in docs_with_score]
        
        #Generate Template
        template = f"""
        Prompt: {prompt}
        Relevant Docuemnts: {relevant_docs}
        """
        return template


分流代理处理传入的用户查询,并将其委托给矢量搜索代理,后者执行语义搜索操作,以检索最相关的信息。

0 0
0 139
文章
· 一月 30, 2025 阅读大约需 2 分钟
第十一章 F - H 开头的术语

第十一章 F - H 开头的术语

文件流 (file stream)

对象(Objects)

文件流提供了一个接口,用于在外部文件中操作和存储大量基于文本或二进制的数据。IRIS 的流接口可以在 ObjectScriptSQLJava 中用于操作文件流。

最终类 (final class)

对象(Objects)

不能被扩展或子类化的类。

最终方法 (final method)

对象(Objects)

不能被重写的方法。

最终属性 (final property)

对象(Objects)

不能被重写的属性。

外键 (foreign key)

InterSystems SQL

外键约束表中的一列指向另一表中的另一列。为第一列提供的值必须存在于第二列中。

0 0
0 139
文章
· 二月 2, 2025 阅读大约需 2 分钟
第十三章 I 开头的术语

第十三章 I 开头的术语

安装目录 (install-dir)

系统

在通用引用 IRIS 安装目录时,文档使用术语 install-dir。在示例中,文档使用 C:\MyIRIS\。章节“默认安装目录”描述了 IRIS 在所有受支持操作系统上的安装位置。

实例 (instance)

对象(Objects)

表示特定实体的类的实现。术语“实例”和“对象”可以互换使用。

实例认证 (Instance Authentication)

系统

本地认证系统:用户会被提示输入密码,输入的密码的哈希值会传递到 IRIS 服务器,并与服务器中存储的现有密码的哈希值进行比较。如果两个值相同,IRIS 将授予用户对其有权限的资源的访问权限。

此机制在管理门户中列为“密码认证”。

0 0
0 136
文章
· 二月 16, 2025 阅读大约需 2 分钟
第二十五章 S 开头的术语

第二十五章 S 开头的术语

以 S 开头的术语

模式演变 (schema evolution)

对象(Objects)

模式演变允许你在不丢失使用旧类定义存储的数据访问能力的情况下,为类添加新的类成员。

搜索用户 (search user)

系统

IRIS 连接到 LDAP 服务器的用户,其权限允许搜索 LDAP 数据库。其值在 LDAP 配置页面(系统管理 > 安全 > 系统安全 > LDAP 配置)的 LDAP 搜索用户 DN 或用于搜索的 LDAP 用户名字段中指定。(请注意,如果启用了 Kerberos,页面名称和菜单选项中会包含 Kerberos。)

次要卷 (secondary volume)

系统

0 0
0 135
文章
· 二月 9, 2025 阅读大约需 3 分钟
第十九章 O - P 开头的术语

第十九章 O - P 开头的术语

OID

对象(Objects)

请参见对象标识符(object identifier)。

单向外连接 (one-way outer join)

InterSystems SQL

程序员定义的连接,指定连接条件中第一个表为源表,并在输出表中包含源表的所有行,即使第二个表中没有匹配项。源表从第二个表中提取相关信息,但不会因为第二个表中缺少匹配项而牺牲自身的行。

开放数据库连接 (Open Database Connectivity, ODBC)

通用

微软的开放数据库连接(ODBC)为 Windows 上的数据访问提供了一个标准接口。

基于操作系统的认证 (Operating-System–based authentication)

系统

0 0
0 133
文章
· 二月 3, 2025 阅读大约需 2 分钟
第十四章 I - J 开头的术语

第十四章 I - J 开头的术语

InterSystems IRIS 存储 (InterSystems IRIS storage)

对象(Objects)

持久对象的默认存储类型。如果你使用 IRIS 存储,则无需指定任何存储数据的细节,并且你的类会自动投射到 SQL

InterSystems SQL

SQL

SQLIRIS 的高级关系接口。SQL 完全集成了IRIS 的对象功能,共享其类字典用于表定义,并使用作为类定义的高级数据类型。

InterSystems SQL 服务器 (InterSystems SQL server)

SQL

0 0
0 125
文章
· 二月 9, 2025 阅读大约需 2 分钟
第十八章 O 开头的术语

第十七章 O 开头的术语

以 O 开头的术语

对象 (object)

对象(Objects)

对象是一个逻辑实体,封装了表示特定项目的所有数据以及操作这些数据的接口。

对象类 (object class)

对象(Objects)

对象类代表一个特定实体。它可以具有属性,并且可以被直接实例化。

对象代码 (object code)

系统

IRIS 编译器生成的最低级别代码。该代码实际上由解释器执行。

对象标识符 (object identifier)

对象(Objects)

对象标识符(OID)在整个数据库中唯一地标识磁盘上的一个对象。OID 在对象的生命周期内有效,如果对象被删除,OID 不能被重用。

对象模型 (object model)

对象(Objects)

0 0
0 121
文章
· 二月 17, 2025 阅读大约需 2 分钟
第二十七章 S 开头的术语

第二十七章 S 开头的术语

存储接口 (storage interface)

对象(Objects)

使用自定义存储或编写自己的存储类时必须实现的一组方法。

存储策略 (storage strategy)

对象(Objects)

类使用的存储策略在编译时评估为存储定义,决定数据的存储方式。

存储过程 (stored procedure)

SQL

存储过程允许你从 ODBCJDBC 执行查询或类方法。

流接口 (stream interface)

对象(Objects)

IRIS 流接口用于在 ObjectScriptSQLJava 中操作流。

流 (stream)

对象(Objects)

0 0
0 119
文章
· 二月 6, 2025 阅读大约需 3 分钟
第十六章 L - M 开头的术语

第十六章 L - M 开头的术语

锁表 (lock table)

系统

IRIS 内部的表,存储所有由进程发出的 LOCK 命令。你可以使用系统查看器查看此表。

日志文件 (log files)

系统

系统管理员目录中的文件,包含关于系统操作、错误和指标的消息。这些包括消息日志(messages.log)、系统监视器日志(SystemMonitor.log)、警报日志(alerts.log)、初始化日志(iboot.log)和日志历史记录日志(journal.log)。有关这些日志文件的信息,请参见“监控日志文件”。

逻辑格式 (logical format)

对象(Objects)

对象属性的逻辑格式是在内存中使用的格式。所有的比较和计算都是基于这种格式进行的。

0 0
0 117
文章
· 二月 19, 2025 阅读大约需 2 分钟
第二十九章 U - V 开头的术语

第二十九章 U - V 开头的术语

以 U 开头的术语

用户识别码 (UIC)

系统

用户识别码(User Identification Code,UIC)决定了谁可以访问该数据库中的全局。在 UNIX® 系统上,UICgroupid、逗号(,)和 userid 组成;系统管理员在 UNIX® 级别为用户分配 UIC,并使用 IRIS MSU 工具为每个数据库分配 UIC

未认证访问 (unauthenticated access)

系统

IRIS 的访问不基于任何用户身份验证。

Unicode

系统

0 0
0 116
文章
· 二月 12, 2025 阅读大约需 2 分钟
第二十二章 P - R 开头的术语

第二十二章 P - R 开头的术语

程序员模式 (programmer mode)

系统

所有程序开发活动进行的模式。在程序员模式下,你从 IRIS 提示符启动程序,并且每个运行的程序结束后提示符会重新出现。程序员模式涵盖了 IRIS 环境及其所有可调用的程序,包括 SQL 开发环境。在程序员模式下,你可以创建用户随后在应用程序模式下运行的应用程序。

项目 (project)

系统

用户定义的相关源文档(如例程或类定义)列表。Visual Studio Code 使用项目来帮助组织应用程序开发。

属性 (property)

对象(Objects)

表示与类相关联的特定特性的一个数据元素。该类的每个对象包含属性的字面值或指向表示数据的另一个对象的引用。一个类的所有属性共同表示其状态。

属性排序 (property collation)

对象(Objects)

0 0
0 116

InterSystems IRISInterSystems IRIS for HealthHealthShare Health Connect 的最新扩展维护版本现已发布。

✅ 2024.1.3

版本 2024.1.3 修复了 2024.1.x 上一版中的 bug,包括针对最近发布的以下提醒的修复 – 提醒:在执行特定的操作时,数据库和日志文件中引入了无效数据…

您可以在以下页面上找到详细的变更列表和升级核对清单:

0 0
0 113
文章
· 六月 3, 2025 阅读大约需 2 分钟
IRIS Interop DevTools: CCDA 和 FHIR 的 IRIS 转换入门

IRIS 支持开箱即用的 CCDA 和 FHIR 转换,但访问和查看这些功能需要大量的时间设置和产品知识。IRIS Interop DevTools 应用程序旨在弥补这一差距,让实施人员能够立即进入并查看产品的内置转换功能。

除了 IRIS XML、XPath 和 CCDA 转换环境,Interop DevTools 软件包现在还提供:

  • FHIR-SDA 转换设置
  • SDA-FHIR 转换设置
  • 构建 FHIR 错误验证
  • 加载 FHIR 转换所需的内容

已经更新仪表板的外观和感触,看起来更加直观和用户友好。在 IRIS 中执行,以便充分利用环境,同时用户界面允许可见性、可重复性以及隔离修改和模块进行测试的能力。

以下是5个功能支持:

1. XPath 评估器: 根据输入 CCD 评估 XPath 并返回结果

0 0
0 111
文章
· 二月 10, 2025 阅读大约需 2 分钟
第二十章 P 开头的术语

第二十章 P 开头的术语

通过引用传递 (passing by reference)

系统

一种传递参数地址而不是值的方式。这允许访问实际的变量,使得传递给的方法、函数或例程可以更改变量的实际值。

通过值传递 (passing by value)

系统

传递参数值的一种方式。这提供了变量的副本。因此,传递给的方法、函数或例程无法更改变量的实际值。

模式匹配表 (pattern match table)

系统

内部表,用于指示 IRIS 是否将字符视为字母、标点、数字或控制字符。

权限 (permission)

系统

在资源上执行某项活动的能力说明。对于数据库资源,可用的权限有读取(Read)和写入(Write)。对于服务、应用程序或管理操作,可用的权限是使用(Use)。

0 0
0 111
文章
· 二月 14, 2025 阅读大约需 2 分钟
第二十四章 R 开头的术语

第二十四章 R 开头的术语

结果集 (result set)

对象(Objects)

结果集包含查询返回的数据。可以使用查询接口处理结果集。

角色 (role)

系统

InterSystems 安全系统中的实体,可以接收执行操作和查看或更改数据的能力。这些能力以特权的形式授予角色。当用户成为角色的成员时,它会获得角色的特权。

角色分配机制 (role-assignment mechanism)

系统

将各种角色赋予用户以使用 IRIS 的方式。角色分配可以使用 IRIS 原生机制、LDAP 或委托(即用户定义)代码进行。这是授权过程的一部分。

回滚 (roll back)

系统

在系统故障后从 IRIS 数据库中移除不完整事务的过程。IRIS 在其恢复程序中移除这些更改。请参见日志记录、事务。

0 0
0 109
文章
· 六月 5, 2025 阅读大约需 7 分钟
发布使用 IRIS for Health 的 SMART on FHIR EHR

在过去的几个月里,我一直在从事 SMART on FHIR EHR Launch 的工作,使用 CSIRO 的两个开源应用程序:SMART-EHR-Launcher 和 SMART 表单应用程序来测试 IRIS for Health 的功能。这段旅程非常有趣,我非常感谢能有机会参与这项任务并探索 IRIS for Health 的更多潜力。

在 HL7 AU FHIR Connectathon 上成功演示了多个外部 SMART 应用程序的无缝启动后,我很高兴能与社区分享我的心得。我希望我的见解能帮助其他人更快地开始类似的项目。

这项任务涉及使用 SMART-EHR-Launcher 作为 EHR 来启动 SMART 表单应用程序。同时,IRIS for Health 被用作 EHR 的 FHIR 资源库,其 OAuth2 服务器被用作授权服务器。

在进入激动人心的时刻之前,让我们先仔细了解一下 SMART on FHIR 和 SMART on FHIR EHR 启动仪式。让我们问问我们的好朋友 ChatGPT 和 豆包。

1 0
1 108

各位开发者们,

我们有个好消息要告诉大家——开发者社区迎来了一位聪明且积极主动的新助手:

🤖 开发者社区机器人(也就是 @DC AI Bot 🤖

Powered by the same IRIS Vector Search technology as the DC AI assistant, our new takes it a step further:这款新推出的@DC AI BotDC AI助手(DC AI assistant) 一样,都采用了IRIS向量搜索技术,但新的 @DC AI Bot 比DC AI助手更进一步:

👉 它会自动扫描每个新发布的问题——如果找到相关答案,就会直接在评论区留下回复。

0 0
0 105

8月29日14:00,我们邀请了InterSystems高级销售工程师 @Nicky Zhu (祝麟)分享了“以医疗 AI 枢纽构建智能协同生态”话题,聚焦 “医疗 AI 枢纽” 建设,以 InterSystems IRIS 为核心,深度解析医疗 AI 面临的核心挑战 —— 从开放数据可用性、研究可及性到部署基础设施瓶颈,结合国际电信联盟(ITU)AI 就绪框架,剖析行业痛点。

关于该主题详情,欢迎查看这篇帖子

直播回放现已准备就绪,欢迎👉点击查看!(如您未注册过,需要注册后观看)

0 0
0 104