並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 291件

新着順 人気順

python if or statementの検索結果1 - 40 件 / 291件

  • Dockerfileのベストプラクティスとセキュリティについて - エニグモ開発者ブログ

    こんにちは、主に検索周りを担当しているエンジニアの伊藤です。 この記事は Enigmo Advent Calendar 2020 の 17 日目の記事です。 みなさんは適切なDockerfileを書けていますか?とりあえずイメージのビルドが出来ればいいやとなっていませんか? 今回は自戒の意味も込めて、改めてDockefileのベストプラクティスについて触れつつ、 そもそもDockerfileを書かずにコンテナイメージをビルドする方法とコンテナセキュリティに関する内容についてまとめてみました。 Dockerfileのベストプラクティス イメージサイズは極力小さくしよう ビルドキャッシュを活用しよう Dockerfileに関する悩みどころ Dockerfileを書かないという選択肢 Buildpack Cloud Native Buildpacks CNBの仕組み デモ CNBのメリット セキ

      Dockerfileのベストプラクティスとセキュリティについて - エニグモ開発者ブログ
    • 本番環境で採用すべき26のAWSセキュリティベストプラクティス

      本文の内容は、2024年11月25日に Alejandro Villanueva が投稿したブログ(https://sysdig.com/blog/26-aws-security-best-practices/)を元に日本語に翻訳・再構成した内容となっております。 セキュリティは、 AWS Foundational セキュリティベストプラクティスの基本的な柱です。セキュリティリスクを最小限に抑え、環境を保護するには、サービス別にまとめられた AWS セキュリティベストプラクティスに従うことが不可欠です。この構造化されたアプローチは、潜在的な脆弱性に積極的に対処し、堅牢で安全なクラウドアーキテクチャーを維持するのに役立ちます。 AWS IAM(1) IAMポリシーでは、フルの ” * ” 管理者権限を許可すべきではない (2) IAMユーザーにはIAMポリシーを添付してはならない (3) I

        本番環境で採用すべき26のAWSセキュリティベストプラクティス
      • 法律のデータ構造と検索

        デジタル庁は、法令標準 XML スキーマに準拠した、現行の法令データをe-Gov法令検索というサイト上で公開しています[1]。今回、この法令XMLをパースするPythonライブラリ ja-law-parser をつくり、法令データの全文検索をしてみました。 この記事では、日本の法令とそのデータ構造、法令XMLパーサについて解説し、最後に、それらを使った法令データの全文検索システムを実装する方法をご紹介します。法令検索の実装についても、GitHubリポジトリで公開しています。 この記事は、情報検索・検索技術 Advent Calendar 2023の16日目の記事です。 法律と法令 法律とは 法律の制定と公布 法律と法令の違い 法律の改正 法令のデータ構造 e-Govの法令データ 法令標準XMLスキーマ 法令番号と法令ID 題名 本則と附則 条・項・号 編・章・節・款・目 法令XMLパーサ:

          法律のデータ構造と検索
        • 関数名、メソッド名、変数名でよく使う英単語のまとめ

          プログラミングをしていると関数名、メソッド名、変数名をどうするか悩みます。 ロジックより命名に時間を費やすこともざらにあります。翻訳したり、一般的な命名規則なのかいつも検索して大変です。 よく使うサイトの内容をコピってメモしておく 関数名とメソッド名の違いについて よく使う英単語のまえに、いつもごっちゃにして使っているけど、定義はこんな感じ 「関数」と「メソッド」の違い 似ているところ どちらも何か(引数)を入れると処理をして何か(戻り値)を返してくれます。 違うところ やってること自体は大差ありません。概念としては違います。 メソッドはオブジェクト指向で登場する用語で、オブジェクトの動作を定義したものです。 まずオブジェクトありきなのですね。一方の関数は、オブジェクト云々は関係ありません。 個人的な使い分け Java で登場する関数は「メソッド」です。C 言語で登場する関数は「関数」と呼

            関数名、メソッド名、変数名でよく使う英単語のまとめ
          • 「Postgres で試した?」と聞き返せるようになるまでもしくはなぜ私は雰囲気で技術を語るのか? — Just use Postgres 読書感想文 - じゃあ、おうちで学べる

            はじめに 「Just use Postgres」という言葉を初めて聞いたのは、いつだったか覚えていません。Twitter か Hacker News か、あるいは社内の Slack か。どこで聞いたにせよ、私の反応は決まっていました。「また極端なことを言う人がいる」と。 「それ、〇〇でもできますよ」——この手のフレーズはもう100回は聞いてきました。そして大抵の場合、その〇〇は専用ツールに置き換えられていきます。技術が専門分化していくのは自然な流れです。 全文検索なら Elasticsearch。時系列データなら InfluxDB。メッセージキューなら RabbitMQ。それぞれの分野に専門家がいて、専用のソリューションがあって、ベストプラクティスがあります。「とりあえず Postgres で」なんて、それは思考停止ではないか、と。でも、心のどこかで気になっていたんです。 www.mann

              「Postgres で試した?」と聞き返せるようになるまでもしくはなぜ私は雰囲気で技術を語るのか? — Just use Postgres 読書感想文 - じゃあ、おうちで学べる
            • PythonでDDDやってみた💪 - techtekt

              はじめに 実行環境 ディレクトリ構造 app migrations/model pyproject.toml ソースコードと簡単な解説 app/core app/core/abstract app/core/decorator app/core/exception app/core/interface app/core/middleware app/core/mixin app/ddd app/ddd/application app/ddd/application/schema app/ddd/application/schema/studnet app/ddd/application/usecase app/ddd/application/usecase/student app/ddd/domain app/ddd/domain/student app/ddd/infra app/ddd

                PythonでDDDやってみた💪 - techtekt
              • TabFS

                Going through the files inside a tab's folder. For example, the url.txt, text.txt, and title.txt files tell me those live properties of this tab (Read more up-to-date documentation for all of TabFS's files here.) This gives you a ton of power, because now you can apply all the existing tools on your computer that already know how to deal with files -- terminal commands, scripting languages, point-

                  TabFS
                • 大実験!ChatGPTは競プロの問題を解けるのか (2024年5月版) - E869120's Blog

                  1. はじめに 2024 年 5 月 14 日、OpenAI 社から新たな生成 AI「GPT-4o」が発表され、世界に大きな衝撃を与えました。これまでの GPT-4 よりも性能を向上させただけでなく1、音声や画像のリアルタイム処理も実現し、さらに応答速度が大幅に速くなりました。「ついにシンギュラリティが来てしまったか」「まるで SF の世界を生きているような感覚だ」という感想も見受けられました。 しかし、いくら生成 AI とはいえ、競技プログラミングの問題を解くのは非常に難しいです。なぜなら競技プログラミングでは、問題文を理解する能力、プログラムを実装する能力だけでなく、より速く答えを求められる解法 (アルゴリズム) を考える能力も要求されるからです。もし ChatGPT が競技プログラミングを出来るようになれば他のあらゆるタスクをこなせるだろう、と考える人もいます。 それでは、現代最強の

                    大実験!ChatGPTは競プロの問題を解けるのか (2024年5月版) - E869120's Blog
                  • 【動画解説】2020年に読んだAI論文100本全部解説(俺的ベスト3付き) - Qiita

                    この記事は私, wataokaが1年間をかけて作り続けた超大作記事です. 総文字数は8万を超えていますので, お好みのところだけでもみていってください. ついにこの時が来ました!!!!! 1年間書き続けたQiita記事です!!!!! ご覧下さい!!!!!https://t.co/eKBwP1zoeB — 綿岡 晃輝 (@Wataoka_Koki) December 31, 2020 俺的ランキング 動画での解説も挑戦してみました! ぜひぜひご覧下さい! 動画のリンク 第3位: Likelihood-Free Overcomplete ICA and Applications in Causal Discovery wataokaの日本語訳「尤度が必要ない過完備ICAと 因果探索における応用」 種類: ICA 学会: NeurIPS2019 日付: 20190904 URL: https:/

                      【動画解説】2020年に読んだAI論文100本全部解説(俺的ベスト3付き) - Qiita
                    • Why UUIDs won't protect your secrets

                      This post is part of a collection on UUIDs. What is IDOR? Indirect Object Reference (IDOR) occurs when a resource can be accessed directly by its ID even when the user does not have proper authorization to access it. IDOR is a common mistake when using a separate service for storing files, such as a publicly readable Amazon S3 bucket. The web application may perform access control checks correctly

                      • ECS のアプリケーションを正常にシャットダウンする方法 | Amazon Web Services

                        Amazon Web Services ブログ ECS のアプリケーションを正常にシャットダウンする方法 この記事は Graceful shutdowns with ECS を翻訳したものです。 — はじめに Amazon Elastic Container Service (Amazon ECS) を利用することで、お客様はさまざまな方法でコンテナ化されたアプリケーションを柔軟にスケールできます。リクエストの急増に対してタスクをスケールアウトすることも、コスト削減のためにタスクをスケールインすることもできます。ECS ではさまざまなデプロイの選択肢があり、ローリングデプロイ・ブルー/グリーンデプロイ・カナリアデプロイなどがサポートされています。さらに、ECS では柔軟なコンピューティングの選択肢が用意されています。Amazon EC2 のオンデマンド/スポットのキャパシティ上や、マネージ

                          ECS のアプリケーションを正常にシャットダウンする方法 | Amazon Web Services
                        • REST API Design Best Practices Handbook – How to Build a REST API with JavaScript, Node.js, and Express.js

                          By Jean-Marc Möckel I've created and consumed many API's over the past few years. During that time, I've come across good and bad practices and have experienced nasty situations when consuming and building API's. But there also have been great moments. There are helpful articles online which present many best practices, but many of them lack some practicality in my opinion. Knowing the theory with

                            REST API Design Best Practices Handbook – How to Build a REST API with JavaScript, Node.js, and Express.js
                          • Building LLM applications for production

                            [Hacker News discussion, LinkedIn discussion, Twitter thread] Update: My upcoming book, AI Engineering (late 2024/early 2025) will cover building aplications with foundation models in depth. A question that I’ve been asked a lot recently is how large language models (LLMs) will change machine learning workflows. After working with several companies who are working with LLM applications and persona

                              Building LLM applications for production
                            • MicrosoftのGraphRAG+Neo4jで簡単にKnowledge Graphを可視化する - Taste of Tech Topics

                              こんにちは。データサイエンティストチームYAMALEXのSsk1029Takashiです。 LLMが広く使用されるようになってから、RAGに関する研究も増加し、RAGを拡張する手法の研究も多く出ました。 その中でもテキストをグラフデータとして扱いRAGの元データとする手法をGraphRAGと言います。 今回はその中の一つであるMicrosoftが提唱しているGraphRAGの手法を使っていきます。 www.microsoft.com MicrosoftからはGraphRAGを使用できる実装もPythonライブラリとして発表されています。 ライブラリではグラフデータはあくまでRAGの元データとして使用していますが、せっかくテキストからグラフが生成できるのであれば、テキストマイニングしてみたくなるものです。 そこで、本記事ではこの手法で作成したグラフをグラフDBの一つであるNeo4jに投入して

                                MicrosoftのGraphRAG+Neo4jで簡単にKnowledge Graphを可視化する - Taste of Tech Topics
                              • Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust

                                Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust March 2021 Summary: I describe a simple interview problem (counting frequencies of unique words), solve it in various languages, and compare performance across them. For each language, I’ve included a simple, idiomatic solution as well as a more optimized approach via profiling. Go to: Constraints | Python Go C++ C

                                • research!rsc: Coroutines for Go

                                  This post is about why we need a coroutine package for Go, and what it would look like. But first, what are coroutines? Every programmer today is familiar with function calls (subroutines): F calls G, which stops F and runs G. G does its work, potentially calling and waiting for other functions, and eventually returns. When G returns, G is gone and F continues running. In this pattern, only one fu

                                  • Introducing Ezno

                                    Ezno is an experimental compiler I have been working on and off for a while. In short, it is a JavaScript compiler featuring checking, correctness and performance for building full-stack (rendering on the client and server) websites. This post is just an overview of some of the features I have been working on which I think are quite cool as well an overview on the project philosophy ;) It is still

                                      Introducing Ezno
                                    • AWS Security Hub の通知を Amazon Bedrock を使ってアクショナブルにしてみた - カミナシ エンジニアブログ

                                      どうもセキュリティエンジニアの西川です。これがきっと私にとっての今年最後のブログです。今年の AWS re:Invent は自身の登壇があったのでほとんど楽しめませんでした。悔しいのでこうしてブログを帰ってきてからいくつか書いています。カミナシのメンバーの中で私と CTO だけは自腹で AWS re:Invent へ参加していますが、来年の飛行機もすでにとっていたりします。来年ラスベガスでお会いしましょう。 AWS re:Invent の中でもたくさんの Generative AI のセッションがありました。私自身はほとんど参加していなかったのですが、Generative AI の GameDay に出たことをきっかけに Generative AI 意外と難しくないなと思い、Security Hub の通知をアクショナブルに変えてエンジニアの誰しもが対応できるようにしてみようと思ったのが本

                                        AWS Security Hub の通知を Amazon Bedrock を使ってアクショナブルにしてみた - カミナシ エンジニアブログ
                                      • ソースコード & ドキュメントに対応したGraph RAGの実装(Tree-sitter + LightRAG)

                                        (module (function_definition (identifier) # ← ここに関数名「sample_func」が含まれます (parameters) (block (expression_statement (call (identifier) (argument_list (string)))))) (expression_statement (call (identifier) (argument_list)))) ノードが色々取れましたが、「function_definition」が関数、その子である「identifier」が関数名を表すため、 function_definition == 子ノード ==> identifier となっている箇所を探索すれば抽出できます(関数ではあっても「lambda」など異なる場合もあります)。 今回は上記のようにTree-si

                                          ソースコード & ドキュメントに対応したGraph RAGの実装(Tree-sitter + LightRAG)
                                        • Writing a C compiler in 500 lines of Python

                                          A few months ago, I set myself the challenge of writing a C compiler in 500 lines of Python1, after writing my SDF donut post. How hard could it be? The answer was, pretty hard, even when dropping quite a few features. But it was also pretty interesting, and the result is surprisingly functional and not too hard to understand! There's too much code for me to comprehensively cover in a single blog

                                          • AWS Lambda(Python)でAmazon Bedrockの出力をレスポンスストリーミング対応してみた - Taste of Tech Topics

                                            こんにちはイワツカです。 今年の夏は、特に猛暑日が続いていたので、例年にも増して素麺を食べてました。 さて今回は、AWS Lambda(Python)でLambda Web Adapterを用いてレスポンスストリーミングする方法を試してみたので紹介します。 1. 概要 1.1 レスポンスストリーミングとは? 1.2 Lambda Web Adapterとは? 2. アプリ作成 2.1 実行環境 2.2 ディレクトリ構成 2.3 FastAPIの実装 2.4 Streamlitの実装 3. アプリを動かして見る 3.1 チャットアプリをデプロイ 3.2 Streamlitを起動する 3.3 チャットを試してみる 4. まとめ 1. 概要 1.1 レスポンスストリーミングとは? レスポンスストリーミングとは、HTTPリクエストに対してサーバーがレスポンスを一度にまとめて送るのではなく、データを

                                              AWS Lambda(Python)でAmazon Bedrockの出力をレスポンスストリーミング対応してみた - Taste of Tech Topics
                                            • PostgreSQL 15 Released!

                                              October 13, 2022 - The PostgreSQL Global Development Group today announced the release of PostgreSQL 15, the latest version of the world’s most advanced open source database. PostgreSQL 15 builds on the performance improvements of recent releases with noticeable gains for managing workloads in both local and distributed deployments, including improved sorting. This release improves the developer e

                                                PostgreSQL 15 Released!
                                              • Moving off of TypeScript

                                                We Love You, TypeScriptFor nearly five years now, Motion has operated in a large TypeScript monorepo. At its peak, it was roughly ~2.5 million lines of code after excluding comments, node_modules, etc. To manage this, we used Vercel’s rather excellent Turborepo build system. This is not a blog post hating on TypeScript — quite the opposite! Motion would likely not even have survived until today wi

                                                  Moving off of TypeScript
                                                • Announcing .NET 10 - .NET Blog

                                                  Today, we are excited to announce the launch of .NET 10, the most productive, modern, secure, intelligent, and performant release of .NET yet. It’s the result of another year of effort from thousands of developers around the world. This release includes thousands of performance, security, and functional improvements across the entire .NET stack-from languages and developer tools to workloads-enabl

                                                    Announcing .NET 10 - .NET Blog
                                                  • 【Golang】で【Amazon API Gateway Lambda オーソライザー】と【FirebaseAuth】を利用しての認証をやってみた - カミナシ エンジニアブログ

                                                    初めに 初めまして。2021年3月より株式会社カミナシにジョインすることとなりました、エンジニアの@Takuと申します。 業務とは直接関係ないのですが、API Gateway Lambda オーソライザーとFirebaseAuthを組み合わせた認証をやってみたので記載させていただきます。 概要 以下のチュートリアルを元に Amazon API Gateway Lambda オーソライザーを利用した認証機能を作成しました。 docs.aws.amazon.com Amazon API Gateway Lambda オーソライザーを利用することで、 認証・認可部分をAPI Gateway側で共通化できるため、 マイクロサービス化(認証・認可と業務の責務分け) サービスを提供するサーバーの負荷軽減 などのメリットが見込めるのではと考えております。 その際チュートリアルから変更した点として、 OA

                                                      【Golang】で【Amazon API Gateway Lambda オーソライザー】と【FirebaseAuth】を利用しての認証をやってみた - カミナシ エンジニアブログ
                                                    • AI Agentのビジネス価値を計るバックテスト基盤の構築 - LayerX エンジニアブログ

                                                      こちらはLayerX AI Agentブログリレー36日目の記事です。 LayerX バクラク事業部で AI/MLOpsエンジニアをしている中村(@po3rin)です。今回はAI Agentのビジネス価値を計るバックテスト基盤を構築した話と、そこから学んだAI Agent開発のプラクティスを紹介します。 目次 目次 AI Agent機能の評価の重要性 AI Agent機能のバックテスト バックテスト基盤開発の難しさ バックテスト基盤を実現する技術 全体構成 SnowflakeへのSnapshotデータアクセス LLM Native GORM Plugin「Firn」 なぜLLMで書き換えるのか GORM Pluginの作り方 LLMによるクエリ書き換え部分 LLMのクエリ書き換えガードレール SQL BASE Golden Testing Package「gormgolden」 今回のバッ

                                                        AI Agentのビジネス価値を計るバックテスト基盤の構築 - LayerX エンジニアブログ
                                                      • Python 3.10から導入されたBetter error messagesの深掘り | gihyo.jp

                                                        鈴木たかのりです。今月のPython Monthly Topicsでは、Python 3.10から導入されたBetter error messagesについて紹介します。Better error messagesがどういったものであるかの紹介と、どのようにこのエラーメッセージが出力されているか、Python内部の処理についても触れようと思います。 Better error messagesとは Python 3.10からBetter error messagesという機能が追加されました。この機能は名前のとおり「エラーメッセージを改善」するものです。「⁠エラーメッセージの改善」により以前よりもわかりやすいエラーメッセージが出力され、ユーザーがエラーの意味に気づきやすくなりました。 例として、以下のようなリストの閉じカッコ(])を忘れたコードを実行し、出力されるエラーメッセージを見比べてみま

                                                          Python 3.10から導入されたBetter error messagesの深掘り | gihyo.jp
                                                        • Rewriting the Ruby parser

                                                          At Shopify, we have spent the last year writing a new Ruby parser, which we’ve called YARP (Yet Another Ruby Parser). As of the date of this post, YARP can parse a semantically equivalent syntax tree to Ruby 3.3 on every Ruby file in Shopify’s main codebase, GitHub’s main codebase, CRuby, and the 100 most popular gems downloaded from rubygems.org. We recently got approval to merge this work into C

                                                            Rewriting the Ruby parser
                                                          • How to find the AWS Account ID of any S3 Bucket | Tracebit

                                                            In 2021 Ben Bridts published a highly inventive method for finding the AWS Account ID of a public S3 bucket. This post describes a technique to find the Account ID of any S3 bucket (both private and public). I'd highly recommend reading Ben's technique first as we will re-use a lot of concepts. S3 Bucket to AWS Account IDShell output can be worth a thousand words, here's what our technique enables

                                                              How to find the AWS Account ID of any S3 Bucket | Tracebit
                                                            • Python 3.13 gets a JIT

                                                              Happy New Year everyone! In late December 2023 (Christmas Day to be precise), CPython core developer Brandt Bucher submitted a little pull-request to the Python 3.13 branch adding a JIT compiler. This change, once accepted would be one of the biggest changes to the CPython Interpreter since the Specializing Adaptive Interpreter added in Python 3.11 (which was also from Brandt along with Mark Shann

                                                                Python 3.13 gets a JIT
                                                              • Incident Metrics in SRE

                                                                Štěpán Davidovič Incident Metrics in SRE Critically Evaluating MTTR and Friends Boston Farnham Sebastopol Tokyo Beijing Boston Farnham Sebastopol Tokyo Beijing 978-1-098-10313-2 [LSI] Incident Metrics in SRE by Štěpán Davidovič Copyright © 2021 O’Reilly Media, Inc. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebas

                                                                • Choose Postgres queue technology

                                                                  Introduction⌗ Postgres queue tech is a thing of beauty, but far from mainstream. Its relative obscurity is partially attributable to the cargo cult of “scale”. The scalability cult has decreed that there are several queue technologies with greater “scalability” than Postgres, and for that reason alone, Postgres isn’t suitably scalable for anyone’s queuing needs. The cult of scalability would rathe

                                                                    Choose Postgres queue technology
                                                                  • Basic Feature Engineering with DuckDB

                                                                    Introduction Data preprocessing is a necessary step in any machine learning workflow, affecting both the model’s effectiveness and the ease of maintenance. While scikit-learn is commonly used for preprocessing due to its integration with the broader Python ecosystem, DuckDB offers a practical alternative by enabling SQL-based data transformations within Python. Its declarative syntax supports modu

                                                                    • Run WebAssemblies in VS Code for the Web

                                                                      June 5, 2023 by Dirk Bäumer VS Code for the Web (https://vscode.dev) has been available for some time now and it has always been our goal to support the full edit / compile / debug cycle in the browser. This is relatively easy for languages like JavaScript and TypeScript since browsers ship with a JavaScript execution engine. It is harder for other languages since we must be able to execute (and t

                                                                        Run WebAssemblies in VS Code for the Web
                                                                      • 4 Pandas Anti-Patterns to Avoid and How to Fix Them

                                                                        pandas is a powerful data analysis library with a rich API that offers multiple ways to perform any given data manipulation task. Some of these approaches are better than others, and pandas users often learn suboptimal coding practices that become their default workflows. This post highlights four common pandas anti-patterns and outlines a complementary set of techniques that you should use instea

                                                                          4 Pandas Anti-Patterns to Avoid and How to Fix Them
                                                                        • Go performance from version 1.2 to 1.18

                                                                          February 2022 Recently I improved the performance of GoAWK – my AWK interpreter written in Go – by switching from a tree-walking interpreter to a bytecode compiler with a virtual machine interpreter. While doing that, I thought it’d be interesting to see how much the performance of Go itself has improved over the years. There are many ways programs written in Go have gotten faster: the Go team and

                                                                          • How to create a Python package in 2022

                                                                            Photo by Claudio Schwarz on Unsplash. How to create a Python package? In order to create a Python package, you need to write the code that implements the functionality you want to put in your package, and then you need to publish it to PyPI. That is the bare minimum. Nowadays, you can also set up a variety of other things to make your life easier down the road: continuous testing of your package;

                                                                              How to create a Python package in 2022
                                                                            • A few words on Ruby's type annotations state

                                                                              I don't build systems. I imagine them, then write them. …that were written in a military training camp and accidentally grew to 5k words. I am writing this on my phone, in a barrack that houses some 200+ of my brothers-in-arms in the Ukrainian army’s training camp; I use short periods of rest between training, mostly at night and on Sundays. TBH, since joining the army, I didn’t expect to have tim

                                                                              • A Brief History of Ruby

                                                                                Ruby is an interpreted, open-source programming language with a focus on simplicity and productivity. Ruby is already 30 years old, and it has become one of the most used programming languages. Some claim Ruby is dead; others use it widely in their companies. Join me in this blog post as we learn about Ruby's history and where it stands today. How It StartedRuby was born on Feb. 24th, 1993. This w

                                                                                  A Brief History of Ruby
                                                                                • Agents

                                                                                  Intelligent agents are considered by many to be the ultimate goal of AI. The classic book by Stuart Russell and Peter Norvig, Artificial Intelligence: A Modern Approach (Prentice Hall, 1995), defines the field of AI research as “the study and design of rational agents.” The unprecedented capabilities of foundation models have opened the door to agentic applications that were previously unimaginabl

                                                                                    Agents